Mercurial > hg > graal-compiler
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;