Home | History | Annotate | Download | only in compiler

Lines Matching refs:Node

27 class Node;
45 Node* NewIfTrue() { return NewNode(common()->IfTrue()); }
46 Node* NewIfFalse() { return NewNode(common()->IfFalse()); }
47 Node* NewMerge() { return NewNode(common()->Merge(1), true); }
48 Node* NewLoop() { return NewNode(common()->Loop(1), true); }
49 Node* NewBranch(Node* condition, BranchHint hint = BranchHint::kNone) {
54 #define DECLARE_VISIT(type) void Visit##type(type* node) override;
94 SetOncePointer<Node> function_closure_;
95 SetOncePointer<Node> function_context_;
96 SetOncePointer<Node> new_target_;
102 // Temporary storage for building node input lists.
104 Node** input_buffer_;
107 SetOncePointer<Node> feedback_vector_;
110 ZoneVector<Node*> exit_controls_;
146 Node* current_context() const;
160 // Get or create the node that represents the incoming function closure.
161 Node* GetFunctionClosureForContext();
162 Node* GetFunctionClosure();
164 // Get or create the node that represents the incoming function context.
165 Node* GetFunctionContext();
167 // Get or create the node that represents the incoming new target value.
168 Node* GetNewTarget();
170 // Node creation helpers.
171 Node* NewNode(const Operator* op, bool incomplete = false) {
172 return MakeNode(op, 0, static_cast<Node**>(nullptr), incomplete);
175 Node* NewNode(const Operator* op, Node* n1) {
179 Node* NewNode(const Operator* op, Node* n1, Node* n2) {
180 Node* buffer[] = {n1, n2};
184 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3) {
185 Node* buffer[] = {n1, n2, n3};
189 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3, Node* n4) {
190 Node* buffer[] = {n1, n2, n3, n4};
194 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3, Node* n4,
195 Node* n5) {
196 Node* buffer[] = {n1, n2, n3, n4, n5};
200 Node* NewNode(const Operator* op, Node* n1, Node* n2, Node* n3, Node* n4,
201 Node* n5, Node* n6) {
202 Node* nodes[] = {n1, n2, n3, n4, n5, n6};
206 Node* NewNode(const Operator* op, int value_input_count, Node** value_inputs,
211 // Creates a new Phi node having {count} input values.
212 Node* NewPhi(int count, Node* input, Node* control);
213 Node* NewEffectPhi(int count, Node* input, Node* control);
216 Node* MergeControl(Node* control, Node* other);
217 Node* MergeEffect(Node* value, Node* other, Node* control);
218 Node* MergeValue(Node* value, Node* other, Node* control);
220 // The main node creation chokepoint. Adds context, frame state, effect,
222 Node* MakeNode(const Operator* op, int value_input_count, Node** value_inputs,
225 // Helper to indicate a node exits the function body.
226 void UpdateControlDependencyToLeaveFunction(Node* exit);
228 // Builds deoptimization for a given node.
229 void PrepareFrameState(Node* node, BailoutId ast_id,
243 Node** EnsureInputBufferSize(int size);
255 // resulting node. The operand stack height remains the same, variables and
259 Node* BuildLocalActivationContext(Node* context);
260 Node* BuildLocalFunctionContext(Scope* scope);
261 Node* BuildLocalScriptContext(Scope* scope);
262 Node* BuildLocalBlockContext(Scope* scope);
265 Node* BuildArgumentsObject(Variable* arguments);
268 Node* BuildRestArgumentsArray(Variable* rest, int index);
271 Node* BuildThisFunctionVariable(Variable* this_function_var);
274 Node* BuildNewTargetVariable(Variable* new_target_var);
277 Node* BuildVariableAssignment(Variable* variable, Node* value,
283 Node* BuildVariableDelete(Variable* variable, BailoutId bailout_id,
285 Node* BuildVariableLoad(Variable* variable, BailoutId bailout_id,
292 Node* BuildKeyedLoad(Node* receiver, Node* key,
294 Node* BuildNamedLoad(Node* receiver, Handle<Name> name,
296 Node* BuildKeyedStore(Node* receiver, Node* key, Node* value,
298 Node* BuildNamedStore(Node* receiver, Handle<Name> name, Node* value,
302 Node* BuildKeyedSuperStore(Node* receiver, Node* home_object, Node* key,
303 Node* value);
304 Node* BuildNamedSuperStore(Node* receiver, Node* home_object,
305 Handle<Name> name, Node* value);
306 Node* BuildNamedSuperLoad(Node* receiver, Node* home_object,
308 Node* BuildKeyedSuperLoad(Node* receiver, Node* home_object, Node* key,
312 Node* BuildGlobalLoad(Handle<Name> name, const VectorSlotPair& feedback,
314 Node* BuildGlobalStore(Handle<Name> name, Node* value,
318 Node* BuildLoadGlobalObject();
319 Node* BuildLoadNativeContextField(int index);
320 Node* BuildLoadFeedbackVector();
323 Node* BuildLoadObjectField(Node* object, int offset);
324 Node* BuildLoadImmutableObjectField(Node* object, int offset);
327 Node* BuildToBoolean(Node* input, TypeFeedbackId feedback_id);
328 Node* BuildToName(Node* input, BailoutId bailout_id);
329 Node* BuildToObject(Node* input, BailoutId bailout_id);
333 Node* BuildSetHomeObject(Node* value, Node* home_object,
338 Node* BuildThrowError(Node* exception, BailoutId bailout_id);
339 Node* BuildThrowReferenceError(Variable* var, BailoutId bailout_id);
340 Node* BuildThrowConstAssignError(BailoutId bailout_id);
341 Node* BuildThrowStaticPrototypeError(BailoutId bailout_id);
342 Node* BuildThrowUnsupportedSuperError(BailoutId bailout_id);
345 Node* BuildHoleCheckSilent(Node* value, Node* for_hole, Node* not_hole);
346 Node* BuildHoleCheckThenThrow(Node* value, Variable* var, Node* not_hole,
348 Node* BuildHoleCheckElseThrow(Node* value, Variable* var, Node* for_hole,
352 Node* BuildThrowIfStaticPrototype(Node* name, BailoutId bailout_id);
355 Node* BuildReturn(Node* return_value);
356 Node* BuildThrow(Node* exception_value);
359 Node* BuildBinaryOp(Node* left, Node* right, Token::Value op,
363 // stack and build a call node using the given call operator.
364 Node* ProcessArguments(const Operator* op, int arity);
373 Node* TryLoadGlobalConstant(Handle<Name> name);
377 Node* TryLoadDynamicVariable(Variable* variable, Handle<String> name,
385 Node* TryFastToBoolean(Node* input);
386 Node* TryFastToName(Node* input);
397 void VisitInScope(Statement* stmt, Scope* scope, Node
429 void VisitForInAssignment(Expression* expr, Node* value,
435 void VisitObjectLiteralAccessor(Node* home_object,
456 Environment(AstGraphBuilder* builder, Scope* scope, Node* control_dependency);
467 void Bind(Variable* variable, Node* node);
468 Node* Lookup(Variable* variable);
472 void RawParameterBind(int index, Node* node);
473 Node* RawParameterLookup(int index);
476 Node* Context() const { return contexts_.back(); }
477 void PushContext(Node* context) { contexts()->push_back(context); }
484 void Push(Node* node) {
485 values()->push_back(node);
487 Node* Top() {
491 Node* Pop() {
493 Node* back = values()->back();
499 void Poke(int depth, Node* node) {
502 values()->at(index) = node;
504 Node* Peek(int depth) {
521 Node* Checkpoint(BailoutId ast_id, OutputFrameStateCombine combine =
525 Node* GetControlDependency() { return control_dependency_; }
526 void UpdateControlDependency(Node* dependency) {
531 Node* GetEffectDependency() { return effect_dependency_; }
532 void UpdateEffectDependency(Node* dependency) {
564 Node* control_dependency_;
565 Node* effect_dependency_;
566 Node* parameters_node_;
567 Node* locals_node_;
568 Node* stack_node_;
573 void UpdateStateValues(Node** state_values, int offset, int count);
574 void UpdateStateValuesWithCache(Node** state_values, int offset, int count);