--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState.java 2017-08-03 22:42:57.187717440 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState.java 2017-08-03 22:42:57.088713001 -0700 @@ -24,9 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; -import java.util.Map; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.graph.Node; @@ -54,6 +52,19 @@ */ private ObjectState[] objectStates; + public boolean contains(VirtualObjectNode value) { + for (ObjectState state : objectStates) { + if (state != null && state.isVirtual() && state.getEntries() != null) { + for (ValueNode entry : state.getEntries()) { + if (entry == value) { + return true; + } + } + } + } + return false; + } + private static class RefCount { private int refCount = 1; } @@ -310,41 +321,6 @@ return true; } - protected static boolean compareMaps(Map left, Map right) { - if (left.size() != right.size()) { - return false; - } - return compareMapsNoSize(left, right); - } - - protected static boolean compareMapsNoSize(Map left, Map right) { - if (left == right) { - return true; - } - for (Map.Entry entry : right.entrySet()) { - K key = entry.getKey(); - V value = entry.getValue(); - assert value != null; - V otherValue = left.get(key); - if (otherValue != value && !value.equals(otherValue)) { - return false; - } - } - return true; - } - - protected static void meetMaps(Map target, Map source) { - Iterator> iter = target.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - if (source.containsKey(entry.getKey())) { - assert source.get(entry.getKey()) == entry.getValue(); - } else { - iter.remove(); - } - } - } - public void resetObjectStates(int size) { objectStates = new ObjectState[size]; }