public class ReadEliminationClosure extends EffectsClosure<ReadEliminationBlockState>
PEReadEliminationClosure, but over time both have evolved so that there's a significant
overlap.EffectsClosure.LoopKillCache, EffectsClosure.MergeProcessor| Modifier and Type | Field and Description |
|---|---|
protected boolean |
considerGuards |
aliases, blockEffects, cfg, changed, currentMode, debug, loopLocationKillCache, loopMergeEffects, schedule| Constructor and Description |
|---|
ReadEliminationClosure(ControlFlowGraph cfg,
boolean considerGuards) |
addScalarAlias, afterSplit, applyEffects, getScalarAlias, hasChanged, hasScalarReplacedInputs, merge, needsApplyEffects, processBlock, processInitialLoopState, processLoop, processStateBeforeLoopOnOverflowpublic ReadEliminationClosure(ControlFlowGraph cfg, boolean considerGuards)
protected ReadEliminationBlockState getInitialState()
ReentrantBlockIterator.BlockIteratorClosureControlFlowGraph.getInitialState in class ReentrantBlockIterator.BlockIteratorClosure<ReadEliminationBlockState>protected boolean processNode(Node node, ReadEliminationBlockState state, GraphEffectList effects, FixedWithNextNode lastFixedNode)
EffectsClosureprocessNode in class EffectsClosure<ReadEliminationBlockState>true if the effects include removing the node, false otherwise.protected static boolean areValuesReplaceable(ValueNode originalValue, ValueNode replacementValue, boolean considerGuards)
protected void processLoopExit(LoopExitNode exitNode, ReadEliminationBlockState initialState, ReadEliminationBlockState exitState, GraphEffectList effects)
processLoopExit in class EffectsClosure<ReadEliminationBlockState>protected ReadEliminationBlockState cloneState(ReadEliminationBlockState other)
ReentrantBlockIterator.BlockIteratorClosureReentrantBlockIterator.BlockIteratorClosure.processBlock(Block, Object).cloneState in class ReentrantBlockIterator.BlockIteratorClosure<ReadEliminationBlockState>protected EffectsClosure.MergeProcessor createMergeProcessor(Block merge)
createMergeProcessor in class EffectsClosure<ReadEliminationBlockState>protected void processKilledLoopLocations(Loop<Block> loop, ReadEliminationBlockState initialState, ReadEliminationBlockState mergedStates)
processKilledLoopLocations in class EffectsClosure<ReadEliminationBlockState>protected ReadEliminationBlockState stripKilledLoopLocations(Loop<Block> loop, ReadEliminationBlockState originalInitialState)
stripKilledLoopLocations in class EffectsClosure<ReadEliminationBlockState>