Mercurial > hg > graal-compiler
changeset 11884:008500ebc6c6
modified CustomCanonicalizer to deal with Nodes (instead of ValueNodes) to avoid extra type testing during canonicalization (GRAAL-506)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 02 Oct 2013 21:43:19 +0200 |
parents | 673f93db4adc |
children | e602861c3f7d |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluatorCanonicalizer.java |
diffstat | 2 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Wed Oct 02 21:40:29 2013 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Wed Oct 02 21:43:19 2013 +0200 @@ -53,7 +53,7 @@ public interface CustomCanonicalizer { - ValueNode canonicalize(ValueNode node); + Node canonicalize(Node node); } public CanonicalizerPhase(boolean canonicalizeReads) { @@ -232,9 +232,8 @@ public boolean tryCanonicalize(final Node node, NodeClass nodeClass) { boolean result = baseTryCanonicalize(node, nodeClass); - if (!result && customCanonicalizer != null && node instanceof ValueNode) { - ValueNode valueNode = (ValueNode) node; - Node canonical = customCanonicalizer.canonicalize(valueNode); + if (!result && customCanonicalizer != null) { + Node canonical = customCanonicalizer.canonicalize(node); result = performReplacement(node, canonical); } return result;
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluatorCanonicalizer.java Wed Oct 02 21:40:29 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluatorCanonicalizer.java Wed Oct 02 21:43:19 2013 +0200 @@ -27,6 +27,7 @@ import sun.misc.*; import com.oracle.graal.api.meta.*; +import com.oracle.graal.graph.Node; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.phases.common.*; @@ -42,7 +43,7 @@ } @Override - public ValueNode canonicalize(ValueNode node) { + public Node canonicalize(Node node) { if (node instanceof LoadFieldNode) { LoadFieldNode loadFieldNode = (LoadFieldNode) node; if (!loadFieldNode.isStatic() && loadFieldNode.object().isConstant() && !loadFieldNode.object().isNullConstant()) {