# HG changeset patch # User Andreas Woess # Date 1329247169 -3600 # Node ID 1827e00c87b9a55a2c62c735056ae8bb6ba63066 # Parent f62db40b3b2ef153816895b97fbd2d409343a78f Canonicalize invoke kind to static when the exact receiver type is known, regardless of whether it is constant. diff -r f62db40b3b2e -r 1827e00c87b9 graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 10:21:38 2012 -0800 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 20:19:29 2012 +0100 @@ -133,11 +133,7 @@ if (!isStatic()) { ValueNode receiver = receiver(); if (receiver != null && receiver.exactType() != null) { - if (invokeKind == InvokeKind.Interface) { - invokeKind = InvokeKind.Virtual; - targetMethod = receiver.exactType().resolveMethodImpl(targetMethod); - } - if (receiver.isConstant() && invokeKind == InvokeKind.Virtual) { + if (invokeKind == InvokeKind.Interface || invokeKind == InvokeKind.Virtual) { invokeKind = InvokeKind.Special; targetMethod = receiver.exactType().resolveMethodImpl(targetMethod); }