--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/constopt/ConstantLoadOptimization.java 2017-03-20 17:40:02.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/constopt/ConstantLoadOptimization.java 2017-03-20 17:40:02.000000000 -0700 @@ -53,7 +53,7 @@ import org.graalvm.compiler.lir.gen.LIRGenerationResult; import org.graalvm.compiler.lir.gen.LIRGeneratorTool; import org.graalvm.compiler.lir.phases.PreAllocationOptimizationPhase; -import org.graalvm.compiler.options.NestedBooleanOptionValue; +import org.graalvm.compiler.options.NestedBooleanOptionKey; import org.graalvm.compiler.options.Option; import org.graalvm.compiler.options.OptionType; @@ -72,7 +72,7 @@ public static class Options { // @formatter:off @Option(help = "Enable constant load optimization.", type = OptionType.Debug) - public static final NestedBooleanOptionValue LIROptConstantLoadOptimization = new NestedBooleanOptionValue(LIROptimization, true); + public static final NestedBooleanOptionKey LIROptConstantLoadOptimization = new NestedBooleanOptionKey(LIROptimization, true); // @formatter:on } @@ -304,10 +304,12 @@ // create and insert load insertLoad(tree.getConstant(), tree.getVariable().getValueKind(), block, constTree.getCost(block).getUsages()); } else { - for (AbstractBlockBase dominated : block.getDominated()) { + AbstractBlockBase dominated = block.getFirstDominated(); + while (dominated != null) { if (constTree.isMarked(dominated)) { worklist.addLast(dominated); } + dominated = dominated.getDominatedSibling(); } } } @@ -342,7 +344,7 @@ } // delete instructions - List instructions = lir.getLIRforBlock(block); + ArrayList instructions = lir.getLIRforBlock(block); boolean hasDead = false; for (LIRInstruction inst : instructions) { if (inst == null) { @@ -370,7 +372,7 @@ insertionBuffer = new LIRInsertionBuffer(); insertionBuffers.put(block, insertionBuffer); assert !insertionBuffer.initialized() : "already initialized?"; - List instructions = lir.getLIRforBlock(block); + ArrayList instructions = lir.getLIRforBlock(block); insertionBuffer.init(instructions); } return insertionBuffer;