src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java Thu Oct 31 14:23:06 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java Thu Oct 31 16:54:16 2019 -0700
@@ -24,7 +24,7 @@
package org.graalvm.compiler.core.phases;
-import static org.graalvm.compiler.core.common.GraalOptions.ImmutableCode;
+import static org.graalvm.compiler.core.common.GraalOptions.LateMembars;
import static org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.Optionality.Required;
import org.graalvm.compiler.core.common.GraalOptions;
@@ -33,11 +33,11 @@
import org.graalvm.compiler.options.OptionKey;
import org.graalvm.compiler.options.OptionType;
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.DeadCodeEliminationPhase;
import org.graalvm.compiler.phases.common.ExpandLogicPhase;
import org.graalvm.compiler.phases.common.FixReadsPhase;
+import org.graalvm.compiler.phases.common.InsertMembarsPhase;
import org.graalvm.compiler.phases.common.LoweringPhase;
import org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase;
import org.graalvm.compiler.phases.common.PropagateDeoptimizeProbabilityPhase;
@@ -46,7 +46,7 @@
import org.graalvm.compiler.phases.schedule.SchedulePhase.SchedulingStrategy;
import org.graalvm.compiler.phases.tiers.LowTierContext;
-public class LowTier extends PhaseSuite<LowTierContext> {
+public class LowTier extends BaseTier<LowTierContext> {
static class Options {
@@ -58,13 +58,8 @@
}
public LowTier(OptionValues options) {
- CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
- CanonicalizerPhase canonicalizerWithoutGVN = new CanonicalizerPhase();
- canonicalizerWithoutGVN.disableGVN();
- if (ImmutableCode.getValue(options)) {
- canonicalizer.disableReadCanonicalization();
- canonicalizerWithoutGVN.disableReadCanonicalization();
- }
+ CanonicalizerPhase canonicalizer = createCanonicalizerPhase(options);
+ CanonicalizerPhase canonicalizerWithoutGVN = canonicalizer.copyWithoutGVN();
if (Options.ProfileCompiledMethods.getValue(options)) {
appendPhase(new ProfileCompiledMethodsPhase());
@@ -85,6 +80,9 @@
appendPhase(new PropagateDeoptimizeProbabilityPhase());
+ if (LateMembars.getValue(options)) {
+ appendPhase(new InsertMembarsPhase());
+ }
appendPhase(new SchedulePhase(SchedulePhase.SchedulingStrategy.LATEST_OUT_OF_LOOPS));
}
}