diff graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java @ 5859:16c3284c94cd

Try an iterative version of CheckCastElimination + Canonicalization
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 19 Jul 2012 00:27:17 +0200
parents 421e767d8038
children 59f209dd356b
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java	Wed Jul 18 13:49:51 2012 -0700
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java	Thu Jul 19 00:27:17 2012 +0200
@@ -140,12 +140,8 @@
                 new PropagateTypeCachePhase(target, runtime, assumptions).apply(graph);
             }
 
-            if (GraalOptions.CheckCastElimination) {
-                new CheckCastEliminationPhase().apply(graph);
-            }
-
-            if (GraalOptions.OptCanonicalizer) {
-                new CanonicalizerPhase(target, runtime, assumptions).apply(graph);
+            if (GraalOptions.CheckCastElimination && GraalOptions.OptCanonicalizer) {
+                new IterativeCheckCastEliminationPhase(target, runtime, assumptions).apply(graph);
             }
         }
 
@@ -199,11 +195,8 @@
         }
         new RemoveValueProxyPhase().apply(graph);
 
-        if (GraalOptions.CheckCastElimination) {
-            new CheckCastEliminationPhase().apply(graph);
-        }
-        if (GraalOptions.OptCanonicalizer) {
-            new CanonicalizerPhase(target, runtime, assumptions).apply(graph);
+        if (GraalOptions.CheckCastElimination && GraalOptions.OptCanonicalizer) {
+            new IterativeCheckCastEliminationPhase(target, runtime, assumptions).apply(graph);
         }
 
         plan.runPhases(PhasePosition.MID_LEVEL, graph);