Lines Matching refs:Node
10 #include "src/compiler/node.h"
43 // Run the main algorithm starting from the {exit} control node. This causes
49 void Run(Node* exit);
52 size_t ClassOf(Node* node) {
53 DCHECK_NE(kInvalidClass, GetClass(node));
54 return GetClass(node);
65 Node* from; // Node that this bracket originates from.
66 Node* to; // Node that this bracket points to.
69 // The set of brackets for each node during the DFS walk.
74 Node::InputEdges::iterator input; // Iterator used for "input" direction.
75 Node::UseEdges::iterator use; // Iterator used for "use" direction.
76 Node* parent_node; // Parent node of entry during DFS walk.
77 Node* node; // Node that this stack entry belongs to.
90 size_t class_number; // Equivalence class number assigned to node.
91 BracketList blist; // List of brackets per node.
92 bool visited : 1; // Indicates node has already been visited.
93 bool on_stack : 1; // Indicates node is on DFS stack during walk.
96 // The per-node data computed during the DFS walk.
100 void VisitPre(Node* node);
103 void VisitMid(Node* node, DFSDirection direction);
106 void VisitPost(Node* node, Node* parent_node, DFSDirection direction);
109 void VisitBackedge(Node* from, Node* to, DFSDirection direction);
125 void RunUndirectedDFS(Node* exit);
127 void DetermineParticipationEnqueue(ZoneQueue<Node*>& queue, Node* node);
128 void DetermineParticipation(Node* exit);
131 NodeData* GetData(Node* node) {
132 size_t const index = node->id();
136 void AllocateData(Node* node) {
137 size_t const index = node->id();
145 bool Participates(Node* node) { return GetData(node) != nullptr; }
147 // Accessors for the equivalence class stored within the per-node data.
148 size_t GetClass(Node* node) { return GetData(node)->class_number; }
149 void SetClass(Node* node, size_t number) {
150 DCHECK(Participates(node));
151 GetData(node)->class_number = number;
154 // Accessors for the bracket list stored within the per-node data.
155 BracketList& GetBracketList(Node* node) {
156 DCHECK(Participates(node));
157 return GetData(node)->blist;
159 void SetBracketList(Node* node, BracketList& list) {
160 DCHECK(Participates(node));
161 GetData(node)->blist = list;
165 void DFSPush(DFSStack& stack, Node* node, Node* from, DFSDirection dir);
168 void DFSPop(DFSStack& stack, Node* node);
170 void BracketListDelete(BracketList& blist, Node* to, DFSDirection direction);
177 Data node_data_; // Per-node data stored as a side-table.