# HG changeset patch # User Doug Simon # Date 1427972198 -7200 # Node ID 749ec6114ea06304ebd4193217f1fafaa1e97b36 # Parent 393ccd88c317455295b183c16b5f96e6388bbec6 fix canonicalization of ObjectEqualsNode to TypeCheckNode diff -r 393ccd88c317 -r 749ec6114ea0 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java Thu Apr 02 12:22:57 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java Thu Apr 02 12:56:38 2015 +0200 @@ -62,7 +62,12 @@ protected ValueNode canonicalizeSymmetricConstant(CanonicalizerTool tool, Constant constant, ValueNode nonConstant, boolean mirrored) { ResolvedJavaType type = tool.getConstantReflection().asJavaType(constant); if (type != null && nonConstant instanceof GetClassNode) { - return new TypeCheckNode(type, ((GetClassNode) nonConstant).getObject()); + if (type.getKind() == Kind.Void) { + return LogicConstantNode.forBoolean(false); + } + if (type.isConcrete() || type.isArray()) { + return TypeCheckNode.create(type, ((GetClassNode) nonConstant).getObject()); + } } return super.canonicalizeSymmetricConstant(tool, constant, nonConstant, mirrored); }