diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java @ 5443:141817e206d4

changes to the dependencies and stamp system: * dependencies can only be of type ValueNode * exactType is a boolean flag, not a separate RiResolvedType * use different Stamp subclasses for IntegerStamp, FloatStamp, ObjectStamp and GenericStamp * use different stamp for nodes that can be a target for dependencies * use different PhiNode constructors for value- and non-value-Phis * use correct stamps for ExceptionObjectNode and CurrentThread
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 25 May 2012 11:35:18 +0200
parents 0ebd9cfdc11f
children 438ab53efdd0
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java	Fri May 25 10:36:23 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java	Fri May 25 11:35:18 2012 +0200
@@ -125,9 +125,9 @@
     public ValueNode canonical(CanonicalizerTool tool) {
         if (!isStatic()) {
             ValueNode receiver = receiver();
-            if (receiver != null && receiver.exactType() != null) {
+            if (receiver != null && receiver.objectStamp().isExactType()) {
                 if (invokeKind == InvokeKind.Interface || invokeKind == InvokeKind.Virtual) {
-                    RiResolvedMethod method = receiver.exactType().resolveMethodImpl(targetMethod);
+                    RiResolvedMethod method = receiver.objectStamp().type().resolveMethodImpl(targetMethod);
                     if (method != null) {
                         invokeKind = InvokeKind.Special;
                         targetMethod = method;