5#ifndef V8_COMPILER_CONTROL_EQUIVALENCE_H_
6#define V8_COMPILER_CONTROL_EQUIVALENCE_H_
41 node_data_(graph->NodeCount(), zone) {}
54 return GetClass(node);
58 static const size_t kInvalidClass =
static_cast<size_t>(-1);
85 : class_number(kInvalidClass),
100 void VisitPre(
Node* node);
125 void RunUndirectedDFS(
Node* exit);
128 void DetermineParticipation(
Node* exit);
132 size_t const index = node->id();
133 if (index >= node_data_.size()) node_data_.resize(index + 1);
134 return node_data_[
index];
137 size_t const index = node->id();
138 if (index >= node_data_.size()) node_data_.resize(index + 1);
150 DCHECK(Participates(node));
151 GetData(node)->class_number = number;
156 DCHECK(Participates(node));
157 return GetData(node)->blist;
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);
171 void BracketListTRACE(BracketList& blist);
size_t ClassOf(Node *node)
void SetBracketList(Node *node, BracketList &list)
void AllocateData(Node *node)
NodeData * GetData(Node *node)
size_t GetClass(Node *node)
BracketList & GetBracketList(Node *node)
void SetClass(Node *node, size_t number)
bool Participates(Node *node)
ControlEquivalence(Zone *zone, TFGraph *graph)
ArrayReduceDirection direction
#define NON_EXPORTED_BASE(code)
#define DCHECK_NE(v1, v2)
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE
Node::InputEdges::iterator input
Node::UseEdges::iterator use