case Graph::Edge::BACK:
fprintf(out, "\t%i -> %i;\n", idA, idB);
break;
- case Graph::Edge::DUMMY:
- fprintf(out, "\t%i -> %i [style=dotted];\n", idA, idB);
- break;
default:
assert(0);
break;
case FORWARD: return "forward";
case BACK: return "back";
case CROSS: return "cross";
- case DUMMY: return "dummy";
case UNKNOWN:
default:
return "unk";
continue;
for (EdgeIterator ei = pos->outgoing(); !ei.end(); ei.next()) {
- if (ei.getType() == Edge::BACK || ei.getType() == Edge::DUMMY)
+ if (ei.getType() == Edge::BACK)
continue;
if (ei.getNode()->visit(seq))
stack.push(ei.getNode());
switch (ei.getType()) {
case Graph::Edge::TREE:
case Graph::Edge::FORWARD:
- case Graph::Edge::DUMMY:
if (++(ei.getNode()->tag) == ei.getNode()->incidentCountFwd())
bb.push(ei.getNode());
break;
for (edge = curr->out; edge; edge = edge->next[0]) {
node = edge->target;
- if (edge->type == Edge::DUMMY)
- continue;
if (node->getSequence() == 0) {
edge->type = Edge::TREE;
for (edge = curr->in; edge; edge = edge->next[1]) {
node = edge->origin;
- if (edge->type == Edge::DUMMY)
- continue;
if (node->getSequence() == 0) {
edge->type = Edge::TREE;
// trickery to save a loop of OR'ing liveSets
// aliasing works fine with BitSet::setOr
for (Graph::EdgeIterator ei = bb->cfg.outgoing(); !ei.end(); ei.next()) {
- if (ei.getType() == Graph::Edge::DUMMY)
- continue;
if (bbA) {
bb->liveSet.setOr(&bbA->liveSet, &bbB->liveSet);
bbA = bb;