Home | History | Annotate | Download | only in compiler

Lines Matching refs:node

8 #include "src/compiler/node.h"
19 // A facade that simplifies access to the different kinds of inputs to a node.
25 // 0 [ values, context, frame state, effects, control ] node->InputCount()
27 static int FirstValueIndex(Node* node) { return 0; }
28 static int FirstContextIndex(Node* node) { return PastValueIndex(node); }
29 static int FirstFrameStateIndex(Node* node) { return PastContextIndex(node); }
30 static int FirstEffectIndex(Node* node) { return PastFrameStateIndex(node); }
31 static int FirstControlIndex(Node* node) { return PastEffectIndex(node); }
32 static int PastValueIndex(Node* node);
33 static int PastContextIndex(Node* node);
34 static int PastFrameStateIndex(Node* node);
35 static int PastEffectIndex(Node* node);
36 static int PastControlIndex(Node* node);
42 static Node* GetValueInput(Node* node, int index);
43 static Node* GetContextInput(Node* node);
44 static Node* GetFrameStateInput(Node* node, int index);
45 static Node* GetEffectInput(Node* node, int index = 0);
46 static Node* GetControlInput(Node* node, int index = 0);
62 static bool IsCommon(Node* node) {
63 return IrOpcode::IsCommonOpcode(node->opcode());
65 static bool IsControl(Node* node) {
66 return IrOpcode::IsControlOpcode(node->opcode());
68 static bool IsConstant(Node* node) {
69 return IrOpcode::IsConstantOpcode(node->opcode());
71 static bool IsPhi(Node* node) {
72 return IrOpcode::IsPhiOpcode(node->opcode());
75 // Determines whether exceptions thrown by the given node are handled locally
77 static bool IsExceptionalCall(Node* node);
82 static void ReplaceValueInput(Node* node, Node* value, int index);
83 static void ReplaceContextInput(Node* node, Node* context);
84 static void ReplaceControlInput(Node* node, Node* control);
85 static void ReplaceEffectInput(Node* node, Node* effect, int index = 0);
86 static void ReplaceFrameStateInput(Node* node, int index, Node* frame_state);
87 static void RemoveFrameStateInput(Node* node, int index);
88 static void RemoveNonValueInputs(Node* node);
89 static void RemoveValueInputs(Node* node);
91 // Replaces all value inputs of {node} with the single input {value}.
92 static void ReplaceValueInputs(Node* node, Node* value);
94 // Merge the control node {node} into the end of the graph, introducing a
95 // merge node or expanding an existing merge node if necessary.
97 Node* node);
99 // Replace all uses of {node} with the given replacement nodes. All occurring
102 static void ReplaceUses(Node* node, Node* value, Node* effect = nullptr,
103 Node* success = nullptr, Node* exception = nullptr);
105 // Safe wrapper to mutate the operator of a node. Checks that the node is
107 static void ChangeOp(Node* node, const Operator* new_op);
112 static Node* FindProjection(Node* node, size_t projection_index);
114 // Collect the branch-related projections from a node, such as IfTrue,
119 static void CollectControlProjections(Node* node, Node** proj, size_t count);
124 // Try to retrieve the specialization context from the given {node},
128 Node* node, MaybeHandle<Context> context = MaybeHandle<Context>());
131 // {node}, optionally utilizing the knowledge about the (outermost)
134 Node* node, MaybeHandle<Context> native_context = MaybeHandle<Context>());
137 // {node}, optionally utilizing the knowledge about the (outermost)
140 Node* node, MaybeHandle<Context> native_context = MaybeHandle<Context>());
145 static bool IsTyped(Node* node) { return node->type() != nullptr; }
146 static Type* GetType(Node* node) {
147 DCHECK(IsTyped(node));
148 return node->type();
150 static Type* GetTypeOrAny(Node* node);
151 static void SetType(Node* node, Type* type) {
153 node->set_type(type);
155 static void RemoveType(Node* node) { node->set_type(nullptr); }
156 static bool AllValueInputsAreTyped(Node* node);