public abstract class EffectsPhase<CoreProvidersT extends CoreProviders> extends BasePhase<CoreProvidersT>
Modifier and Type | Class and Description |
---|---|
static class |
EffectsPhase.Closure<T> |
BasePhase.ApplyScope, BasePhase.BasePhaseStatistics, BasePhase.NotApplicable, BasePhase.PhaseOptions, BasePhase.SharedGlobalPhaseState
Modifier and Type | Field and Description |
---|---|
protected CanonicalizerPhase |
canonicalizer |
ALWAYS_APPLICABLE
Modifier | Constructor and Description |
---|---|
protected |
EffectsPhase(int maxIterations,
CanonicalizerPhase canonicalizer) |
protected |
EffectsPhase(int maxIterations,
CanonicalizerPhase canonicalizer,
boolean unscheduled) |
protected |
EffectsPhase(int maxIterations,
CanonicalizerPhase canonicalizer,
boolean unscheduled,
SchedulePhase.SchedulingStrategy strategy) |
Modifier and Type | Method and Description |
---|---|
Optional<BasePhase.NotApplicable> |
canApply(GraphState graphState)
Checks if all the preconditions to
BasePhase.apply(StructuredGraph, Object, boolean) the phase
are met. |
protected abstract EffectsPhase.Closure<?> |
createEffectsClosure(CoreProvidersT context,
StructuredGraph.ScheduleResult schedule,
ControlFlowGraph cfg) |
protected void |
postIteration(StructuredGraph graph,
CoreProvidersT context,
org.graalvm.collections.EconomicSet<Node> changedNodes) |
protected void |
run(StructuredGraph graph,
CoreProvidersT context) |
boolean |
runAnalysis(StructuredGraph graph,
CoreProvidersT context) |
apply, apply, applyScope, codeSizeIncrease, contractorName, equals, getName, hashCode, mustApply, shouldDumpAfterAtBasicLevel, shouldDumpBeforeAtBasicLevel, updateGraphState
clone, getClass, notify, notifyAll, toString, wait, wait, wait
checkContract
protected final CanonicalizerPhase canonicalizer
protected EffectsPhase(int maxIterations, CanonicalizerPhase canonicalizer)
protected EffectsPhase(int maxIterations, CanonicalizerPhase canonicalizer, boolean unscheduled, SchedulePhase.SchedulingStrategy strategy)
protected EffectsPhase(int maxIterations, CanonicalizerPhase canonicalizer, boolean unscheduled)
public Optional<BasePhase.NotApplicable> canApply(GraphState graphState)
BasePhase
BasePhase.apply(StructuredGraph, Object, boolean)
the phase
are met.canApply
in class BasePhase<CoreProvidersT extends CoreProviders>
graphState
- represents the state of the StructuredGraph
used for compilation
and contains the required information to determine if a phase can be applied.Optional.empty()
if all the checks pass, Optional#of(NotApplicable)
containing why this phase is not applicable on this graphState
otherwise.protected void run(StructuredGraph graph, CoreProvidersT context)
run
in class BasePhase<CoreProvidersT extends CoreProviders>
public boolean runAnalysis(StructuredGraph graph, CoreProvidersT context)
protected void postIteration(StructuredGraph graph, CoreProvidersT context, org.graalvm.collections.EconomicSet<Node> changedNodes)
protected abstract EffectsPhase.Closure<?> createEffectsClosure(CoreProvidersT context, StructuredGraph.ScheduleResult schedule, ControlFlowGraph cfg)