public class org.graalvm.compiler.nodes.TypeCheckHints
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.nodes.TypeCheckHints
super_class: java.lang.Object
{
private static final org.graalvm.compiler.nodes.TypeCheckHints$Hint[] NO_HINTS;
descriptor: [Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public final jdk.vm.ci.meta.ResolvedJavaType exact;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.graalvm.compiler.nodes.TypeCheckHints$Hint[] hints;
descriptor: [Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final jdk.vm.ci.meta.JavaTypeProfile profile;
descriptor: Ljdk/vm/ci/meta/JavaTypeProfile;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final double hintHitProbability;
descriptor: D
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
anewarray org.graalvm.compiler.nodes.TypeCheckHints$Hint
putstatic org.graalvm.compiler.nodes.TypeCheckHints.NO_HINTS:[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.core.common.type.TypeReference, jdk.vm.ci.meta.JavaTypeProfile, jdk.vm.ci.meta.Assumptions, double, int);
descriptor: (Lorg/graalvm/compiler/core/common/type/TypeReference;Ljdk/vm/ci/meta/JavaTypeProfile;Ljdk/vm/ci/meta/Assumptions;DI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield org.graalvm.compiler.nodes.TypeCheckHints.profile:Ljdk/vm/ci/meta/JavaTypeProfile;
2: aload 1
ifnull 5
aload 1
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.isExact:()Z
ifeq 5
3: aload 0
aload 1
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
putfield org.graalvm.compiler.nodes.TypeCheckHints.exact:Ljdk/vm/ci/meta/ResolvedJavaType;
4: goto 6
5: StackMap locals: org.graalvm.compiler.nodes.TypeCheckHints org.graalvm.compiler.core.common.type.TypeReference jdk.vm.ci.meta.JavaTypeProfile jdk.vm.ci.meta.Assumptions double int
StackMap stack:
aload 0
aconst_null
putfield org.graalvm.compiler.nodes.TypeCheckHints.exact:Ljdk/vm/ci/meta/ResolvedJavaType;
6: StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.Double
astore 7
start local 7 7: aload 0
aload 1
aload 2
dload 4
iload 6
aload 7
invokestatic org.graalvm.compiler.nodes.TypeCheckHints.makeHints:(Lorg/graalvm/compiler/core/common/type/TypeReference;Ljdk/vm/ci/meta/JavaTypeProfile;DI[Ljava/lang/Double;)[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
putfield org.graalvm.compiler.nodes.TypeCheckHints.hints:[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
8: aload 0
aload 7
iconst_0
aaload
invokevirtual java.lang.Double.doubleValue:()D
putfield org.graalvm.compiler.nodes.TypeCheckHints.hintHitProbability:D
9: return
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/nodes/TypeCheckHints;
0 10 1 targetType Lorg/graalvm/compiler/core/common/type/TypeReference;
0 10 2 profile Ljdk/vm/ci/meta/JavaTypeProfile;
0 10 3 assumptions Ljdk/vm/ci/meta/Assumptions;
0 10 4 minHintHitProbability D
0 10 6 maxHints I
7 10 7 hitProbability [Ljava/lang/Double;
MethodParameters:
Name Flags
targetType
profile
assumptions
minHintHitProbability
maxHints
private static org.graalvm.compiler.nodes.TypeCheckHints$Hint[] makeHints(org.graalvm.compiler.core.common.type.TypeReference, jdk.vm.ci.meta.JavaTypeProfile, double, int, java.lang.Double[]);
descriptor: (Lorg/graalvm/compiler/core/common/type/TypeReference;Ljdk/vm/ci/meta/JavaTypeProfile;DI[Ljava/lang/Double;)[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=18, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: dconst_0
dstore 6
start local 6 1: getstatic org.graalvm.compiler.nodes.TypeCheckHints.NO_HINTS:[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
astore 8
start local 8 2: aload 1
ifnull 24
3: aload 1
invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
dstore 9
start local 9 4: aload 1
invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getTypes:()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
astore 11
start local 11 5: dload 9
dconst_1
dload 2
dsub
dcmpg
ifge 24
aload 11
ifnull 24
aload 11
arraylength
ifle 24
6: aload 11
arraylength
anewarray org.graalvm.compiler.nodes.TypeCheckHints$Hint
astore 8
7: iconst_0
istore 12
start local 12 8: aload 11
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 17
StackMap locals: org.graalvm.compiler.core.common.type.TypeReference jdk.vm.ci.meta.JavaTypeProfile double int java.lang.Double[] double org.graalvm.compiler.nodes.TypeCheckHints$Hint[] double jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] int top int int jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
StackMap stack:
9: aload 16
iload 14
aaload
astore 13
start local 13 10: aload 0
ifnull 14
11: aload 13
invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 17
start local 17 12: aload 8
iload 12
iinc 12 1
new org.graalvm.compiler.nodes.TypeCheckHints$Hint
dup
aload 17
aload 0
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 17
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
invokespecial org.graalvm.compiler.nodes.TypeCheckHints$Hint.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Z)V
aastore
13: dload 6
aload 13
invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getProbability:()D
dadd
dstore 6
end local 17 14: StackMap locals: org.graalvm.compiler.core.common.type.TypeReference jdk.vm.ci.meta.JavaTypeProfile double int java.lang.Double[] double org.graalvm.compiler.nodes.TypeCheckHints$Hint[] double jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] int jdk.vm.ci.meta.JavaTypeProfile$ProfiledType int int jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
StackMap stack:
iload 12
iload 4
if_icmpne 16
15: goto 18
end local 13 16: StackMap locals: org.graalvm.compiler.core.common.type.TypeReference jdk.vm.ci.meta.JavaTypeProfile double int java.lang.Double[] double org.graalvm.compiler.nodes.TypeCheckHints$Hint[] double jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] int top int int jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
17: iload 14
iload 15
if_icmplt 9
18: StackMap locals: org.graalvm.compiler.core.common.type.TypeReference jdk.vm.ci.meta.JavaTypeProfile double int java.lang.Double[] double org.graalvm.compiler.nodes.TypeCheckHints$Hint[] double jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] int
StackMap stack:
dload 6
dload 2
dcmpl
iflt 22
19: aload 8
arraylength
iload 12
if_icmpne 20
iload 12
iload 4
if_icmple 24
20: StackMap locals:
StackMap stack:
aload 8
iload 4
iload 12
invokestatic java.lang.Math.min:(II)I
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.TypeCheckHints$Hint[]
astore 8
21: goto 24
22: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.TypeCheckHints.NO_HINTS:[Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
astore 8
23: dconst_0
dstore 6
end local 12 end local 11 end local 9 24: StackMap locals:
StackMap stack:
aload 5
iconst_0
dload 6
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
25: aload 8
areturn
end local 8 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 targetType Lorg/graalvm/compiler/core/common/type/TypeReference;
0 26 1 profile Ljdk/vm/ci/meta/JavaTypeProfile;
0 26 2 minHintHitProbability D
0 26 4 maxHints I
0 26 5 hitProbability [Ljava/lang/Double;
1 26 6 hitProb D
2 26 8 hintsBuf [Lorg/graalvm/compiler/nodes/TypeCheckHints$Hint;
4 24 9 notRecordedTypes D
5 24 11 ptypes [Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
8 24 12 hintCount I
10 16 13 ptype Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
12 14 17 hintType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
targetType
profile
minHintHitProbability
maxHints
hitProbability
}
SourceFile: "TypeCheckHints.java"
NestMembers:
org.graalvm.compiler.nodes.TypeCheckHints$Hint
InnerClasses:
public ProfiledType = jdk.vm.ci.meta.JavaTypeProfile$ProfiledType of jdk.vm.ci.meta.JavaTypeProfile
public Hint = org.graalvm.compiler.nodes.TypeCheckHints$Hint of org.graalvm.compiler.nodes.TypeCheckHints