diff graal/GraalCompiler/src/com/sun/c1x/gen/PhiSimplifier.java @ 2808:189ffb7d1d84

enable PhiSimplifier, schedule values used in a merge's stateBefore in the dominator
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 30 May 2011 13:42:23 +0200
parents 6d14aa4fbf90
children 015be60afcf3
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/gen/PhiSimplifier.java	Fri May 27 23:47:23 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/gen/PhiSimplifier.java	Mon May 30 13:42:23 2011 +0200
@@ -45,7 +45,7 @@
         }
         Phi phi = (Phi) x;
 
-        if (phi.valueCount() == 1) {
+        if (phi.valueCount() == 1 && !phi.checkFlag(Value.Flag.PhiCannotSimplify)) {
             return (Value) phi.replace(phi.valueAt(0));
         }
 
@@ -105,6 +105,10 @@
             // successfully simplified the phi
             assert phiSubst != null : "illegal phi function";
             phi.clearFlag(Value.Flag.PhiVisited);
+
+            phi.replace(phiSubst);
+//            System.out.printf("replaced phi with %d inputs\n", max);
+
             return phiSubst;
         }
     }