Lines Matching refs:Node
37 Node* LoadAccumulator(Node* value);
39 // Get or create the node that represents the outer function closure.
40 Node* GetFunctionClosure();
42 // Get or create the node that represents the outer function context.
43 Node* GetFunctionContext();
45 // Get or create the node that represents the incoming new target value.
46 Node* GetNewTarget();
49 Node* BuildLoadObjectField(Node* object, int offset);
50 Node* BuildLoadImmutableObjectField(Node* object, int offset);
53 Node* BuildLoadFeedbackVector();
56 Node* BuildLoadNativeContextField(int index);
66 // Node creation helpers
67 Node* NewNode(const Operator* op, bool incomplete = false) {
68 return MakeNode(op, 0, static_cast<Node**>(nullptr), incomplete);
71 Node* NewNode(const Operator* op, Node* n1) {
72 Node* buffer[] = {n1};
76 Node* NewNode(const Operator* op, Node* n1, Node* n2) {
77 Node* buffer[] = {n1, n2};
81 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3) {
82 Node* buffer[] = {n1, n2, n3};
86 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3, Node* n4) {
87 Node* buffer[] = {n1, n2, n3, n4};
92 Node* NewIfTrue() { return NewNode(common()->IfTrue()); }
93 Node* NewIfFalse() { return NewNode(common()->IfFalse()); }
94 Node* NewMerge() { return NewNode(common()->Merge(1), true); }
95 Node* NewLoop() { return NewNode(common()->Loop(1), true); }
96 Node* NewBranch(Node* condition, BranchHint hint = BranchHint::kNone) {
100 // Creates a new Phi node having {count} input values.
101 Node* NewPhi(int count, Node* input, Node* control);
102 Node* NewEffectPhi(int count, Node* input, Node* control);
105 Node* MergeControl(Node* control, Node* other);
106 Node* MergeEffect(Node* effect, Node* other_effect, Node* control);
107 Node* MergeValue(Node* value, Node* other_value, Node* control);
109 // The main node creation chokepoint. Adds context, frame state, effect,
111 Node* MakeNode(const Operator* op, int value_input_count, Node** value_inputs,
114 // Helper to indicate a node exits the function body.
115 void UpdateControlDependencyToLeaveFunction(Node* exit);
117 Node** EnsureInputBufferSize(int size);
119 Node* ProcessCallArguments(const Operator* call_op, Node* callee,
121 Node* ProcessCallNewArguments(const Operator* call_new_op,
124 Node* ProcessCallRuntimeArguments(const Operator* call_runtime_op,
161 void BuildConditionalJump(Node* condition);
162 void BuildJumpIfEqual(Node* comperand);
163 void BuildJumpIfToBooleanEqual(Node* boolean_comperand);
171 // Attaches a frame state to |node| for the entry to the function.
172 void PrepareEntryFrameState(Node* node);
237 // Temporary storage for building node input lists.
239 Node** input_buffer_;
242 SetOncePointer<Node> function_context_;
243 SetOncePointer<Node> function_closure_;
244 SetOncePointer<Node> new_target_;
247 SetOncePointer<Node> feedback_vector_;
250 ZoneVector<Node*> exit_controls_;
259 int parameter_count, Node* control_dependency, Node* context);
264 Node* LookupAccumulator() const;
265 Node* LookupRegister(interpreter::Register the_register) const;
270 void BindAccumulator(Node* node, FrameStateBeforeAndAfter* states = nullptr);
271 void BindRegister(interpreter::Register the_register, Node* node,
273 void BindRegistersToProjections(interpreter::Register first_reg, Node* node,
275 void RecordAfterState(Node* node, FrameStateBeforeAndAfter* states);
281 Node* GetEffectDependency() { return effect_dependency_; }
282 void UpdateEffectDependency(Node* dependency) {
288 Node* Checkpoint(BailoutId bytecode_offset, OutputFrameStateCombine combine);
295 Node* GetControlDependency() const { return control_dependency_; }
296 void UpdateControlDependency(Node* dependency) {
300 Node* Context() const { return context_; }
301 void SetContext(Node* new_context) { context_ = new_context; }
310 bool StateValuesAreUpToDate(Node** state_values, int offset, int count,
312 bool StateValuesRequireUpdate(Node** state_values, int offset, int count);
313 void UpdateStateValues(Node** state_values, int offset, int count);
329 Node* context_;
330 Node* control_dependency_;
331 Node* effect_dependency_;
333 Node* parameters_state_values_;
334 Node* registers_state_values_;
335 Node* accumulator_state_values_;