diff options
Diffstat (limited to 'deps/v8/src/compiler/js-graph.h')
-rw-r--r-- | deps/v8/src/compiler/js-graph.h | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/deps/v8/src/compiler/js-graph.h b/deps/v8/src/compiler/js-graph.h index 06e8030164..9d6f27dbe6 100644 --- a/deps/v8/src/compiler/js-graph.h +++ b/deps/v8/src/compiler/js-graph.h @@ -39,9 +39,21 @@ class JSGraph : public ZoneObject { } // Canonicalized global constants. - Node* CEntryStubConstant(int result_size); + Node* AllocateInNewSpaceStubConstant(); + Node* AllocateInOldSpaceStubConstant(); + Node* ToNumberBuiltinConstant(); + Node* CEntryStubConstant(int result_size, + SaveFPRegsMode save_doubles = kDontSaveFPRegs, + ArgvMode argv_mode = kArgvOnStack, + bool builtin_exit_frame = false); Node* EmptyFixedArrayConstant(); + Node* EmptyLiteralsArrayConstant(); + Node* EmptyStringConstant(); + Node* FixedArrayMapConstant(); + Node* FixedDoubleArrayMapConstant(); + Node* HeapNumberMapConstant(); Node* OptimizedOutConstant(); + Node* StaleRegisterConstant(); Node* UndefinedConstant(); Node* TheHoleConstant(); Node* TrueConstant(); @@ -66,6 +78,9 @@ class JSGraph : public ZoneObject { // Creates a NumberConstant node, usually canonicalized. Node* Constant(int32_t value); + // Creates a NumberConstant node, usually canonicalized. + Node* Constant(uint32_t value); + // Creates a Int32Constant node, usually canonicalized. Node* Int32Constant(int32_t value); Node* Uint32Constant(uint32_t value) { @@ -96,6 +111,10 @@ class JSGraph : public ZoneObject { return IntPtrConstant(bit_cast<intptr_t>(value)); } + Node* RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode); + Node* RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode); + Node* RelocatableIntPtrConstant(intptr_t value, RelocInfo::Mode rmode); + // Creates a Float32Constant node, usually canonicalized. Node* Float32Constant(float value); @@ -115,9 +134,9 @@ class JSGraph : public ZoneObject { // stubs and runtime functions that do not require a context. Node* NoContextConstant() { return ZeroConstant(); } - // Creates an empty frame states for cases where we know that a function - // cannot deopt. - Node* EmptyFrameState(); + // Creates an empty StateValues node, used when we don't have any concrete + // values for a certain part of the frame state. + Node* EmptyStateValues(); // Create a control node that serves as dependency for dead nodes. Node* Dead(); @@ -135,9 +154,19 @@ class JSGraph : public ZoneObject { private: enum CachedNode { + kAllocateInNewSpaceStubConstant, + kAllocateInOldSpaceStubConstant, + kToNumberBuiltinConstant, kCEntryStubConstant, + kCEntryStubWithBuiltinExitFrameConstant, kEmptyFixedArrayConstant, + kEmptyLiteralsArrayConstant, + kEmptyStringConstant, + kFixedArrayMapConstant, + kFixedDoubleArrayMapConstant, + kHeapNumberMapConstant, kOptimizedOutConstant, + kStaleRegisterConstant, kUndefinedConstant, kTheHoleConstant, kTrueConstant, @@ -146,7 +175,7 @@ class JSGraph : public ZoneObject { kZeroConstant, kOneConstant, kNaNConstant, - kEmptyFrameState, + kEmptyStateValues, kDead, kNumCachedNodes // Must remain last. }; |