--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/MoveResolver.java 2017-03-20 17:39:51.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/MoveResolver.java 2017-03-20 17:39:50.000000000 -0700 @@ -27,8 +27,6 @@ import static jdk.vm.ci.code.ValueUtil.isRegister; import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; import org.graalvm.compiler.core.common.LIRKind; import org.graalvm.compiler.debug.Debug; @@ -38,6 +36,8 @@ import org.graalvm.compiler.lir.LIRInsertionBuffer; import org.graalvm.compiler.lir.LIRInstruction; import org.graalvm.compiler.lir.LIRValueUtil; +import org.graalvm.util.Equivalence; +import org.graalvm.util.EconomicSet; import jdk.vm.ci.meta.AllocatableValue; import jdk.vm.ci.meta.Constant; @@ -54,9 +54,9 @@ private int insertIdx; private LIRInsertionBuffer insertionBuffer; // buffer where moves are inserted - private final List mappingFrom; - private final List mappingFromOpr; - private final List mappingTo; + private final ArrayList mappingFrom; + private final ArrayList mappingFromOpr; + private final ArrayList mappingTo; private boolean multipleReadsAllowed; private final int[] registerBlocked; @@ -146,7 +146,7 @@ } } - HashSet usedRegs = new HashSet<>(); + EconomicSet usedRegs = EconomicSet.create(Equivalence.DEFAULT); if (!areMultipleReadsAllowed()) { for (i = 0; i < mappingFrom.size(); i++) { Interval interval = mappingFrom.get(i); @@ -175,7 +175,7 @@ } protected void verifyStackSlotMapping() { - HashSet usedRegs = new HashSet<>(); + EconomicSet usedRegs = EconomicSet.create(Equivalence.DEFAULT); for (int i = 0; i < mappingFrom.size(); i++) { Interval interval = mappingFrom.get(i); if (interval != null && !isRegister(interval.location())) { @@ -251,7 +251,7 @@ return isRegister(location); } - private void createInsertionBuffer(List list) { + private void createInsertionBuffer(ArrayList list) { assert !insertionBuffer.initialized() : "overwriting existing buffer"; insertionBuffer.init(list); } @@ -427,14 +427,14 @@ } } - void setInsertPosition(List insertList, int insertIdx) { + void setInsertPosition(ArrayList insertList, int insertIdx) { assert this.insertIdx == -1 : "use moveInsertPosition instead of setInsertPosition when data already set"; createInsertionBuffer(insertList); this.insertIdx = insertIdx; } - void moveInsertPosition(List newInsertList, int newInsertIdx) { + void moveInsertPosition(ArrayList newInsertList, int newInsertIdx) { if (insertionBuffer.lirList() != null && (insertionBuffer.lirList() != newInsertList || this.insertIdx != newInsertIdx)) { // insert position changed . resolve current mappings resolveMappings();