Mercurial > hg > truffle
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()); }