/** * Generate an ordered list of flow graph nodes in a forward or backward order depending * on direction. */ protected LinkedList<U> generateWorkList() { LinkedList<U> wl = new LinkedList<>(); Iterator<BasicBlock> it = direction == DF_Direction.FORWARD ? scope.getCFG().getReversePostOrderTraverser() : scope.getCFG().getPostOrderTraverser(); while (it.hasNext()) { wl.add(getFlowGraphNode(it.next())); } return wl; }
/** * Generate an ordered list of flow graph nodes in a forward or backward order depending * on direction. */ protected LinkedList<U> generateWorkList() { LinkedList<U> wl = new LinkedList<>(); Iterator<BasicBlock> it = direction == DF_Direction.FORWARD ? scope.getCFG().getReversePostOrderTraverser() : scope.getCFG().getPostOrderTraverser(); while (it.hasNext()) { wl.add(getFlowGraphNode(it.next())); } return wl; }
private LinkedList<FlowGraphNode> getInitialWorkList() { LinkedList<FlowGraphNode> wl = new LinkedList<FlowGraphNode>(); if (direction == DF_Direction.FORWARD) { ListIterator<BasicBlock> it = scope.cfg().getReversePostOrderTraverser(); while (it.hasPrevious()) { wl.add(getFlowGraphNode(it.previous())); } } else { ListIterator<BasicBlock> it = scope.cfg().getPostOrderTraverser(); while (it.hasNext()) { wl.add(getFlowGraphNode(it.next())); } } return wl; }
private LinkedList<FlowGraphNode> getInitialWorkList() { LinkedList<FlowGraphNode> wl = new LinkedList<FlowGraphNode>(); if (direction == DF_Direction.FORWARD) { ListIterator<BasicBlock> it = scope.cfg().getReversePostOrderTraverser(); while (it.hasPrevious()) { wl.add(getFlowGraphNode(it.previous())); } } else { ListIterator<BasicBlock> it = scope.cfg().getPostOrderTraverser(); while (it.hasNext()) { wl.add(getFlowGraphNode(it.next())); } } return wl; }