diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java @ 18188:8652481a1110

Introduce new Constant interface for use in high-level graph.
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 30 Oct 2014 13:03:33 +0100
parents 9619ba4daf4c
children 6a5dc0bbebe7
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java	Thu Oct 30 12:21:07 2014 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java	Thu Oct 30 13:03:33 2014 +0100
@@ -62,7 +62,7 @@
      */
     public abstract boolean unorderedIsTrue();
 
-    private ValueNode optimizeConditional(JavaConstant constant, ConditionalNode conditionalNode, ConstantReflectionProvider constantReflection, Condition cond) {
+    private ValueNode optimizeConditional(Constant constant, ConditionalNode conditionalNode, ConstantReflectionProvider constantReflection, Condition cond) {
         JavaConstant trueConstant = conditionalNode.trueValue().asJavaConstant();
         JavaConstant falseConstant = conditionalNode.falseValue().asJavaConstant();
 
@@ -86,7 +86,7 @@
         return this;
     }
 
-    protected ValueNode optimizeNormalizeCmp(JavaConstant constant, NormalizeCompareNode normalizeNode, boolean mirrored) {
+    protected ValueNode optimizeNormalizeCmp(Constant constant, NormalizeCompareNode normalizeNode, boolean mirrored) {
         throw new GraalInternalError("NormalizeCompareNode connected to %s (%s %s %s)", this, constant, normalizeNode, mirrored);
     }
 
@@ -97,11 +97,11 @@
         }
         ValueNode result;
         if (forX.isConstant()) {
-            if ((result = canonicalizeSymmetricConstant(tool, forX.asJavaConstant(), forY, true)) != this) {
+            if ((result = canonicalizeSymmetricConstant(tool, forX.asConstant(), forY, true)) != this) {
                 return result;
             }
         } else if (forY.isConstant()) {
-            if ((result = canonicalizeSymmetricConstant(tool, forY.asJavaConstant(), forX, false)) != this) {
+            if ((result = canonicalizeSymmetricConstant(tool, forY.asConstant(), forX, false)) != this) {
                 return result;
             }
         } else if (forX instanceof ConvertNode && forY instanceof ConvertNode) {
@@ -116,7 +116,7 @@
 
     protected abstract CompareNode duplicateModified(ValueNode newX, ValueNode newY);
 
-    protected ValueNode canonicalizeSymmetricConstant(CanonicalizerTool tool, JavaConstant constant, ValueNode nonConstant, boolean mirrored) {
+    protected ValueNode canonicalizeSymmetricConstant(CanonicalizerTool tool, Constant constant, ValueNode nonConstant, boolean mirrored) {
         if (nonConstant instanceof ConditionalNode) {
             return optimizeConditional(constant, (ConditionalNode) nonConstant, tool.getConstantReflection(), mirrored ? condition().mirror() : condition());
         } else if (nonConstant instanceof NormalizeCompareNode) {
@@ -135,9 +135,9 @@
         return this;
     }
 
-    private ConstantNode canonicalConvertConstant(CanonicalizerTool tool, ConvertNode convert, JavaConstant constant) {
+    private ConstantNode canonicalConvertConstant(CanonicalizerTool tool, ConvertNode convert, Constant constant) {
         if (convert.preservesOrder(condition())) {
-            JavaConstant reverseConverted = convert.reverse(constant);
+            Constant reverseConverted = convert.reverse(constant);
             if (convert.convert(reverseConverted).equals(constant)) {
                 return ConstantNode.forConstant(convert.getValue().stamp(), reverseConverted, tool.getMetaAccess());
             }