5 #ifndef V8_COMPILER_JS_CREATE_LOWERING_H_ 6 #define V8_COMPILER_JS_CREATE_LOWERING_H_ 8 #include "src/base/compiler-specific.h" 9 #include "src/compiler/graph-reducer.h" 10 #include "src/globals.h" 16 class AllocationSiteUsageContext;
23 class CommonOperatorBuilder;
24 class CompilationDependencies;
26 class JSOperatorBuilder;
27 class MachineOperatorBuilder;
28 class SimplifiedOperatorBuilder;
29 class SlackTrackingPrediction;
33 :
public NON_EXPORTED_BASE(AdvancedReducer) {
38 dependencies_(dependencies),
44 const char* reducer_name()
const override {
return "JSCreateLowering"; }
71 Node* node,
Node* length,
MapRef initial_map, ElementsKind elements_kind,
72 PretenureFlag pretenure,
76 ElementsKind elements_kind, PretenureFlag pretenure,
79 Node* node, std::vector<Node*> values,
MapRef initial_map,
80 ElementsKind elements_kind, PretenureFlag pretenure,
87 Node* AllocateAliasedArguments(
Node* effect,
Node* control,
Node* frame_state,
90 bool* has_aliased_arguments);
92 Node* arguments_frame,
Node* arguments_length,
94 bool* has_aliased_arguments);
96 ElementsKind elements_kind,
int capacity,
97 PretenureFlag pretenure);
99 ElementsKind elements_kind,
Node* capacity_and_length);
101 ElementsKind elements_kind,
102 std::vector<Node*>
const& values,
103 PretenureFlag pretenure);
106 Node* AllocateFastLiteralElements(
Node* effect,
Node* control,
108 PretenureFlag pretenure);
109 Node* AllocateLiteralRegExp(
Node* effect,
Node* control,
113 Graph* graph()
const;
114 JSGraph* jsgraph()
const {
return jsgraph_; }
120 Zone* zone()
const {
return zone_; }
132 #endif // V8_COMPILER_JS_CREATE_LOWERING_H_