hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EarlyReadEliminationPhase.java
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EarlyReadEliminationPhase.java Mon Jun 19 11:23:16 2017 +0000
+++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EarlyReadEliminationPhase.java Mon Jun 19 16:31:43 2017 -0700
@@ -32,8 +32,16 @@
public class EarlyReadEliminationPhase extends EffectsPhase<PhaseContext> {
+ private final boolean considerGuards;
+
public EarlyReadEliminationPhase(CanonicalizerPhase canonicalizer) {
super(1, canonicalizer, true);
+ this.considerGuards = true;
+ }
+
+ public EarlyReadEliminationPhase(CanonicalizerPhase canonicalizer, boolean considerGuards) {
+ super(1, canonicalizer, true);
+ this.considerGuards = considerGuards;
}
@Override
@@ -46,7 +54,7 @@
@Override
protected Closure<?> createEffectsClosure(PhaseContext context, ScheduleResult schedule, ControlFlowGraph cfg) {
assert schedule == null;
- return new ReadEliminationClosure(cfg);
+ return new ReadEliminationClosure(cfg, considerGuards);
}
@Override