5#ifndef V8_COMPILER_JS_GRAPH_H_
6#define V8_COMPILER_JS_GRAPH_H_
21class SimplifiedOperatorBuilder;
34 javascript_(javascript),
35 simplified_(simplified) {}
41 Node* CEntryStubConstant(
int result_size,
42 ArgvMode argv_mode = ArgvMode::kStack,
43 bool builtin_exit_frame =
false);
83 Node* ConstantMaybeHole(
double value);
86 Node* ConstantNoHole(
double value);
100 DCHECK(Smi::IsValid(immediate));
101 return ConstantMaybeHole(immediate);
113#define CACHED_GLOBAL_LIST(V) \
114 V(AllocateInYoungGenerationStubConstant, Code) \
115 V(AllocateInOldGenerationStubConstant, Code) \
116 IF_WASM(V, WasmAllocateInYoungGenerationStubConstant, Code) \
117 IF_WASM(V, WasmAllocateInOldGenerationStubConstant, Code) \
118 V(ArrayConstructorStubConstant, Code) \
119 V(BigIntMapConstant, Map) \
120 V(BooleanMapConstant, Map) \
121 V(ToNumberBuiltinConstant, Code) \
122 V(PlainPrimitiveToNumberBuiltinConstant, Code) \
123 V(EmptyFixedArrayConstant, FixedArray) \
124 V(EmptyStringConstant, String) \
125 V(FixedArrayMapConstant, Map) \
126 V(PropertyArrayMapConstant, Map) \
127 V(FixedDoubleArrayMapConstant, Map) \
128 V(WeakFixedArrayMapConstant, Map) \
129 V(HeapNumberMapConstant, Map) \
130 V(UndefinedConstant, Undefined) \
131 V(TheHoleConstant, Hole) \
132 V(PropertyCellHoleConstant, Hole) \
133 V(HashTableHoleConstant, Hole) \
134 V(PromiseHoleConstant, Hole) \
135 V(UninitializedConstant, Hole) \
136 V(OptimizedOutConstant, Hole) \
137 V(StaleRegisterConstant, Hole) \
138 V(TrueConstant, True) \
139 V(FalseConstant, False) \
140 V(NullConstant, Null) \
141 V(ZeroConstant, Number) \
142 V(MinusZeroConstant, Number) \
143 V(OneConstant, Number) \
144 V(MinusOneConstant, Number) \
145 V(NaNConstant, Number) \
146 V(EmptyStateValues, UntaggedT) \
147 V(SingleDeadTypedStateValues, UntaggedT) \
148 V(ExternalObjectMapConstant, Map)
151#define DECLARE_GETTER(name, Type) TNode<Type> name();
160#define CACHED_CENTRY_LIST(V) \
161 V(CEntryStub1Constant) \
162 V(CEntryStub2Constant) \
163 V(CEntryStub3Constant) \
164 V(CEntryStub1WithBuiltinExitFrameConstant)
167#define DECLARE_FIELD(name, ...) Node* name##_ = nullptr;
173 Node* NumberConstant(
double value);
178 Node* Constant(ObjectRef value, JSHeapBroker*
broker);
JSOperatorBuilder * javascript() const
JSGraph(Isolate *isolate, TFGraph *graph, CommonOperatorBuilder *common, JSOperatorBuilder *javascript, SimplifiedOperatorBuilder *simplified, MachineOperatorBuilder *machine)
SimplifiedOperatorBuilder * simplified() const
JSOperatorBuilder * javascript_
Isolate * isolate() const
JSGraph & operator=(const JSGraph &)=delete
Factory * factory() const
SimplifiedOperatorBuilder * simplified_
TNode< Number > NoContextConstant()
TNode< Hole > PaddingConstant()
TNode< Boolean > BooleanConstant(bool is_true)
JSGraph(const JSGraph &)=delete
Node * SmiConstant(int32_t immediate)
#define DECLARE_GETTER(name, Type)
#define CACHED_GLOBAL_LIST(V)
#define CACHED_CENTRY_LIST(V)
#define DECLARE_FIELD(name,...)
HeapConstantHole(factory() ->the_hole_value())) DEFINE_GETTER(PropertyCellHoleConstant
HeapConstantNoHole(BUILTIN_CODE(isolate(), AllocateInOldGeneration))) DEFINE_GETTER(ArrayConstructorStubConstant
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE