public class org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage extends org.graalvm.compiler.phases.VerifyPhase<org.graalvm.compiler.phases.tiers.PhaseContext>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage
super_class: org.graalvm.compiler.phases.VerifyPhase
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.phases.VerifyPhase.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/verify/VerifyVirtualizableUsage;
public boolean checkContract();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/verify/VerifyVirtualizableUsage;
protected boolean verify(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lorg/graalvm/compiler/graph/Graph;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 1: aload 2
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lorg/graalvm/compiler/nodes/spi/Virtualizable;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
start local 4 2: aload 2
invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lorg/graalvm/compiler/nodes/ConstantNode;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 5
start local 5 3: aload 4
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 14
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
ldc "virtualize"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
4: aload 1
getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
astore 6
start local 6 6: aload 6
invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
invokeinterface org.graalvm.compiler.nodes.Invoke.bci:()I
istore 8
start local 8 7: aload 6
invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 9
start local 9 8: aload 9
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
astore 10
start local 10 9: aload 9
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 13
10: aload 10
ldc "add"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
aload 10
ldc "addWithoutUnique"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
aload 10
ldc "addOrUnique"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
aload 10
ldc "addWithoutUniqueWithInputs"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
11: aload 10
ldc "addOrUniqueWithInputs"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: StackMap locals: org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator int jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String
StackMap stack:
aload 5
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 9
iload 8
aload 6
invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_1
invokestatic org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage.verifyVirtualizableEffectArguments:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/graph/NodeInputList;I)V
end local 10 end local 9 end local 8 end local 6 13: StackMap locals: org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
14: StackMap locals: org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/phases/verify/VerifyVirtualizableUsage;
0 15 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 15 2 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
1 15 3 graphType Ljdk/vm/ci/meta/ResolvedJavaType;
2 15 4 virtualizableType Ljdk/vm/ci/meta/ResolvedJavaType;
3 15 5 constantNodeType Ljdk/vm/ci/meta/ResolvedJavaType;
6 13 6 t Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
7 13 8 bci I
8 13 9 callee Ljdk/vm/ci/meta/ResolvedJavaMethod;
9 13 10 calleeName Ljava/lang/String;
MethodParameters:
Name Flags
graph
context
private static void verifyVirtualizableEffectArguments(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.graph.NodeInputList<? extends org.graalvm.compiler.graph.Node>, );
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/graph/NodeInputList;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: aload 4
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 8
goto 14
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int org.graalvm.compiler.graph.NodeInputList int int top java.util.Iterator
StackMap stack:
2: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 3: iload 6
iload 5
if_icmplt 13
4: aload 7
checkcast org.graalvm.compiler.nodes.ValueNode
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 9
start local 9 5: aload 9
instanceof org.graalvm.compiler.core.common.type.ObjectStamp
ifeq 13
6: aload 9
checkcast org.graalvm.compiler.core.common.type.ObjectStamp
astore 10
start local 10 7: aload 10
invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 11
start local 11 8: aload 11
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 13
9: aload 1
iload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
astore 12
start local 12 10: new org.graalvm.compiler.phases.VerifyPhase$VerificationError
dup
ldc "%s:Parameter %d in call to %s (which has effects on the graph) is not a constant and thus not safe to apply during speculative virtualization."
iconst_3
anewarray java.lang.Object
dup
iconst_0
11: aload 12
aastore
dup
iconst_1
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 2
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
12: aastore
invokespecial org.graalvm.compiler.phases.VerifyPhase$VerificationError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 12 end local 11 end local 10 end local 9 13: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int org.graalvm.compiler.graph.NodeInputList int int org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
iinc 6 1
end local 7 14: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int org.graalvm.compiler.graph.NodeInputList int int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
15: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 constantNodeType Ljdk/vm/ci/meta/ResolvedJavaType;
0 16 1 caller Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 16 2 callee Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 16 3 bciCaller I
0 16 4 arguments Lorg/graalvm/compiler/graph/NodeInputList<+Lorg/graalvm/compiler/graph/Node;>;
0 16 5 startIdx I
1 16 6 i I
3 14 7 arg Lorg/graalvm/compiler/graph/Node;
5 13 9 argStamp Lorg/graalvm/compiler/core/common/type/Stamp;
7 13 10 objectStamp Lorg/graalvm/compiler/core/common/type/ObjectStamp;
8 13 11 argStampType Ljdk/vm/ci/meta/ResolvedJavaType;
10 13 12 e Ljava/lang/StackTraceElement;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/graph/NodeInputList<+Lorg/graalvm/compiler/graph/Node;>;I)V
MethodParameters:
Name Flags
constantNodeType
caller
callee
bciCaller
arguments
startIdx
protected boolean verify(org.graalvm.compiler.nodes.StructuredGraph, java.lang.Object);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)Z
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.phases.tiers.PhaseContext
invokevirtual org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage.verify:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/graalvm/compiler/phases/VerifyPhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
SourceFile: "VerifyVirtualizableUsage.java"
InnerClasses:
public VerificationError = org.graalvm.compiler.phases.VerifyPhase$VerificationError of org.graalvm.compiler.phases.VerifyPhase