v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
frame-elider.h
Go to the documentation of this file.
1// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_COMPILER_BACKEND_FRAME_ELIDER_H_
6#define V8_COMPILER_BACKEND_FRAME_ELIDER_H_
7
9
10namespace v8 {
11namespace internal {
12namespace compiler {
13
14// Determine which instruction blocks need a frame and where frames must be
15// constructed/deconstructed.
17 public:
18 explicit FrameElider(InstructionSequence* code, bool has_dummy_end_block,
19 bool is_wasm_to_js);
20 void Run();
21
22 private:
23 void MarkBlocks();
24 void PropagateMarks();
25 void MarkDeConstruction();
26 bool PropagateInOrder();
27 bool PropagateReversed();
31 Instruction* InstructionAt(int index) const;
32
35 const bool is_wasm_to_js_;
36};
37
38} // namespace compiler
39} // namespace internal
40} // namespace v8
41
42#endif // V8_COMPILER_BACKEND_FRAME_ELIDER_H_
InstructionBlock * InstructionBlockAt(RpoNumber rpo_number) const
InstructionSequence *const code_
Instruction * InstructionAt(int index) const
const InstructionBlocks & instruction_blocks() const
bool PropagateIntoBlock(InstructionBlock *block)
FrameElider(InstructionSequence *code, bool has_dummy_end_block, bool is_wasm_to_js)