changeset 6665:6b71c116b370

PEA bugfix: look up scalar aliases when initializing virtual object entries
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 05 Nov 2012 12:58:32 +0100
parents 3e2a91093bdd
children 49cd16dfb10c e54aeb000ad7
files graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Mon Nov 05 12:57:17 2012 +0100
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java	Mon Nov 05 12:58:32 2012 +0100
@@ -93,7 +93,11 @@
                 } else {
                     effects.addFloatingNode(virtualObject);
                 }
-                state.addObject(virtualObject, new ObjectState(virtualObject, op.fieldState(), 0));
+                ValueNode[] fieldState = op.fieldState();
+                for (int i = 0; i < fieldState.length; i++) {
+                    fieldState[i] = state.getScalarAlias(fieldState[i]);
+                }
+                state.addObject(virtualObject, new ObjectState(virtualObject, fieldState, 0));
                 state.addAndMarkAlias(virtualObject, (ValueNode) node, usages);
                 effects.deleteFixedNode((FixedWithNextNode) node);
                 virtualIds++;