public final class PEReadEliminationClosure extends PartialEscapeClosure<PEReadEliminationBlockState>
PartialEscapeClosure.Final, PartialEscapeClosure.MergeProcessor
EffectsClosure.LoopKillCache
COUNTER_ALLOCATION_REMOVED, COUNTER_MATERIALIZATIONS, COUNTER_MATERIALIZATIONS_LOOP_END, COUNTER_MATERIALIZATIONS_LOOP_EXIT, COUNTER_MATERIALIZATIONS_LOOP_REITERATION, COUNTER_MATERIALIZATIONS_MERGE, COUNTER_MATERIALIZATIONS_PHI, COUNTER_MATERIALIZATIONS_UNHANDLED, COUNTER_MEMORYCHECKPOINT, tool, virtualObjects
aliases, blockEffects, cfg, changed, currentMode, debug, loopLocationKillCache, loopMergeEffects, schedule
Constructor and Description |
---|
PEReadEliminationClosure(StructuredGraph.ScheduleResult schedule,
CoreProviders providers) |
ensureMaterialized, getAlias, getAliasAndResolve, getObjectState, needsApplyEffects, processNodeInputs, processNodeWithState, processStateBeforeLoopOnOverflow, requiresProcessing, shouldMaterializeNonVirtualizable, updateStatesForMaterialized, virtualize
addScalarAlias, afterSplit, applyEffects, getScalarAlias, hasChanged, hasScalarReplacedInputs, merge, processBlock, processLoop
public PEReadEliminationClosure(StructuredGraph.ScheduleResult schedule, CoreProviders providers)
protected PEReadEliminationBlockState getInitialState()
ReentrantBlockIterator.BlockIteratorClosure
ControlFlowGraph
.getInitialState
in class ReentrantBlockIterator.BlockIteratorClosure<PEReadEliminationBlockState>
protected boolean processNode(Node node, PEReadEliminationBlockState state, GraphEffectList effects, FixedWithNextNode lastFixedNode)
EffectsClosure
processNode
in class PartialEscapeClosure<PEReadEliminationBlockState>
protected void processInitialLoopState(Loop<Block> loop, PEReadEliminationBlockState initialState)
processInitialLoopState
in class PartialEscapeClosure<PEReadEliminationBlockState>
protected void processLoopExit(LoopExitNode exitNode, PEReadEliminationBlockState initialState, PEReadEliminationBlockState exitState, GraphEffectList effects)
processLoopExit
in class PartialEscapeClosure<PEReadEliminationBlockState>
protected PEReadEliminationBlockState cloneState(PEReadEliminationBlockState other)
ReentrantBlockIterator.BlockIteratorClosure
ReentrantBlockIterator.BlockIteratorClosure.processBlock(Block, Object)
.cloneState
in class ReentrantBlockIterator.BlockIteratorClosure<PEReadEliminationBlockState>
protected PartialEscapeClosure.MergeProcessor createMergeProcessor(Block merge)
createMergeProcessor
in class PartialEscapeClosure<PEReadEliminationBlockState>
protected void processKilledLoopLocations(Loop<Block> loop, PEReadEliminationBlockState initialState, PEReadEliminationBlockState mergedStates)
processKilledLoopLocations
in class EffectsClosure<PEReadEliminationBlockState>
protected PEReadEliminationBlockState stripKilledLoopLocations(Loop<Block> loop, PEReadEliminationBlockState originalInitialState)
stripKilledLoopLocations
in class PartialEscapeClosure<PEReadEliminationBlockState>