public abstract class PartialEscapeClosure<BlockT extends PartialEscapeBlockState<BlockT>> extends EffectsClosure<BlockT>
| Modifier and Type | Class and Description |
|---|---|
static class |
PartialEscapeClosure.Final
Final subclass of PartialEscapeClosure, for performance and to make everything behave nicely
with generics.
|
protected class |
PartialEscapeClosure.MergeProcessor |
EffectsClosure.LoopKillCache| Modifier and Type | Field and Description |
|---|---|
static CounterKey |
COUNTER_ALLOCATION_REMOVED |
static CounterKey |
COUNTER_MATERIALIZATIONS |
static CounterKey |
COUNTER_MATERIALIZATIONS_LOOP_END |
static CounterKey |
COUNTER_MATERIALIZATIONS_LOOP_EXIT |
static CounterKey |
COUNTER_MATERIALIZATIONS_LOOP_REITERATION |
static CounterKey |
COUNTER_MATERIALIZATIONS_MERGE |
static CounterKey |
COUNTER_MATERIALIZATIONS_PHI |
static CounterKey |
COUNTER_MATERIALIZATIONS_UNHANDLED |
static CounterKey |
COUNTER_MEMORYCHECKPOINT |
protected org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl |
tool
This is handed out to implementers of
Virtualizable. |
ArrayList<VirtualObjectNode> |
virtualObjects
The indexes into this array correspond to
VirtualObjectNode.getObjectId(). |
aliases, blockEffects, cfg, changed, currentMode, debug, loopLocationKillCache, loopMergeEffects, schedule| Constructor and Description |
|---|
PartialEscapeClosure(StructuredGraph.ScheduleResult schedule,
CoreProviders providers) |
addScalarAlias, afterSplit, applyEffects, getScalarAlias, hasChanged, hasScalarReplacedInputs, merge, processBlock, processKilledLoopLocations, processLoopcloneState, getInitialStatepublic static final CounterKey COUNTER_MATERIALIZATIONS
public static final CounterKey COUNTER_MATERIALIZATIONS_PHI
public static final CounterKey COUNTER_MATERIALIZATIONS_MERGE
public static final CounterKey COUNTER_MATERIALIZATIONS_UNHANDLED
public static final CounterKey COUNTER_MATERIALIZATIONS_LOOP_REITERATION
public static final CounterKey COUNTER_MATERIALIZATIONS_LOOP_END
public static final CounterKey COUNTER_MATERIALIZATIONS_LOOP_EXIT
public static final CounterKey COUNTER_ALLOCATION_REMOVED
public static final CounterKey COUNTER_MEMORYCHECKPOINT
protected final org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl tool
Virtualizable.public final ArrayList<VirtualObjectNode> virtualObjects
VirtualObjectNode.getObjectId().public PartialEscapeClosure(StructuredGraph.ScheduleResult schedule, CoreProviders providers)
public boolean needsApplyEffects()
needsApplyEffects in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected boolean processNode(Node node, BlockT state, GraphEffectList effects, FixedWithNextNode lastFixedNode)
EffectsClosureprocessNode in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected void processStateBeforeLoopOnOverflow(BlockT initialState, FixedNode materializeBefore, GraphEffectList effects)
processStateBeforeLoopOnOverflow in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected boolean requiresProcessing(Node node)
protected boolean virtualize(ValueNode node, VirtualizerTool vt)
protected boolean ensureMaterialized(PartialEscapeBlockState<?> state, int object, FixedNode materializeBefore, GraphEffectList effects, CounterKey counter)
public static boolean updateStatesForMaterialized(PartialEscapeBlockState<?> state, VirtualObjectNode virtual, ValueNode materializedValue)
protected BlockT stripKilledLoopLocations(Loop<Block> loop, BlockT originalInitialState)
stripKilledLoopLocations in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected void processInitialLoopState(Loop<Block> loop, BlockT initialState)
processInitialLoopState in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected void processLoopExit(LoopExitNode exitNode, BlockT initialState, BlockT exitState, GraphEffectList effects)
processLoopExit in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>protected PartialEscapeClosure.MergeProcessor createMergeProcessor(Block merge)
createMergeProcessor in class EffectsClosure<BlockT extends PartialEscapeBlockState<BlockT>>public ObjectState getObjectState(PartialEscapeBlockState<?> state, ValueNode value)
public ValueNode getAliasAndResolve(PartialEscapeBlockState<?> state, ValueNode value)