# HG changeset patch # User Thomas Wuerthinger # Date 1423874388 -3600 # Node ID fc104173384d8829d4760d23c40280289dde573b # Parent aac293bfdced48f4d4bb0cd059801833a57018e5 Fixed regression in partial escape analysis. diff -r aac293bfdced -r fc104173384d graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java Sat Feb 14 00:56:18 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java Sat Feb 14 01:39:48 2015 +0100 @@ -120,6 +120,7 @@ ValueNode[] entries = obj.getEntries(); ValueNode representation = virtual.getMaterializedRepresentation(fixed, entries, obj.getLocks()); obj.escape(representation, state); + PartialEscapeClosure.updateStatesForMaterialized(this, obj); if (representation instanceof AllocatedObjectNode) { objects.add((AllocatedObjectNode) representation); locks.add(LockState.asList(obj.getLocks())); diff -r aac293bfdced -r fc104173384d graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Sat Feb 14 00:56:18 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Sat Feb 14 01:39:48 2015 +0100 @@ -224,7 +224,7 @@ } } - private static void updateStatesForMaterialized(PartialEscapeBlockState state, ObjectState obj) { + public static void updateStatesForMaterialized(PartialEscapeBlockState state, ObjectState obj) { // update all existing states with the newly materialized object for (ObjectState objState : state.objectStates.values()) { if (objState.isVirtual()) {