--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/EdgeMoveOptimizer.java 2017-03-20 17:39:42.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/EdgeMoveOptimizer.java 2017-03-20 17:39:41.000000000 -0700 @@ -134,7 +134,7 @@ for (AbstractBlockBase pred : block.getPredecessors()) { assert pred != null; assert ir.getLIRforBlock(pred) != null; - List predInstructions = ir.getLIRforBlock(pred); + ArrayList predInstructions = ir.getLIRforBlock(pred); if (pred.getSuccessorCount() != 1) { // this can happen with switch-statements where multiple edges are between @@ -191,7 +191,7 @@ edgeInstructionSeqences.clear(); int numSux = block.getSuccessorCount(); - List instructions = ir.getLIRforBlock(block); + ArrayList instructions = ir.getLIRforBlock(block); assert numSux == 2 : "method should not be called otherwise"; @@ -217,7 +217,7 @@ // setup a list with the lir-instructions of all successors for (AbstractBlockBase sux : block.getSuccessors()) { - List suxInstructions = ir.getLIRforBlock(sux); + ArrayList suxInstructions = ir.getLIRforBlock(sux); assert suxInstructions.get(0) instanceof StandardOp.LabelOp : "block must start with label";