diff options
Diffstat (limited to 'deps/v8/src/compiler/instruction-selector.h')
-rw-r--r-- | deps/v8/src/compiler/instruction-selector.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/deps/v8/src/compiler/instruction-selector.h b/deps/v8/src/compiler/instruction-selector.h index 65ba8f7c71..b7753ce7b7 100644 --- a/deps/v8/src/compiler/instruction-selector.h +++ b/deps/v8/src/compiler/instruction-selector.h @@ -26,6 +26,7 @@ class FlagsContinuation; class Linkage; class OperandGenerator; struct SwitchInfo; +class StateObjectDeduplicator; // This struct connects nodes of parameters which are going to be pushed on the // call stack with their parameter index in the call descriptor of the callee. @@ -42,6 +43,8 @@ class PushParameter { MachineType type_; }; +enum class FrameStateInputKind { kAny, kStackSlot }; + // Instruction selection generates an InstructionSequence for a given Schedule. class V8_EXPORT_PRIVATE InstructionSelector final { public: @@ -286,6 +289,17 @@ class V8_EXPORT_PRIVATE InstructionSelector final { int GetTempsCountForTailCallFromJSFunction(); FrameStateDescriptor* GetFrameStateDescriptor(Node* node); + size_t AddInputsToFrameStateDescriptor(FrameStateDescriptor* descriptor, + Node* state, OperandGenerator* g, + StateObjectDeduplicator* deduplicator, + InstructionOperandVector* inputs, + FrameStateInputKind kind, Zone* zone); + size_t AddOperandToStateValueDescriptor(StateValueList* values, + InstructionOperandVector* inputs, + OperandGenerator* g, + StateObjectDeduplicator* deduplicator, + Node* input, MachineType type, + FrameStateInputKind kind, Zone* zone); // =========================================================================== // ============= Architecture-specific graph covering methods. =============== @@ -307,8 +321,7 @@ class V8_EXPORT_PRIVATE InstructionSelector final { #define DECLARE_GENERATOR(x) void Visit##x(Node* node); MACHINE_OP_LIST(DECLARE_GENERATOR) - MACHINE_SIMD_RETURN_NUM_OP_LIST(DECLARE_GENERATOR) - MACHINE_SIMD_RETURN_SIMD_OP_LIST(DECLARE_GENERATOR) + MACHINE_SIMD_OP_LIST(DECLARE_GENERATOR) #undef DECLARE_GENERATOR void VisitFinishRegion(Node* node); @@ -321,6 +334,8 @@ class V8_EXPORT_PRIVATE InstructionSelector final { void VisitCall(Node* call, BasicBlock* handler = nullptr); void VisitDeoptimizeIf(Node* node); void VisitDeoptimizeUnless(Node* node); + void VisitTrapIf(Node* node, Runtime::FunctionId func_id); + void VisitTrapUnless(Node* node, Runtime::FunctionId func_id); void VisitTailCall(Node* call); void VisitGoto(BasicBlock* target); void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); @@ -351,6 +366,7 @@ class V8_EXPORT_PRIVATE InstructionSelector final { bool instruction_selection_failed() { return instruction_selection_failed_; } void MarkPairProjectionsAsWord32(Node* node); + bool IsSourcePositionUsed(Node* node); // =========================================================================== |