changeset 5353:85103daaf504

Fix : There can be proxies in the virtual chain
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 03 May 2012 15:43:03 +0200
parents 4471a30a9728
children a704936a25b7
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java	Thu May 03 15:19:16 2012 +0200
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java	Thu May 03 15:43:03 2012 +0200
@@ -316,6 +316,8 @@
                     }
                 }
                 currentField = ((VirtualObjectFieldNode) currentField).lastState();
+            } else if (currentField instanceof ValueProxyNode) {
+                currentField = ((ValueProxyNode) currentField).value();
             } else {
                 assert currentField instanceof PhiNode && ((PhiNode) currentField).type() == PhiType.Virtual : currentField;
                 currentField = ((PhiNode) currentField).valueAt(0);