changeset 7009:867a02e8c610

small fix to multi-allocation PEA
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 20 Nov 2012 15:57:48 +0100
parents 9f9068a65a83
children 1d5f1237902f
files graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Tue Nov 20 15:57:32 2012 +0100
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Tue Nov 20 15:57:48 2012 +0100
@@ -102,8 +102,8 @@
             }
 
             if (newAllocations != null) {
+                trace("{{%s}} ", node);
                 for (ObjectDesc desc : newAllocations) {
-                    trace("{{%s}} ", node);
                     VirtualObjectNode virtualObject = desc.virtualObject;
                     if (virtualObject.isAlive()) {
                         reusedVirtualObjects.add(virtualObject);
@@ -116,8 +116,8 @@
                         fieldState[i] = state.getScalarAlias(fieldState[i]);
                     }
                     state.addObject(virtualObject, new ObjectState(virtualObject, fieldState, desc.lockCount));
-                    state.addAndMarkAlias(virtualObject, (ValueNode) node, usages);
                 }
+                state.addAndMarkAlias(newAllocations[0].virtualObject, (ValueNode) node, usages);
                 effects.deleteFixedNode((FixedWithNextNode) node);
                 metricAllocationRemoved.add(newAllocations.length);
                 virtualIds += newAllocations.length;