public abstract class ScopedPostOrderNodeIterator extends Object
Modifier and Type | Field and Description |
---|---|
protected FixedNode |
currentScopeStart |
private Deque<FixedNode> |
nodeQueue |
private NodeBitMap |
queuedNodes |
private Deque<FixedNode> |
scopes |
Constructor and Description |
---|
ScopedPostOrderNodeIterator(StructuredGraph graph) |
Modifier and Type | Method and Description |
---|---|
void |
apply() |
protected Deque<FixedNode> |
getScopes(StructuredGraph graph) |
protected abstract void |
initializeScope() |
protected abstract void |
invoke(Invoke invoke) |
private FixedNode |
nextQueuedNode() |
void |
processScope() |
private void |
queue(Node node) |
private void |
queue(NodeIterable<? extends Node> iter) |
protected void |
queueLoopBeginSuccessors(LoopBeginNode node) |
protected void |
queueLoopExitSuccessors(LoopExitNode node) |
private void |
queueMerge(AbstractEndNode end) |
private void |
queueSuccessors(FixedNode x) |
private boolean |
visitedAllEnds(AbstractMergeNode merge) |
private final NodeBitMap queuedNodes
protected FixedNode currentScopeStart
public ScopedPostOrderNodeIterator(StructuredGraph graph)
public void apply()
public void processScope()
protected void queueLoopBeginSuccessors(LoopBeginNode node)
protected void queueLoopExitSuccessors(LoopExitNode node)
protected Deque<FixedNode> getScopes(StructuredGraph graph)
private void queueSuccessors(FixedNode x)
private void queue(NodeIterable<? extends Node> iter)
private FixedNode nextQueuedNode()
private void queueMerge(AbstractEndNode end)
private boolean visitedAllEnds(AbstractMergeNode merge)
protected abstract void initializeScope()