changeset 12730:0646713243fb

Canonicalize convert of convert.
author Roland Schatz <roland.schatz@oracle.com>
date Fri, 08 Nov 2013 17:07:50 +0100
parents 64d960e854e6
children 2caa21ef52bb
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java	Fri Nov 08 16:59:01 2013 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java	Fri Nov 08 17:07:50 2013 +0100
@@ -235,6 +235,11 @@
     public Node canonical(CanonicalizerTool tool) {
         if (value.isConstant()) {
             return ConstantNode.forPrimitive(evalConst(value.asConstant()), graph());
+        } else if (value instanceof ConvertNode) {
+            ConvertNode other = (ConvertNode) value;
+            if (other.isLossless() && other.to != Kind.Char) {
+                return graph().unique(new ConvertNode(other.from, this.to, other.value()));
+            }
         }
         return this;
     }