Lines Matching defs:node
6 #include "src/compiler/node-properties.h"
29 void ControlEquivalence::VisitPre(Node* node) {
30 TRACE("CEQ: Pre-visit of #%d:%s\n", node->id(), node->op()->mnemonic());
34 void ControlEquivalence::VisitMid(Node* node, DFSDirection direction) {
35 TRACE("CEQ: Mid-visit of #%d:%s\n", node->id(), node->op()->mnemonic());
36 BracketList& blist = GetBracketList(node);
38 // Remove brackets pointing to this node [line:19].
39 BracketListDelete(blist, node, direction);
44 VisitBackedge(node, graph_->end(), kInputDirection);
55 // Assign equivalence class to node.
56 SetClass(node, recent->recent_class);
57 TRACE(" Assigned class number is %zu\n", GetClass(node));
61 void ControlEquivalence::VisitPost(Node* node, Node* parent_node,
63 TRACE("CEQ: Post-visit of #%d:%s\n", node->id(), node->op()->mnemonic());
64 BracketList& blist = GetBracketList(node);
66 // Remove brackets pointing to this node [line:19].
67 BracketListDelete(blist, node, direction);
95 Node* node = entry.node;
98 if (entry.input != node->input_edges().end()) {
109 VisitBackedge(node, input, kInputDirection);
113 DFSPush(stack, input, node, kInputDirection);
119 if (entry.use != node->use_edges().end()) {
122 VisitMid(node, kInputDirection);
128 if (entry.use != node->use_edges().end()) {
139 VisitBackedge(node, use, kUseDirection);
143 DFSPush(stack, use, node, kUseDirection);
149 if (entry.input != node->input_edges().end()) {
152 VisitMid(node, kUseDirection);
157 // Pop node from stack when done with all inputs and uses.
158 DCHECK(entry.input == node->input_edges().end());
159 DCHECK(entry.use == node->use_edges().end());
160 DFSPop(stack, node);
161 VisitPost(node, entry.parent_node, entry.direction);
166 Node* node) {
167 if (!Participates(node)) {
168 AllocateData(node);
169 queue.push(node);
178 Node* node = queue.front();
180 int max = NodeProperties::PastControlIndex(node);
181 for (int i = NodeProperties::FirstControlIndex(node); i < max; i++) {
182 DetermineParticipationEnqueue(queue, node->InputAt(i));
188 void ControlEquivalence::DFSPush(DFSStack& stack, Node* node, Node* from,
190 DCHECK(Participates(node));
191 DCHECK(!GetData(node)->visited);
192 GetData(node)->on_stack = true;
193 Node::InputEdges::iterator input = node->input_edges().begin();
194 Node::UseEdges::iterator use = node->use_edges().begin();
195 stack.push({dir, input, use, from, node});
199 void ControlEquivalence::DFSPop(DFSStack& stack, Node* node) {
200 DCHECK_EQ(stack.top().node, node);
201 GetData(node)->on_stack = false;
202 GetData(node)->visited = true;