list.add(new Dua(i.id, new PUse(i.id, succ.id), var));
}
}
while (top > 0) {
final Block j = queue[--top];
// is not necessary remove queued mark (since a node is visited only
// once). We use the queued mark to indicate that a node has already
// been visited or will be visited soon.
if (j.isCUse(var)) {
list.add(new Dua(i.id, new CUse(j.id), var));
}
if (j.isPUse(var) && !j.isDef(var)) {
for (final Block succ : graph.neighbors(j.id)) {
list.add(new Dua(i.id, new PUse(j.id, succ.id), var));
}
}
if (j.isDef(var)) {
// backtrack
continue;
}
for (final Block succ : graph.neighbors(j.id)) {