struct CallBuffer; // TODO(bmeurer): Remove this.
class FlagsContinuation;
-class InstructionSelector V8_FINAL {
+class InstructionSelector FINAL {
public:
// Forward declarations.
class Features;
// ============== Architecture-independent CPU feature methods. ==============
// ===========================================================================
- class Features V8_FINAL {
+ class Features FINAL {
public:
Features() : bits_(0) {}
explicit Features(unsigned bits) : bits_(bits) {}
// {call_address_immediate} to generate immediate operands to address calls.
void InitializeCallBuffer(Node* call, CallBuffer* buffer,
bool call_code_immediate,
- bool call_address_immediate, BasicBlock* cont_node,
- BasicBlock* deopt_node);
+ bool call_address_immediate);
+
+ FrameStateDescriptor* GetFrameStateDescriptor(Node* node);
+ void AddFrameStateInputs(Node* state, InstructionOperandVector* inputs,
+ FrameStateDescriptor* descriptor);
// ===========================================================================
// ============= Architecture-specific graph covering methods. ===============
void VisitWord64Compare(Node* node, FlagsContinuation* cont);
void VisitFloat64Compare(Node* node, FlagsContinuation* cont);
+ void VisitFinish(Node* node);
void VisitParameter(Node* node);
void VisitPhi(Node* node);
void VisitProjection(Node* node);
// ===========================================================================
- typedef zone_allocator<Instruction*> InstructionPtrZoneAllocator;
- typedef std::deque<Instruction*, InstructionPtrZoneAllocator> Instructions;
-
Zone zone_;
InstructionSequence* sequence_;
SourcePositionTable* source_positions_;
Features features_;
BasicBlock* current_block_;
- Instructions instructions_;
+ ZoneDeque<Instruction*> instructions_;
BoolVector defined_;
BoolVector used_;
};