Mercurial > hg > graal-compiler
changeset 19370:fc104173384d
Fixed regression in partial escape analysis.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 14 Feb 2015 01:39:48 +0100 |
parents | aac293bfdced |
children | 1e49642dd130 |
files | graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeBlockState.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java |
diffstat | 2 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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()));
--- 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()) {