changeset 7010:1d5f1237902f

more small fixes to PEA
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 20 Nov 2012 16:38:09 +0100
parents 867a02e8c610
children 09df32b1dff9
files graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java	Tue Nov 20 15:57:48 2012 +0100
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java	Tue Nov 20 16:38:09 2012 +0100
@@ -158,8 +158,10 @@
 
     void addAndMarkAlias(VirtualObjectNode virtual, ValueNode node, NodeBitMap usages) {
         objectAliases.put(node, virtual);
-        for (Node usage : node.usages()) {
-            markVirtualUsages(usage, usages);
+        if (node.isAlive()) {
+            for (Node usage : node.usages()) {
+                markVirtualUsages(usage, usages);
+            }
         }
     }
 
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Tue Nov 20 15:57:48 2012 +0100
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Tue Nov 20 16:38:09 2012 +0100
@@ -116,6 +116,7 @@
                         fieldState[i] = state.getScalarAlias(fieldState[i]);
                     }
                     state.addObject(virtualObject, new ObjectState(virtualObject, fieldState, desc.lockCount));
+                    state.addAndMarkAlias(virtualObject, virtualObject, usages);
                 }
                 state.addAndMarkAlias(newAllocations[0].virtualObject, (ValueNode) node, usages);
                 effects.deleteFixedNode((FixedWithNextNode) node);