summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/js-graph.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/js-graph.h')
-rw-r--r--deps/v8/src/compiler/js-graph.h39
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.
};