src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/MethodCallTargetNode.java
changeset 48190 25cfedf27edc
parent 47216 71c04702a3d5
child 50858 2d3e99a72541
equal deleted inserted replaced
48189:acffbbe79871 48190:25cfedf27edc
    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) {