public abstract static class ReentrantBlockIterator.BlockIteratorClosure<StateT> extends Object
ControlFlowGraph.| Constructor and Description |
|---|
BlockIteratorClosure() |
| Modifier and Type | Method and Description |
|---|---|
protected StateT |
afterSplit(Block successor,
StateT oldState)
Hook for subclasses to apply additional operations after
ReentrantBlockIterator.BlockIteratorClosure.cloneState(Object) for successor blocks. |
protected abstract StateT |
cloneState(StateT oldState)
Clone a state for a successor invocation of
ReentrantBlockIterator.BlockIteratorClosure.processBlock(Block, Object). |
protected abstract StateT |
getInitialState()
Create the initial state for the reverse post order iteration over the
ControlFlowGraph. |
protected abstract StateT |
merge(Block merge,
List<StateT> states)
Merge multiple states when processing
Block starting with a
AbstractMergeNode. |
protected abstract StateT |
processBlock(Block block,
StateT currentState)
Process the current block with the current state during reverse post order iteration.
|
protected abstract List<StateT> |
processLoop(Loop<Block> loop,
StateT initialState) |
protected abstract StateT getInitialState()
ControlFlowGraph.protected abstract StateT processBlock(Block block, StateT currentState)
protected abstract StateT merge(Block merge, List<StateT> states)
Block starting with a
AbstractMergeNode.protected abstract StateT cloneState(StateT oldState)
ReentrantBlockIterator.BlockIteratorClosure.processBlock(Block, Object).protected StateT afterSplit(Block successor, StateT oldState)
ReentrantBlockIterator.BlockIteratorClosure.cloneState(Object) for successor blocks.