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.