changeset 9102:908cac5f443c

Change the parameter to the custom canonicalizer to always be of ValueNode type.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 13 Apr 2013 15:05:04 +0200
parents cfe822a31f67
children e7541d478e38
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java
diffstat 1 files changed, 4 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Fri Apr 12 17:40:53 2013 -0700
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Sat Apr 13 15:05:04 2013 +0200
@@ -50,7 +50,7 @@
 
     public interface CustomCanonicalizer {
 
-        ValueNode canonicalize(Node node);
+        ValueNode canonicalize(ValueNode node);
     }
 
     @Override
@@ -187,11 +187,9 @@
 
         public boolean tryCanonicalize(final Node node, final StructuredGraph graph) {
             boolean result = baseTryCanonicalize(node, graph);
-            if (!result && customCanonicalizer != null) {
-                ValueNode canonical = customCanonicalizer.canonicalize(node);
-                if (canonical == node && customCanonicalizer != null) {
-                    canonical = customCanonicalizer.canonicalize(node);
-                }
+            if (!result && customCanonicalizer != null && node instanceof ValueNode) {
+                ValueNode valueNode = (ValueNode) node;
+                ValueNode canonical = customCanonicalizer.canonicalize(valueNode);
                 result = performReplacement(node, graph, canonical);
             }
             return result;