Lines Matching refs:Edge
53 void Graph::Edge::unlink()
73 const char *Graph::Edge::typeStr() const
95 void Graph::Node::attach(Node *node, Edge::Type kind)
97 Edge *edge = new Edge(this, node, kind);
101 edge->next[0] = this->out;
102 edge->prev[0] = this->out->prev[0];
103 edge->prev[0]->next[0] = edge;
104 this->out->prev[0] = edge;
106 this->out = edge;
109 edge->next[1] = node->in;
110 edge->prev[1] = node->in->prev[1];
111 edge->prev[1]->next[1] = edge;
112 node->in->prev[1] = edge;
114 node->in = edge;
125 if (kind == Edge::UNKNOWN)
158 Graph::Edge::Edge(Node *org, Node *tgt, Type kind)
187 if (ei.getType() == Edge::BACK || ei.getType() == Edge::DUMMY)
299 case Graph::Edge::TREE:
300 case Graph::Edge::FORWARD:
301 case Graph::Edge::DUMMY:
305 case Graph::Edge::BACK:
307 case Graph::Edge::CROSS:
312 assert(!"unknown edge kind in CFG");
356 Graph::Edge *edge;
362 for (edge = curr->out; edge; edge = edge->next[0]) {
363 node = edge->target;
364 if (edge->type == Edge::DUMMY)
368 edge->type = Edge::TREE;
372 edge->type = Edge::FORWARD;
374 edge->type = node->tag ? Edge::BACK : Edge::CROSS;
378 for (edge = curr->in; edge; edge = edge->next[1]) {
379 node = edge->origin;
380 if (edge->type == Edge::DUMMY)
384 edge->type = Edge::TREE;
388 edge->type = Edge::FORWARD;
390 edge->type = node->tag ? Edge::BACK : Edge::CROSS;