changeset 9132:6b0a5e236eea

Allow CustomCanonicalizer in reentrant CanonicalizerPhase.
author Roland Schatz <roland.schatz@oracle.com>
date Tue, 16 Apr 2013 11:30:39 +0200
parents 221ef4b022c5
children e895d8f4a6aa
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Mon Apr 15 19:54:23 2013 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Tue Apr 16 11:30:39 2013 +0200
@@ -48,14 +48,24 @@
     private static final DebugMetric METRIC_SIMPLIFICATION_CONSIDERED_NODES = Debug.metric("SimplificationConsideredNodes");
     public static final DebugMetric METRIC_GLOBAL_VALUE_NUMBERING_HITS = Debug.metric("GlobalValueNumberingHits");
 
+    private final CustomCanonicalizer customCanonicalizer;
+
     public interface CustomCanonicalizer {
 
         ValueNode canonicalize(ValueNode node);
     }
 
+    public CanonicalizerPhase() {
+        this(null);
+    }
+
+    public CanonicalizerPhase(CustomCanonicalizer customCanonicalizer) {
+        this.customCanonicalizer = customCanonicalizer;
+    }
+
     @Override
     protected void run(StructuredGraph graph, PhaseContext context) {
-        new Instance(context.getRuntime(), context.getAssumptions()).run(graph);
+        new Instance(context.getRuntime(), context.getAssumptions(), null, customCanonicalizer).run(graph);
     }
 
     public static class Instance extends Phase {