src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/MidTier.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/MidTier.java Mon Mar 20 17:37:49 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/MidTier.java Mon Mar 20 17:37:49 2017
*** 23,43 ****
--- 23,40 ----
package org.graalvm.compiler.core.phases;
import static org.graalvm.compiler.core.common.GraalOptions.ConditionalElimination;
import static org.graalvm.compiler.core.common.GraalOptions.ImmutableCode;
import static org.graalvm.compiler.core.common.GraalOptions.OptDeoptimizationGrouping;
import static org.graalvm.compiler.core.common.GraalOptions.OptEliminatePartiallyRedundantGuards;
import static org.graalvm.compiler.core.common.GraalOptions.OptFloatingReads;
import static org.graalvm.compiler.core.common.GraalOptions.OptPushThroughPi;
import static org.graalvm.compiler.core.common.GraalOptions.OptReadElimination;
import static org.graalvm.compiler.core.common.GraalOptions.ReassociateInvariants;
import static org.graalvm.compiler.core.common.GraalOptions.UseGraalInstrumentation;
import static org.graalvm.compiler.core.common.GraalOptions.VerifyHeapAtReturn;
import org.graalvm.compiler.loop.phases.LoopSafepointEliminationPhase;
import org.graalvm.compiler.loop.phases.ReassociateInvariantPhase;
import org.graalvm.compiler.nodes.spi.LoweringTool;
+ import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.phases.PhaseSuite;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase;
import org.graalvm.compiler.phases.common.FloatingReadPhase;
import org.graalvm.compiler.phases.common.FrameStateAssignmentPhase;
*** 45,127 ****
--- 42,91 ----
import org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase;
import org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase;
import org.graalvm.compiler.phases.common.LockEliminationPhase;
import org.graalvm.compiler.phases.common.LoopSafepointInsertionPhase;
import org.graalvm.compiler.phases.common.LoweringPhase;
import org.graalvm.compiler.phases.common.OptimizeGuardAnchorsPhase;
import org.graalvm.compiler.phases.common.PushThroughPiPhase;
import org.graalvm.compiler.phases.common.RemoveValueProxyPhase;
import org.graalvm.compiler.phases.common.ValueAnchorCleanupPhase;
import org.graalvm.compiler.phases.common.VerifyHeapAtReturnPhase;
import org.graalvm.compiler.phases.common.instrumentation.MidTierReconcileInstrumentationPhase;
import org.graalvm.compiler.phases.tiers.MidTierContext;
import org.graalvm.compiler.virtual.phases.ea.EarlyReadEliminationPhase;
public class MidTier extends PhaseSuite<MidTierContext> {
! public MidTier(OptionValues options) {
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
! if (ImmutableCode.getValue(options)) {
canonicalizer.disableReadCanonicalization();
}
if (OptPushThroughPi.getValue()) {
appendPhase(new PushThroughPiPhase());
}
appendPhase(canonicalizer);
appendPhase(new ValueAnchorCleanupPhase());
appendPhase(new LockEliminationPhase());
! if (OptReadElimination.getValue()) {
appendPhase(new EarlyReadEliminationPhase(canonicalizer));
}
if (OptFloatingReads.getValue()) {
! if (OptFloatingReads.getValue(options)) {
appendPhase(new IncrementalCanonicalizerPhase<>(canonicalizer, new FloatingReadPhase()));
}
appendPhase(new RemoveValueProxyPhase());
appendPhase(canonicalizer);
! if (OptEliminatePartiallyRedundantGuards.getValue()) {
appendPhase(new OptimizeGuardAnchorsPhase());
}
if (ConditionalElimination.getValue()) {
! if (ConditionalElimination.getValue(options)) {
appendPhase(new IterativeConditionalEliminationPhase(canonicalizer, true));
}
if (OptEliminatePartiallyRedundantGuards.getValue()) {
appendPhase(new OptimizeGuardAnchorsPhase());
}
appendPhase(canonicalizer);
appendPhase(new IncrementalCanonicalizerPhase<>(canonicalizer, new LoopSafepointEliminationPhase()));
+ appendPhase(new LoopSafepointEliminationPhase());
appendPhase(new LoopSafepointInsertionPhase());
! appendPhase(new IncrementalCanonicalizerPhase<>(canonicalizer, new GuardLoweringPhase()));
! if (VerifyHeapAtReturn.getValue(options)) {
appendPhase(new VerifyHeapAtReturnPhase());
}
appendPhase(new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.MID_TIER));
if (UseGraalInstrumentation.getValue()) {
appendPhase(new MidTierReconcileInstrumentationPhase());
}
appendPhase(new FrameStateAssignmentPhase());
! if (ReassociateInvariants.getValue(options)) {
appendPhase(new ReassociateInvariantPhase());
}
! if (OptDeoptimizationGrouping.getValue(options)) {
appendPhase(new DeoptimizationGroupingPhase());
}
appendPhase(canonicalizer);
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/MidTier.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File