src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/MethodCallTargetNode.java
equal
deleted
inserted
replaced
35 import org.graalvm.compiler.nodeinfo.Verbosity; |
35 import org.graalvm.compiler.nodeinfo.Verbosity; |
36 import org.graalvm.compiler.nodes.CallTargetNode; |
36 import org.graalvm.compiler.nodes.CallTargetNode; |
37 import org.graalvm.compiler.nodes.FixedGuardNode; |
37 import org.graalvm.compiler.nodes.FixedGuardNode; |
38 import org.graalvm.compiler.nodes.Invoke; |
38 import org.graalvm.compiler.nodes.Invoke; |
39 import org.graalvm.compiler.nodes.LogicNode; |
39 import org.graalvm.compiler.nodes.LogicNode; |
|
40 import org.graalvm.compiler.nodes.NodeView; |
40 import org.graalvm.compiler.nodes.PiNode; |
41 import org.graalvm.compiler.nodes.PiNode; |
41 import org.graalvm.compiler.nodes.StructuredGraph; |
42 import org.graalvm.compiler.nodes.StructuredGraph; |
42 import org.graalvm.compiler.nodes.ValueNode; |
43 import org.graalvm.compiler.nodes.ValueNode; |
43 import org.graalvm.compiler.nodes.extended.ValueAnchorNode; |
44 import org.graalvm.compiler.nodes.extended.ValueAnchorNode; |
44 import org.graalvm.compiler.nodes.spi.UncheckedInterfaceProvider; |
45 import org.graalvm.compiler.nodes.spi.UncheckedInterfaceProvider; |
130 // check for trivial cases (e.g. final methods, nonvirtual methods) |
131 // check for trivial cases (e.g. final methods, nonvirtual methods) |
131 if (targetMethod.canBeStaticallyBound()) { |
132 if (targetMethod.canBeStaticallyBound()) { |
132 return targetMethod; |
133 return targetMethod; |
133 } |
134 } |
134 |
135 |
135 return devirtualizeCall(invokeKind, targetMethod, contextType, receiver.graph().getAssumptions(), receiver.stamp()); |
136 return devirtualizeCall(invokeKind, targetMethod, contextType, receiver.graph().getAssumptions(), receiver.stamp(NodeView.DEFAULT)); |
136 } |
137 } |
137 |
138 |
138 public static ResolvedJavaMethod devirtualizeCall(InvokeKind invokeKind, ResolvedJavaMethod targetMethod, ResolvedJavaType contextType, Assumptions assumptions, Stamp receiverStamp) { |
139 public static ResolvedJavaMethod devirtualizeCall(InvokeKind invokeKind, ResolvedJavaMethod targetMethod, ResolvedJavaType contextType, Assumptions assumptions, Stamp receiverStamp) { |
139 TypeReference type = StampTool.typeReferenceOrNull(receiverStamp); |
140 TypeReference type = StampTool.typeReferenceOrNull(receiverStamp); |
140 if (type == null && invokeKind == InvokeKind.Virtual) { |
141 if (type == null && invokeKind == InvokeKind.Virtual) { |