示例#1
0
 private void visitBackward(NodeBitMap visited, Node node) {
   if (node != null && !visited.isMarked(node)) {
     visited.mark(node);
     for (Node successor : node.successors()) {
       visitBackward(visited, successor);
     }
     for (Node usage : node.usages()) {
       visitBackward(visited, usage);
     }
     nodes.add(node);
   }
 }
示例#2
0
  public static GraphOrder backwardGraph(Graph graph) {
    GraphOrder result = new GraphOrder();

    NodeBitMap visited = graph.createNodeBitMap();

    for (Node node : forwardGraph(graph)) {
      result.visitBackward(visited, node);
    }
    return result;
  }