Lines Matching defs:node

9 #include "src/compiler/node-marker.h"
10 #include "src/compiler/node-properties.h"
11 #include "src/compiler/node.h"
40 Node* node = queue.front();
42 queued.Set(node, false);
44 DCHECK(!reduced_.Get(node));
46 int inputs_end = (node->opcode() == IrOpcode::kLoop)
48 : node->op()->ControlInputCount();
50 if (!reduced_.Get(NodeProperties::GetControlInput(node, i))) {
57 VisitNode(node);
58 reduced_.Set(node, true);
61 for (Edge edge : node->use_edges()) {
67 VisitBackedge(node, use);
120 void LoopVariableOptimizer::VisitNode(Node* node) {
121 switch (node->opcode()) {
123 return VisitMerge(node);
125 return VisitLoop(node);
127 return VisitIf(node, false);
129 return VisitIf(node, true);
131 return VisitStart(node);
133 return VisitLoopExit(node);
135 return VisitOtherControl(node);
139 void LoopVariableOptimizer::VisitMerge(Node* node) {
141 VariableLimits merged = limits_.Get(node->InputAt(0));
142 for (int i = 1; i < node->InputCount(); i++) {
143 merged.ResetToCommonAncestor(limits_.Get(node->InputAt(i)));
145 limits_.Set(node, merged);
148 void LoopVariableOptimizer::VisitLoop(Node* node) {
149 DetectInductionVariables(node);
151 return TakeConditionsFromFirstControl(node);
154 void LoopVariableOptimizer::VisitIf(Node* node, bool polarity) {
155 Node* branch = node->InputAt(0);
179 limits_.Set(node, limits);
183 VariableLimits* limits, Node* node, InductionVariable::ConstraintKind kind,
185 Node* left = node->InputAt(0);
186 Node* right = node->InputAt(1);
199 void LoopVariableOptimizer::VisitStart(Node* node) { limits_.Set(node, {}); }
201 void LoopVariableOptimizer::VisitLoopExit(Node* node) {
202 return TakeConditionsFromFirstControl(node);
205 void LoopVariableOptimizer::VisitOtherControl(Node* node) {
206 DCHECK_EQ(1, node->op()->ControlInputCount());
207 return TakeConditionsFromFirstControl(node);
210 void LoopVariableOptimizer::TakeConditionsFromFirstControl(Node* node) {
211 limits_.Set(node, limits_.Get(NodeProperties::GetControlInput(node, 0)));
215 Node* node) {
216 auto var = induction_vars_.find(node->id());