changeset 19421:df00d80dbe59

fixed CheckGraalInvariants issue
author Doug Simon <doug.simon@oracle.com>
date Mon, 16 Feb 2015 22:08:25 +0100
parents 87a2901b1f42
children 0725ec2b1f3f
files graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java	Mon Feb 16 21:45:12 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java	Mon Feb 16 22:08:25 2015 +0100
@@ -95,7 +95,7 @@
         } else if (isFoldable(target)) {
             ResolvedJavaType[] parameterTypes = resolveJavaTypes(target.toParameterTypes(), declaringClass);
             JavaConstant constant = tryFold(methodCallTargetNode.arguments(), parameterTypes, target);
-            if (constant == COULD_NOT_FOLD) {
+            if (constant != null && constant.equals(COULD_NOT_FOLD)) {
                 return false;
             }
 
@@ -115,6 +115,10 @@
     }
 
     @SuppressWarnings("serial") private static final JavaConstant COULD_NOT_FOLD = new PrimitiveConstant(Kind.Illegal, 100) {
+        @Override
+        public boolean equals(Object o) {
+            return this == o;
+        }
     };
 
     public JavaConstant tryFold(List<ValueNode> args, ResolvedJavaType[] parameterTypes, ResolvedJavaMethod target) {
@@ -160,7 +164,7 @@
 
         if (intrinsic.foldable() && areAllConstant(arguments)) {
             JavaConstant res = tryFold(arguments, parameterTypes, method);
-            if (res != COULD_NOT_FOLD) {
+            if (!res.equals(COULD_NOT_FOLD)) {
                 assert res != null;
                 return ConstantNode.forConstant(res, providers.getMetaAccess());
             }