diff graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java @ 2764:99912abb3ff7

Phi clean up. Phis no longer save their local/stack index.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Mon, 23 May 2011 15:07:01 +0200
parents 5e8a69041cd7
children 43ffa0e47a46
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java	Mon May 23 14:51:18 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java	Mon May 23 15:07:01 2011 +0200
@@ -261,11 +261,11 @@
         if (p != null) {
             if (p instanceof Phi) {
                 Phi phi = (Phi) p;
-                if (phi.block() == block && phi.isOnStack() && phi.stackIndex() == i) {
+                if (phi.block() == block) {
                     return phi;
                 }
             }
-            Phi phi = new Phi(p.kind, block, -i - 1, graph());
+            Phi phi = new Phi(p.kind, block, graph());
             inputs().set(localsSize + i, phi);
             return phi;
         }
@@ -281,11 +281,11 @@
         Value p = localAt(i);
         if (p instanceof Phi) {
             Phi phi = (Phi) p;
-            if (phi.block() == block && phi.isLocal() && phi.localIndex() == i) {
+            if (phi.block() == block) {
                 return phi;
             }
         }
-        Phi phi = new Phi(p.kind, block, i, graph());
+        Phi phi = new Phi(p.kind, block, graph());
         storeLocal(i, phi);
         return phi;
     }
@@ -352,7 +352,7 @@
                     }
 
                     Phi originalPhi = phi;
-                    if (phi.phiInputCount() == 0) {
+                    if (phi.valueCount() == 0) {
                         int size = block.predecessors().size();
                         if (blockAppended) {
                             size--;