--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/optimize/ConditionalElimination02.java 2017-11-03 23:56:51.894690909 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/optimize/ConditionalElimination02.java 2017-11-03 23:56:51.566676231 -0700 @@ -29,6 +29,9 @@ import org.junit.Test; import org.graalvm.compiler.jtt.JTTTest; +import org.graalvm.compiler.phases.OptimisticOptimizations; +import org.graalvm.compiler.phases.OptimisticOptimizations.Optimization; +import org.graalvm.compiler.phases.tiers.HighTierContext; public class ConditionalElimination02 extends JTTTest { @@ -59,6 +62,14 @@ return -1; } + /** + * These tests assume all code paths are reachable so disable profile based dead code removal. + */ + @Override + protected HighTierContext getDefaultHighTierContext() { + return new HighTierContext(getProviders(), getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL.remove(Optimization.RemoveNeverExecutedCode)); + } + @Test public void run0() throws Throwable { runTest(EnumSet.of(DeoptimizationReason.NullCheckException), "test", new A(5), false, false);