Sha256: 714e7a993ebeb0f78435e09124388022a94fe7af0b59098af428f80ce7ef7d0b
Contents?: true
Size: 1.03 KB
Versions: 10
Compression:
Stored size: 1.03 KB
Contents
// Copyright 2015 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_COMPILER_FRAME_ELIDER_H_ #define V8_COMPILER_FRAME_ELIDER_H_ #include "src/compiler/instruction.h" namespace v8 { namespace internal { namespace compiler { // Determine which instruction blocks need a frame and where frames must be // constructed/deconstructed. class FrameElider { public: explicit FrameElider(InstructionSequence* code); void Run(); private: void MarkBlocks(); void PropagateMarks(); void MarkDeConstruction(); bool PropagateInOrder(); bool PropagateReversed(); bool PropagateIntoBlock(InstructionBlock* block); const InstructionBlocks& instruction_blocks() const; InstructionBlock* InstructionBlockAt(RpoNumber rpo_number) const; Instruction* InstructionAt(int index) const; InstructionSequence* const code_; }; } // namespace compiler } // namespace internal } // namespace v8 #endif // V8_COMPILER_FRAME_ELIDER_H_
Version data entries
10 entries across 9 versions & 2 rubygems