public final class org.graalvm.compiler.nodes.extended.IntegerSwitchNode extends org.graalvm.compiler.nodes.extended.SwitchNode implements org.graalvm.compiler.nodes.spi.LIRLowerable, org.graalvm.compiler.graph.spi.Simplifiable, org.graalvm.compiler.nodes.spi.SwitchFoldable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.nodes.extended.IntegerSwitchNode
super_class: org.graalvm.compiler.nodes.extended.SwitchNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.extended.IntegerSwitchNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;>;
protected final int[] keys;
descriptor: [I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final boolean areKeysContiguous;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.AbstractBeginNode[], int[], double[], int[]);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/AbstractBeginNode;[I[D[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 1
aload 2
aload 5
aload 4
invokespecial org.graalvm.compiler.nodes.extended.SwitchNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/AbstractBeginNode;[I[D)V
1: getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 2
aload 5
arraylength
aload 3
arraylength
iconst_1
iadd
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractBeginNode[] int[] double[] int[]
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 3
aload 5
arraylength
aload 4
arraylength
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
4: aload 0
aload 3
arraylength
iconst_2
if_icmplt 5
aload 3
aload 3
arraylength
iconst_1
isub
iaload
aload 3
iconst_0
iaload
isub
iconst_1
iadd
aload 3
arraylength
if_icmpeq 5
iconst_0
goto 6
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.extended.IntegerSwitchNode
5: iconst_1
StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractBeginNode[] int[] double[] int[]
StackMap stack: org.graalvm.compiler.nodes.extended.IntegerSwitchNode int
6: putfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.areKeysContiguous:Z
7: getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 9
aload 1
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;
instanceof org.graalvm.compiler.core.common.type.PrimitiveStamp
ifeq 8
aload 1
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;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifne 9
StackMap locals:
StackMap stack:
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 10
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.assertSorted:()Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 11
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.assertNoUntargettedSuccessor:()Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
return
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 12 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 12 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 12 2 successors [Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 12 3 keys [I
0 12 4 keyProbabilities [D
0 12 5 keySuccessors [I
MethodParameters:
Name Flags
value
successors
keys
keyProbabilities
keySuccessors
private boolean assertSorted();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: goto 4
2: StackMap locals: int
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 1
iconst_1
isub
iaload
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 1
iaload
if_icmplt 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
if_icmplt 2
end local 1 5: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
1 5 1 i I
private boolean assertNoUntargettedSuccessor();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successors:Lorg/graalvm/compiler/graph/NodeSuccessorList;
invokevirtual org.graalvm.compiler.graph.NodeSuccessorList.size:()I
newarray 4
astore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessors:[I
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode boolean[] top int int int[]
StackMap stack:
2: aload 5
iload 3
iaload
istore 2
start local 2 3: aload 1
iload 2
iconst_1
bastore
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessorIndex:()I
iconst_1
bastore
7: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode boolean[] top int int boolean[]
StackMap stack:
8: aload 5
iload 3
baload
istore 2
start local 2 9: getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 10
iload 2
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 4
if_icmplt 8
12: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
1 13 1 checker [Z
3 4 2 successorIndex I
9 10 2 b Z
public void <init>(org.graalvm.compiler.nodes.ValueNode, int, int[], double[], int[]);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;I[I[D[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
anewarray org.graalvm.compiler.nodes.AbstractBeginNode
aload 3
aload 4
aload 5
invokespecial org.graalvm.compiler.nodes.extended.IntegerSwitchNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/AbstractBeginNode;[I[D[I)V
1: return
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 2 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 2 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 2 2 successorCount I
0 2 3 keys [I
0 2 4 keyProbabilities [D
0 2 5 keySuccessors [I
MethodParameters:
Name Flags
value
successorCount
keys
keyProbabilities
keySuccessors
public boolean isSorted();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public jdk.vm.ci.meta.JavaConstant keyAt(int);
descriptor: (I)Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 1
iaload
invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 1 1 i I
MethodParameters:
Name Flags
i
public int intKeyAt(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 1
iaload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 1 1 i I
MethodParameters:
Name Flags
i
public int keyCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public boolean equalKeys(org.graalvm.compiler.nodes.extended.SwitchNode);
descriptor: (Lorg/graalvm/compiler/nodes/extended/SwitchNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.graalvm.compiler.nodes.extended.IntegerSwitchNode
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.graalvm.compiler.nodes.extended.IntegerSwitchNode
astore 2
start local 2 3: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
aload 2
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
invokestatic java.util.Arrays.equals:([I[I)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 4 1 switchNode Lorg/graalvm/compiler/nodes/extended/SwitchNode;
3 4 2 other Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
MethodParameters:
Name Flags
switchNode
public void generate(org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.emitSwitch:(Lorg/graalvm/compiler/nodes/extended/SwitchNode;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 2 1 gen Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
MethodParameters:
Name Flags
gen
public org.graalvm.compiler.nodes.AbstractBeginNode successorAtKey(int);
descriptor: (I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
iload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successorIndexAtKey:(I)I
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.blockSuccessor:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 1 1 key I
MethodParameters:
Name Flags
key
public int successorIndexAtKey(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.areKeysContiguous:Z
ifeq 2
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iconst_0
iaload
iload 1
if_icmpgt 2
iload 1
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
iconst_1
isub
iaload
if_icmpgt 2
1: aload 0
iload 1
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iconst_0
iaload
isub
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessorIndex:(I)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 1
invokestatic java.util.Arrays.binarySearch:([II)I
istore 2
start local 2 3: iload 2
iflt 5
4: aload 0
iload 2
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessorIndex:(I)I
ireturn
5: StackMap locals: int
StackMap stack:
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyCount:()I
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessorIndex:(I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 6 1 key I
3 6 2 index I
MethodParameters:
Name Flags
key
public void simplify(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.blockSuccessorCount:()I
iconst_1
if_icmpne 5
2: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
3: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
4: goto 14
StackMap locals: org.graalvm.compiler.nodes.NodeView
StackMap stack:
5: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.ConstantNode
ifeq 8
6: aload 0
aload 1
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successorIndexAtKey:(I)I
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.killOtherSuccessors:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;I)V
7: goto 14
StackMap locals:
StackMap stack:
8: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.tryOptimizeEnumSwitch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 10
9: return
10: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.tryRemoveUnreachableKeys:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 12
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.switchTransformationOptimization:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 14
13: return
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 15 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
1 15 2 view Lorg/graalvm/compiler/nodes/NodeView;
MethodParameters:
Name Flags
tool
private void addSuccessorForDeletion(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successors:Lorg/graalvm/compiler/graph/NodeSuccessorList;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeSuccessorList.add:(Lorg/graalvm/compiler/graph/Node;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 2 1 defaultNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
defaultNode
public org.graalvm.compiler.graph.Node getNextSwitchFoldableBranch();
descriptor: ()Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public boolean isInSwitch(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 2 1 switchValue Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
switchValue
public void cutOffCascadeNode();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.clearSuccessors:()V
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.addSuccessorForDeletion:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
1 4 1 toKill Lorg/graalvm/compiler/nodes/AbstractBeginNode;
public void cutOffLowestCascadeNode();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.clearSuccessors:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public org.graalvm.compiler.nodes.AbstractBeginNode getDefault();
descriptor: ()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public org.graalvm.compiler.nodes.ValueNode switchValue();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
public boolean isNonInitializedProfile();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.getSuccessorCount:()I
istore 1
start local 1 1: dconst_0
dstore 2
start local 2 2: iconst_0
istore 4
start local 4 3: goto 11
4: StackMap locals: int double int
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
iload 4
daload
dconst_0
dcmpl
ifle 10
5: dload 2
dconst_0
dcmpl
ifne 8
6: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
iload 4
daload
dstore 2
7: goto 10
StackMap locals:
StackMap stack:
8: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
iload 4
daload
dload 2
dcmpl
ifeq 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
iload 1
if_icmplt 4
end local 4 12: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
1 13 1 nbSuccessors I
2 13 2 prob D
3 12 4 i I
public boolean tryRemoveUnreachableKeys(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/core/common/type/Stamp;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isUnrestricted:()Z
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
new java.util.ArrayList
dup
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 6: new java.util.ArrayList
dup
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.blockSuccessorCount:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 7: iconst_0
istore 6
start local 6 8: goto 12
9: StackMap locals: java.util.List java.util.ArrayList int
StackMap stack:
aload 3
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 6
iaload
i2l
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.contains:(J)Z
ifeq 11
aload 0
iload 6
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessor:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpeq 11
10: aload 4
new org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData
dup
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 6
iaload
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
iload 6
daload
aload 0
iload 6
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessor:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
invokestatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.addNewSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList;)I
invokespecial org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.<init>:(IDI)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
if_icmplt 9
end local 6 13: aload 4
invokeinterface java.util.List.size:()I
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
if_icmpne 15
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
ifne 20
16: aload 1
ifnull 18
17: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
19: iconst_1
ireturn
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
invokestatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.addNewSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList;)I
istore 6
start local 6 21: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
arraylength
iconst_1
isub
daload
dstore 7
start local 7 22: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
aload 5
iload 6
dload 7
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.doReplace:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List;Ljava/util/ArrayList;ID)V
23: iconst_1
ireturn
end local 7 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 24 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 24 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 24 2 valueStamp Lorg/graalvm/compiler/core/common/type/Stamp;
3 24 3 integerStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
6 24 4 newKeyDatas Ljava/util/List<Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;>;
7 24 5 newSuccessors Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
8 13 6 i I
21 24 6 newDefaultSuccessor I
22 24 7 newDefaultProbability D
MethodParameters:
Name Flags
tool
valueStamp
private boolean tryOptimizeEnumSwitch(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=17, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.java.LoadIndexedNode
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.java.LoadIndexedNode
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.hasMoreThanOneUsage:()Z
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.nodes.java.LoadIndexedNode
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 6
aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
aload 0
if_acmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.index:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 7: aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 4
start local 4 8: aload 4
ifnull 9
aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.ConstantNode
invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStableDimension:()I
iconst_1
if_icmpne 9
aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.array:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.ConstantNode
invokevirtual org.graalvm.compiler.nodes.ConstantNode.isDefaultStable:()Z
ifne 10
9: StackMap locals: org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaConstant
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 4
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readArrayLength:(Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Integer;
astore 5
start local 5 11: aload 5
ifnonnull 13
12: iconst_0
ireturn
13: StackMap locals: java.lang.Integer
StackMap stack:
aload 5
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 14: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 15: iconst_0
istore 8
start local 8 16: goto 23
17: StackMap locals: int java.util.Map int
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 4
iload 8
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readArrayElement:(Ljdk/vm/ci/meta/JavaConstant;I)Ljdk/vm/ci/meta/JavaConstant;
astore 9
start local 9 18: aload 9
ifnull 19
aload 9
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 20
19: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
iconst_0
ireturn
20: StackMap locals:
StackMap stack:
aload 9
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
istore 10
start local 10 21: aload 7
iload 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/graalvm/compiler/nodes/extended/IntegerSwitchNode.lambda$0(Ljava/lang/Integer;)Ljava/util/List; (6)
(Ljava/lang/Integer;)Ljava/util/List;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 22: iinc 8 1
StackMap locals:
StackMap stack:
23: iload 8
iload 6
if_icmplt 17
end local 8 24: new java.util.ArrayList
dup
iload 6
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
start local 8 25: new java.util.ArrayList
dup
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.blockSuccessorCount:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 9
start local 9 26: iconst_0
istore 10
start local 10 27: goto 38
28: StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.java.LoadIndexedNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaConstant java.lang.Integer int java.util.Map java.util.List java.util.ArrayList int
StackMap stack:
aload 7
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
iload 10
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 11
start local 11 29: aload 11
ifnull 37
aload 11
invokeinterface java.util.List.size:()I
ifne 31
30: goto 37
31: StackMap locals: java.util.List
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
iload 10
daload
aload 11
invokeinterface java.util.List.size:()I
i2d
ddiv
dstore 12
start local 12 32: aload 0
iload 10
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessor:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 9
invokestatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.addNewSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList;)I
istore 14
start local 14 33: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
goto 36
StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.java.LoadIndexedNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaConstant java.lang.Integer int java.util.Map java.util.List java.util.ArrayList int java.util.List double int top java.util.Iterator
StackMap stack:
34: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 15
start local 15 35: aload 8
new org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData
dup
iload 15
dload 12
iload 14
invokespecial org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.<init>:(IDI)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 15 36: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
end local 14 end local 12 end local 11 37: StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.java.LoadIndexedNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaConstant java.lang.Integer int java.util.Map java.util.List java.util.ArrayList int
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
38: iload 10
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keys:[I
arraylength
if_icmplt 28
end local 10 39: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 9
invokestatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.addNewSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList;)I
istore 10
start local 10 40: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyProbabilities:[D
arraylength
iconst_1
isub
daload
dstore 11
start local 11 41: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 3
iload 6
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
invokespecial org.graalvm.compiler.nodes.calc.IntegerBelowNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 13
start local 13 42: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 13
getstatic jdk.vm.ci.meta.DeoptimizationReason.BoundsCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
43: aload 0
aload 3
aload 8
aload 9
iload 10
dload 11
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.doReplace:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List;Ljava/util/ArrayList;ID)V
44: getstatic org.graalvm.compiler.nodes.extended.IntegerSwitchNode.$assertionsDisabled:Z
ifne 45
aload 2
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.hasNoUsages:()Z
ifne 45
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
45: StackMap locals: double org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
46: iconst_1
ireturn
end local 13 end local 11 end local 10 end local 9 end local 8 end local 7 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 47 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 47 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 47 2 loadIndexed Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
7 47 3 newValue Lorg/graalvm/compiler/nodes/ValueNode;
8 47 4 arrayConstant Ljdk/vm/ci/meta/JavaConstant;
11 47 5 optionalArrayLength Ljava/lang/Integer;
14 47 6 arrayLength I
15 47 7 reverseArrayMapping Ljava/util/Map<Ljava/lang/Integer;Ljava/util/List<Ljava/lang/Integer;>;>;
16 24 8 i I
18 22 9 elementConstant Ljdk/vm/ci/meta/JavaConstant;
21 22 10 element I
25 47 8 newKeyDatas Ljava/util/List<Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;>;
26 47 9 newSuccessors Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
27 39 10 i I
29 37 11 newKeys Ljava/util/List<Ljava/lang/Integer;>;
32 37 12 newKeyProbability D
33 37 14 newKeySuccessor I
35 36 15 newKey I
40 47 10 newDefaultSuccessor I
41 47 11 newDefaultProbability D
42 47 13 boundsCheck Lorg/graalvm/compiler/nodes/LogicNode;
MethodParameters:
Name Flags
tool
private static int addNewSuccessor(org.graalvm.compiler.nodes.AbstractBeginNode, java.util.ArrayList<org.graalvm.compiler.nodes.AbstractBeginNode>);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpne 4
2: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 2
3: aload 1
aload 0
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 newSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 5 1 newSuccessors Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
1 5 2 index I
Signature: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;)I
MethodParameters:
Name Flags
newSuccessor
newSuccessors
private void doReplace(org.graalvm.compiler.nodes.ValueNode, java.util.List<org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData>, java.util.ArrayList<org.graalvm.compiler.nodes.AbstractBeginNode>, int, );
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List;Ljava/util/ArrayList;ID)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)I
org/graalvm/compiler/nodes/extended/IntegerSwitchNode.lambda$1(Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;)I (6)
(Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;)I
invokestatic java.util.Comparator.comparingInt:(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
1: aload 2
invokeinterface java.util.List.size:()I
istore 7
start local 7 2: iload 7
newarray 10
astore 8
start local 8 3: iload 7
iconst_1
iadd
newarray 7
astore 9
start local 9 4: iload 7
iconst_1
iadd
newarray 10
astore 10
start local 10 5: iconst_0
istore 11
start local 11 6: goto 12
7: StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.nodes.ValueNode java.util.List java.util.ArrayList int double int int[] double[] int[] int
StackMap stack:
aload 2
iload 11
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData
astore 12
start local 12 8: aload 8
iload 11
aload 12
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.key:I
iastore
9: aload 9
iload 11
aload 12
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.keyProbability:D
dastore
10: aload 10
iload 11
aload 12
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.keySuccessor:I
iastore
end local 12 11: iinc 11 1
StackMap locals:
StackMap stack:
12: iload 11
iload 7
if_icmplt 7
end local 11 13: aload 10
iload 7
iload 4
iastore
14: aload 9
iload 7
dload 5
dastore
15: dconst_0
dstore 11
start local 11 16: aload 9
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 20
StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.nodes.ValueNode java.util.List java.util.ArrayList int double int int[] double[] int[] double top top int int double[]
StackMap stack:
17: aload 17
iload 15
daload
dstore 13
start local 13 18: dload 11
dload 13
dadd
dstore 11
end local 13 19: iinc 15 1
StackMap locals:
StackMap stack:
20: iload 15
iload 16
if_icmplt 17
21: dload 11
dconst_0
dcmpl
ifle 28
22: iconst_0
istore 13
start local 13 23: goto 26
24: StackMap locals: org.graalvm.compiler.nodes.extended.IntegerSwitchNode org.graalvm.compiler.nodes.ValueNode java.util.List java.util.ArrayList int double int int[] double[] int[] double int
StackMap stack:
aload 9
iload 13
dup2
daload
dload 11
ddiv
dastore
25: iinc 13 1
StackMap locals:
StackMap stack:
26: iload 13
aload 9
arraylength
if_icmplt 24
end local 13 27: goto 33
28: StackMap locals:
StackMap stack:
iconst_0
istore 13
start local 13 29: goto 32
30: StackMap locals: int
StackMap stack:
aload 9
iload 13
dconst_1
aload 9
arraylength
i2d
ddiv
dastore
31: iinc 13 1
StackMap locals:
StackMap stack:
32: iload 13
aload 9
arraylength
if_icmplt 30
end local 13 33: StackMap locals:
StackMap stack:
iconst_0
istore 13
start local 13 34: goto 38
35: StackMap locals: int
StackMap stack:
aload 3
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successors:Lorg/graalvm/compiler/graph/NodeSuccessorList;
iload 13
invokevirtual org.graalvm.compiler.graph.NodeSuccessorList.get:(I)Lorg/graalvm/compiler/graph/Node;
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ifeq 37
36: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successors:Lorg/graalvm/compiler/graph/NodeSuccessorList;
iload 13
aconst_null
invokevirtual org.graalvm.compiler.graph.NodeSuccessorList.set:(ILorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
pop
37: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
38: iload 13
aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successors:Lorg/graalvm/compiler/graph/NodeSuccessorList;
invokevirtual org.graalvm.compiler.graph.NodeSuccessorList.size:()I
if_icmplt 35
end local 13 39: aload 3
aload 3
invokevirtual java.util.ArrayList.size:()I
anewarray org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode[]
astore 13
start local 13 40: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.extended.IntegerSwitchNode
dup
aload 1
aload 13
aload 8
aload 9
aload 10
invokespecial org.graalvm.compiler.nodes.extended.IntegerSwitchNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/AbstractBeginNode;[I[D[I)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.extended.SwitchNode
astore 14
start local 14 41: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
aload 14
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
42: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
43: return
end local 14 end local 13 end local 11 end local 10 end local 9 end local 8 end local 7 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 44 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 44 1 newValue Lorg/graalvm/compiler/nodes/ValueNode;
0 44 2 newKeyDatas Ljava/util/List<Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;>;
0 44 3 newSuccessors Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
0 44 4 newDefaultSuccessor I
0 44 5 newDefaultProbability D
2 44 7 newKeyCount I
3 44 8 newKeys [I
4 44 9 newKeyProbabilities [D
5 44 10 newKeySuccessors [I
6 13 11 i I
8 11 12 keyData Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;
16 44 11 totalProbability D
18 19 13 probability D
23 27 13 i I
29 33 13 i I
34 39 13 i I
40 44 13 successorsArray [Lorg/graalvm/compiler/nodes/AbstractBeginNode;
41 44 14 newSwitch Lorg/graalvm/compiler/nodes/extended/SwitchNode;
Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;>;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;ID)V
MethodParameters:
Name Flags
newValue
newKeyDatas
newSuccessors
newDefaultSuccessor
newDefaultProbability
public org.graalvm.compiler.core.common.type.Stamp getValueStampForSuccessor(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpeq 11
2: iconst_0
istore 3
start local 3 3: goto 10
4: StackMap locals: org.graalvm.compiler.core.common.type.Stamp int
StackMap stack:
aload 0
iload 3
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keySuccessor:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
if_acmpne 9
5: aload 2
ifnonnull 8
6: aload 0
iload 3
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyAt:(I)Ljdk/vm/ci/meta/JavaConstant;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forConstant:(Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 2
7: goto 9
8: StackMap locals:
StackMap stack:
aload 2
aload 0
iload 3
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyAt:(I)Ljdk/vm/ci/meta/JavaConstant;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forConstant:(Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 2
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyCount:()I
if_icmplt 4
end local 3 11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
0 12 1 beginNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 12 2 result Lorg/graalvm/compiler/core/common/type/Stamp;
3 11 3 i I
MethodParameters:
Name Flags
beginNode
public jdk.vm.ci.meta.Constant keyAt(int);
descriptor: (I)Ljdk/vm/ci/meta/Constant;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyAt:(I)Ljdk/vm/ci/meta/JavaConstant;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.util.List lambda$0(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/lang/Integer;
private static int lambda$1(org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData);
descriptor: (Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData.key:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode$KeyData;
}
SourceFile: "IntegerSwitchNode.java"
NestMembers:
org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
final KeyData = org.graalvm.compiler.nodes.extended.IntegerSwitchNode$KeyData of org.graalvm.compiler.nodes.extended.IntegerSwitchNode
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo()