public final class org.graalvm.compiler.nodes.IfNode extends org.graalvm.compiler.nodes.ControlSplitNode implements org.graalvm.compiler.graph.spi.Simplifiable, org.graalvm.compiler.nodes.spi.LIRLowerable, org.graalvm.compiler.graph.IterableNodeType, 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.IfNode
super_class: org.graalvm.compiler.nodes.ControlSplitNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.IfNode> 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/IfNode;>;
private static final org.graalvm.compiler.debug.CounterKey CORRECTED_PROBABILITIES;
descriptor: Lorg/graalvm/compiler/debug/CounterKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
org.graalvm.compiler.nodes.AbstractBeginNode trueSuccessor;
descriptor: Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Successor()
org.graalvm.compiler.nodes.AbstractBeginNode falseSuccessor;
descriptor: Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Successor()
org.graalvm.compiler.nodes.LogicNode condition;
descriptor: Lorg/graalvm/compiler/nodes/LogicNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Input(value = org.graalvm.compiler.nodeinfo.InputType.Condition:Lorg/graalvm/compiler/nodeinfo/InputType;)
protected double trueSuccessorProbability;
descriptor: D
flags: (0x0004) ACC_PROTECTED
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/IfNode;
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.IfNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/IfNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.IfNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
4: ldc "CorrectedProbabilities"
invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
putstatic org.graalvm.compiler.nodes.IfNode.CORRECTED_PROBABILITIES:Lorg/graalvm/compiler/debug/CounterKey;
return
LocalVariableTable:
Start End Slot Name Signature
public org.graalvm.compiler.nodes.LogicNode condition();
descriptor: ()Lorg/graalvm/compiler/nodes/LogicNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
public void setCondition(org.graalvm.compiler.nodes.LogicNode);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.updateUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 x Lorg/graalvm/compiler/nodes/LogicNode;
MethodParameters:
Name Flags
x
public void <init>(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.FixedNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 3
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
dload 4
invokespecial org.graalvm.compiler.nodes.IfNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)V
1: return
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/IfNode;
0 2 1 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 2 2 trueSuccessor Lorg/graalvm/compiler/nodes/FixedNode;
0 2 3 falseSuccessor Lorg/graalvm/compiler/nodes/FixedNode;
0 2 4 trueSuccessorProbability D
MethodParameters:
Name Flags
condition
trueSuccessor
falseSuccessor
trueSuccessorProbability
public void <init>(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.AbstractBeginNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic org.graalvm.compiler.nodes.IfNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forVoid:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokespecial org.graalvm.compiler.nodes.ControlSplitNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
2: aload 0
aload 3
putfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
3: aload 0
aload 2
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
4: aload 0
dload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 6 1 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 6 2 trueSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 6 3 falseSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 6 4 trueSuccessorProbability D
MethodParameters:
Name Flags
condition
trueSuccessor
falseSuccessor
trueSuccessorProbability
public org.graalvm.compiler.nodes.AbstractBeginNode trueSuccessor();
descriptor: ()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
public org.graalvm.compiler.nodes.AbstractBeginNode falseSuccessor();
descriptor: ()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
public double getTrueSuccessorProbability();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
public void setTrueSuccessor(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.updatePredecessor:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 node Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
node
public void setFalseSuccessor(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.updatePredecessor:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 node Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
node
public org.graalvm.compiler.nodes.AbstractBeginNode successor(boolean);
descriptor: (Z)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.AbstractBeginNode
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 istrue Z
MethodParameters:
Name Flags
istrue
public void setTrueSuccessorProbability(double);
descriptor: (D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 2
dload 1
ldc -1.0E-9
dcmpl
iflt 1
dload 1
ldc 1.000000001
dcmpg
ifle 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Probability out of bounds: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
dload 1
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dconst_1
dconst_0
dload 1
invokestatic java.lang.Math.max:(DD)D
invokestatic java.lang.Math.min:(DD)D
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 4 1 prob D
MethodParameters:
Name Flags
prob
public double probability(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpne 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
goto 2
StackMap locals:
StackMap stack:
1: dconst_1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dsub
StackMap locals:
StackMap stack: double
2: dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 successor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
successor
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.emitIf:(Lorg/graalvm/compiler/nodes/IfNode;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 2 1 gen Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
MethodParameters:
Name Flags
gen
public boolean verify();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.IfNode
1: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode
StackMap stack: org.graalvm.compiler.nodes.IfNode int
2: ldc "missing condition"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
3: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
ifnull 4
iconst_1
goto 5
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.IfNode
4: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode
StackMap stack: org.graalvm.compiler.nodes.IfNode int
5: ldc "missing trueSuccessor"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
6: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
ifnull 7
iconst_1
goto 8
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.IfNode
7: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode
StackMap stack: org.graalvm.compiler.nodes.IfNode int
8: ldc "missing falseSuccessor"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
9: aload 0
invokespecial org.graalvm.compiler.nodes.ControlSplitNode.verify:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/nodes/IfNode;
private boolean compareCallContext(org.graalvm.compiler.graph.NodeSourcePosition);
descriptor: (Lorg/graalvm/compiler/graph/NodeSourcePosition;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 2
start local 2 1: aload 1
astore 3
start local 3 2: goto 6
3: StackMap locals: org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 3
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ldc "method mismatch"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
4: aload 2
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getCaller:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 2
5: aload 3
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getCaller:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 3
6: StackMap locals:
StackMap stack:
aload 2
ifnonnull 3
7: aload 0
aload 3
ifnonnull 8
iconst_1
goto 9
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.IfNode
8: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode int
9: ldc "successor position has more methods"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
10: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 11 1 successorPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
1 11 2 position Lorg/graalvm/compiler/graph/NodeSourcePosition;
2 11 3 successor Lorg/graalvm/compiler/graph/NodeSourcePosition;
MethodParameters:
Name Flags
successorPosition
public boolean verifySourcePosition();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 1
start local 1 1: aload 0
aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode
2: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode int
3: ldc "missing IfNode source position"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
4: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 2
start local 2 5: aload 0
aload 2
ifnull 6
iconst_1
goto 7
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode
6: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode int
7: ldc "missing IfNode true successor source position"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
8: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 3
start local 3 9: aload 0
aload 3
ifnull 10
iconst_1
goto 11
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode
10: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack: org.graalvm.compiler.nodes.IfNode int
11: ldc "missing IfNode false successor source position"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
12: aload 1
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
istore 4
start local 4 13: aload 1
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 5
start local 5 14: aload 5
iload 4
invokestatic org.graalvm.compiler.bytecode.BytecodeDisassembler.getBytecodeAt:(Ljdk/vm/ci/meta/ResolvedJavaMethod;I)I
istore 6
start local 6 15: iload 6
invokestatic org.graalvm.compiler.bytecode.Bytecodes.isIfBytecode:(I)Z
ifne 17
16: iconst_1
ireturn
17: StackMap locals: int jdk.vm.ci.meta.ResolvedJavaMethod int
StackMap stack:
new org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode
dup
aload 5
invokespecial org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
invokevirtual org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode.getCode:()[B
astore 7
start local 7 18: iload 4
aload 7
iload 4
iconst_1
iadd
invokestatic org.graalvm.compiler.bytecode.Bytes.beS2:([BI)I
iadd
istore 8
start local 8 19: iload 4
iload 6
invokestatic org.graalvm.compiler.bytecode.Bytecodes.lengthOf:(I)I
iadd
istore 9
start local 9 20: iconst_0
istore 10
start local 10 21: aload 2
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
iload 9
if_icmpeq 22
aload 2
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
iload 8
if_icmpne 24
22: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition int jdk.vm.ci.meta.ResolvedJavaMethod int byte[] int int int
StackMap stack:
aload 0
aload 0
aload 2
invokevirtual org.graalvm.compiler.nodes.IfNode.compareCallContext:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)Z
ldc "call context different from IfNode in trueSuccessor"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
23: iconst_1
istore 10
24: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
iload 9
if_icmpeq 25
aload 3
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
iload 8
if_icmpne 27
25: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.compareCallContext:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)Z
ldc "call context different from IfNode in falseSuccessor"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
26: iconst_1
istore 10
27: StackMap locals:
StackMap stack:
aload 0
iload 10
ldc "no matching successor position found in IfNode"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
28: aload 0
aload 2
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
aload 3
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
if_icmpeq 29
iconst_1
goto 30
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.IfNode
29: iconst_0
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.graph.NodeSourcePosition int jdk.vm.ci.meta.ResolvedJavaMethod int byte[] int int int
StackMap stack: org.graalvm.compiler.nodes.IfNode int
30: ldc "successor positions same in IfNode"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.nodes.IfNode.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
pop
31: iconst_1
ireturn
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 32 0 this Lorg/graalvm/compiler/nodes/IfNode;
1 32 1 sourcePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
5 32 2 trueSuccessorPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
9 32 3 falseSuccessorPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
13 32 4 bci I
14 32 5 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
15 32 6 bytecode I
18 32 7 code [B
19 32 8 targetBCI I
20 32 9 nextBCI I
21 32 10 matchingSuccessorFound Z
public void eliminateNegation();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 2: aload 0
aload 2
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
3: aload 0
aload 1
putfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
4: aload 0
dconst_1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dsub
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
5: aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.LogicNegationNode
invokevirtual org.graalvm.compiler.nodes.LogicNegationNode.getValue:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.setCondition:(Lorg/graalvm/compiler/nodes/LogicNode;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/nodes/IfNode;
1 7 1 oldTrueSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2 7 2 oldFalseSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
public void simplify(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.DeoptimizeNode
ifeq 5
1: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifeq 9
2: getstatic org.graalvm.compiler.nodes.IfNode.CORRECTED_PROBABILITIES:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
3: aload 0
dconst_0
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
4: goto 9
StackMap locals:
StackMap stack:
5: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.DeoptimizeNode
ifeq 9
6: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifeq 9
7: getstatic org.graalvm.compiler.nodes.IfNode.CORRECTED_PROBABILITIES:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
8: aload 0
dconst_1
putfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.LogicNegationNode
ifeq 11
10: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.eliminateNegation:()V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.LogicConstantNode
ifeq 22
12: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.LogicConstantNode
astore 2
start local 2 13: aload 2
invokevirtual org.graalvm.compiler.nodes.LogicConstantNode.getValue:()Z
ifeq 18
14: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.deleteBranch:(Lorg/graalvm/compiler/graph/Node;)V
15: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
16: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplit:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
17: goto 21
18: StackMap locals: org.graalvm.compiler.nodes.LogicConstantNode
StackMap stack:
aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.deleteBranch:(Lorg/graalvm/compiler/graph/Node;)V
19: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
20: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplit:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
21: StackMap locals:
StackMap stack:
return
end local 2 22: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.allUsagesAvailable:()Z
ifeq 26
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 26
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 26
23: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.pushNodesThroughIf:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
24: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.checkForUnsignedCompare:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifne 25
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.removeOrMaterializeIf:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 26
25: StackMap locals:
StackMap stack:
return
26: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.removeIntermediateMaterialization:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 28
27: return
28: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.conditionalNodeOptimization:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 30
29: return
30: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.switchTransformationOptimization:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 32
31: return
32: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 58
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifne 58
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 58
33: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.IfNode
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifne 58
34: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 35: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.IfNode
astore 3
start local 3 36: dconst_1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dsub
aload 3
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dmul
dstore 4
start local 4 37: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dload 4
dcmpg
ifge 58
38: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokestatic org.graalvm.compiler.nodes.IfNode.prepareForSwap:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;)Z
ifeq 58
39: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 40
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 3
if_acmpeq 40
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
40: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.IfNode double
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 6
start local 6 41: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
42: aload 2
aconst_null
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
43: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
44: aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
45: aload 3
aload 2
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
46: aload 2
aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
47: aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
48: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 7
start local 7 49: aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
50: aload 6
aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
51: aload 3
dload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
52: dload 4
dconst_1
dcmpl
ifne 55
53: aload 0
dconst_0
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
54: goto 57
55: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dload 4
dsub
ddiv
dstore 8
start local 8 56: aload 0
dconst_1
dload 8
invokestatic java.lang.Math.min:(DD)D
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
end local 8 57: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 4 end local 3 end local 2 58: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.tryEliminateBoxedReferenceEquals:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
ifeq 60
59: return
60: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 61 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
13 22 2 c Lorg/graalvm/compiler/nodes/LogicConstantNode;
35 58 2 intermediateBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
36 58 3 nextIf Lorg/graalvm/compiler/nodes/IfNode;
37 58 4 probabilityB D
41 58 6 bothFalseBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
49 58 7 intermediateBeginPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
56 57 8 newProbability D
MethodParameters:
Name Flags
tool
private static boolean isUnboxedFrom(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.nodes.NodeView, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
aload 3
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.extended.UnboxNode
ifeq 4
3: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.nodes.extended.UnboxNode
invokevirtual org.graalvm.compiler.nodes.extended.UnboxNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.PiNode
ifeq 7
5: aload 2
checkcast org.graalvm.compiler.nodes.PiNode
astore 4
start local 4 6: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ireturn
end local 4 7: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
ifeq 13
8: aload 2
checkcast org.graalvm.compiler.nodes.java.LoadFieldNode
astore 4
start local 4 9: aload 0
ldc Ljava/lang/Integer;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 5
start local 5 10: aload 4
invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 5
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 12
11: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ireturn
12: StackMap locals: org.graalvm.compiler.nodes.java.LoadFieldNode jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 13: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 meta Ljdk/vm/ci/meta/MetaAccessProvider;
0 14 1 view Lorg/graalvm/compiler/nodes/NodeView;
0 14 2 x Lorg/graalvm/compiler/nodes/ValueNode;
0 14 3 src Lorg/graalvm/compiler/nodes/ValueNode;
6 7 4 pi Lorg/graalvm/compiler/nodes/PiNode;
9 13 4 load Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
10 13 5 integerType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
meta
view
x
src
private boolean tryEliminateBoxedReferenceEquals(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.ObjectEqualsNode
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
astore 2
start local 2 3: aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.ObjectEqualsNode
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ObjectEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 5: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ObjectEqualsNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 6: aload 2
ldc Ljava/lang/Integer;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 6
start local 6 7: aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 7
start local 7 8: aload 4
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 10
aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 10
9: iconst_0
ireturn
10: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.ObjectEqualsNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.NodeView
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
ldc 0.4
dcmpl
ifle 12
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.BeginNode
ifne 13
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 15
13: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.EndNode
ifne 16
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iconst_0
ireturn
16: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 17: aconst_null
astore 9
start local 9 18: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getBlockNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 11
goto 37
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.ObjectEqualsNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.extended.UnboxNode org.graalvm.compiler.nodes.FixedGuardNode top java.util.Iterator
StackMap stack:
19: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 10
start local 10 20: aload 10
instanceof org.graalvm.compiler.nodes.BeginNode
ifne 23
aload 10
instanceof org.graalvm.compiler.nodes.extended.UnboxNode
ifne 23
aload 10
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifne 23
aload 10
instanceof org.graalvm.compiler.nodes.EndNode
ifne 23
21: aload 10
instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
ifne 23
aload 10
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifne 23
22: iconst_0
ireturn
23: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.ObjectEqualsNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.extended.UnboxNode org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.FixedNode java.util.Iterator
StackMap stack:
aload 10
instanceof org.graalvm.compiler.nodes.extended.UnboxNode
ifeq 28
24: aload 8
ifnonnull 27
25: aload 10
checkcast org.graalvm.compiler.nodes.extended.UnboxNode
astore 8
26: goto 28
27: StackMap locals:
StackMap stack:
iconst_0
ireturn
28: StackMap locals:
StackMap stack:
aload 10
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifne 30
29: goto 37
30: StackMap locals:
StackMap stack:
aload 10
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 12
start local 12 31: aload 12
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifne 33
32: goto 37
33: StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode
StackMap stack:
aload 12
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
astore 13
start local 13 34: aload 2
aload 7
aload 13
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 35
aload 2
aload 7
aload 13
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifne 36
35: StackMap locals: org.graalvm.compiler.nodes.calc.IntegerEqualsNode
StackMap stack:
aload 2
aload 7
aload 13
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 37
aload 2
aload 7
aload 13
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokestatic org.graalvm.compiler.nodes.IfNode.isUnboxedFrom:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/NodeView;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 37
36: StackMap locals:
StackMap stack:
aload 12
astore 9
end local 13 end local 12 end local 10 37: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.ObjectEqualsNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.extended.UnboxNode org.graalvm.compiler.nodes.FixedGuardNode top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
38: aload 8
ifnull 39
aload 9
ifnonnull 40
39: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.calc.ObjectEqualsNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.extended.UnboxNode org.graalvm.compiler.nodes.FixedGuardNode
StackMap stack:
iconst_0
ireturn
40: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.LogicConstantNode.contradiction:()Lorg/graalvm/compiler/nodes/LogicConstantNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
invokevirtual org.graalvm.compiler.nodes.IfNode.setCondition:(Lorg/graalvm/compiler/nodes/LogicNode;)V
41: iconst_1
ireturn
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 42 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 42 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 42 2 meta Ljdk/vm/ci/meta/MetaAccessProvider;
4 42 3 equalsCondition Lorg/graalvm/compiler/nodes/calc/ObjectEqualsNode;
5 42 4 x Lorg/graalvm/compiler/nodes/ValueNode;
6 42 5 y Lorg/graalvm/compiler/nodes/ValueNode;
7 42 6 integerType Ljdk/vm/ci/meta/ResolvedJavaType;
8 42 7 view Lorg/graalvm/compiler/nodes/NodeView;
17 42 8 unbox Lorg/graalvm/compiler/nodes/extended/UnboxNode;
18 42 9 unboxCheck Lorg/graalvm/compiler/nodes/FixedGuardNode;
20 37 10 node Lorg/graalvm/compiler/nodes/FixedNode;
31 37 12 fixed Lorg/graalvm/compiler/nodes/FixedGuardNode;
34 37 13 equals Lorg/graalvm/compiler/nodes/calc/IntegerEqualsNode;
MethodParameters:
Name Flags
tool
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.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
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
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokestatic org.graalvm.compiler.nodes.spi.SwitchFoldable.maybeIsInSwitch:(Lorg/graalvm/compiler/nodes/LogicNode;)Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokestatic org.graalvm.compiler.nodes.spi.SwitchFoldable.sameSwitchValue:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 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/IfNode;
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=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
public void cutOffLowestCascadeNode();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
1: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
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.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
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.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokestatic org.graalvm.compiler.nodes.spi.SwitchFoldable.maybeIsInSwitch:(Lorg/graalvm/compiler/nodes/LogicNode;)Z
ifeq 2
1: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
public boolean isNonInitializedProfile();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
ldc 0.5
dcmpl
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
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: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 1
iload 1
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getY:()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
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 2 1 i I
MethodParameters:
Name Flags
i
public double keyProbability(int);
descriptor: (I)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 1
iload 1
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 2 1 i I
MethodParameters:
Name Flags
i
public org.graalvm.compiler.nodes.AbstractBeginNode keySuccessor(int);
descriptor: (I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 1
iload 1
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 2 1 i I
MethodParameters:
Name Flags
i
public double defaultProbability();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: dconst_1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
dsub
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
private boolean conditionalNodeOptimization(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 24
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 24
1: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 2
start local 2 2: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 3
start local 3 3: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
if_acmpeq 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractEndNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
instanceof org.graalvm.compiler.nodes.MergeNode
ifne 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
checkcast org.graalvm.compiler.nodes.MergeNode
astore 4
start local 4 8: aload 4
invokevirtual org.graalvm.compiler.nodes.MergeNode.hasExactlyOneUsage:()Z
ifeq 9
aload 4
invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpeq 10
9: StackMap locals: org.graalvm.compiler.nodes.MergeNode
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasAnchored:()Z
ifne 11
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasAnchored:()Z
ifeq 12
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 5
start local 5 13: aload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 14: aload 5
aload 2
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 15: aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 8
start local 8 16: aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
aload 7
aload 6
aload 5
aload 8
invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 8
invokestatic org.graalvm.compiler.nodes.calc.ConditionalNode.canonicalizeConditional:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 17: aload 9
ifnull 24
18: aload 9
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
ifnonnull 20
19: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 9
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 9
20: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
aload 9
invokevirtual org.graalvm.compiler.nodes.IfNode.proxyReplacement:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
21: aload 5
aload 2
aload 9
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
22: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
23: iconst_1
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 24: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 25 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
2 24 2 trueEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
3 24 3 falseEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
8 24 4 merge Lorg/graalvm/compiler/nodes/MergeNode;
13 24 5 phi Lorg/graalvm/compiler/nodes/PhiNode;
14 24 6 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
15 24 7 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
16 24 8 view Lorg/graalvm/compiler/nodes/NodeView;
17 24 9 result Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
tool
private void pushNodesThroughIf(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 3: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 3
start local 3 4: aload 2
instanceof org.graalvm.compiler.nodes.BeginNode
ifeq 27
aload 3
instanceof org.graalvm.compiler.nodes.BeginNode
ifeq 27
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 27
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 27
5: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 4
start local 4 6: aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 5
start local 5 7: aload 4
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
astore 6
start local 6 8: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpne 27
9: aload 4
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifne 27
10: aload 6
aload 4
aload 5
invokevirtual org.graalvm.compiler.graph.NodeClass.equalInputs:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Z
ifeq 27
aload 4
aload 5
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.valueEquals:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 27
11: aload 5
aload 4
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
12: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
13: aload 4
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unlinkFixedNode:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
14: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
15: aload 4
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 25
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.graph.NodeClass top java.util.Iterator
StackMap stack:
16: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 17: aload 7
invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
ifeq 25
18: aload 7
invokevirtual org.graalvm.compiler.graph.Node.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
astore 9
start local 9 19: aload 9
invokevirtual org.graalvm.compiler.graph.NodeClass.valueNumberable:()Z
ifeq 23
aload 9
invokevirtual org.graalvm.compiler.graph.NodeClass.isLeafNode:()Z
ifne 23
20: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 7
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.findDuplicate:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
astore 10
start local 10 21: aload 10
ifnull 23
22: aload 7
aload 10
invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
end local 10 23: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.graph.NodeClass org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.graph.NodeClass
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
ifeq 25
24: aload 1
aload 7
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 end local 7 25: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.nodes.FixedWithNextNode org.graalvm.compiler.graph.NodeClass top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 6 end local 5 end local 4 end local 3 end local 2 26: goto 2
27: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 28 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 26 2 trueSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
4 26 3 falseSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
6 26 4 trueNext Lorg/graalvm/compiler/nodes/FixedWithNextNode;
7 26 5 falseNext Lorg/graalvm/compiler/nodes/FixedWithNextNode;
8 26 6 nodeClass Lorg/graalvm/compiler/graph/NodeClass<*>;
17 25 7 usage Lorg/graalvm/compiler/graph/Node;
19 25 9 usageNodeClass Lorg/graalvm/compiler/graph/NodeClass<*>;
21 23 10 newNode Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
tool
private boolean checkForUnsignedCompare(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=17, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 81
3: 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 4: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 3
start local 3 5: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 4
start local 4 6: aload 4
instanceof jdk.vm.ci.meta.PrimitiveConstant
ifeq 44
aload 4
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lconst_0
lcmp
ifne 44
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 44
7: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.IfNode
astore 5
start local 5 8: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 81
9: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 6
start local 6 10: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 7
start local 7 11: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 8
start local 8 12: aconst_null
astore 9
start local 9 13: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 21
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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;
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 21
14: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
ifeq 21
15: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokestatic org.graalvm.compiler.nodes.IfNode.sameDestination:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifeq 21
16: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
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.calc.IntegerBelowNode
astore 9
17: aload 7
astore 10
start local 10 18: aload 8
astore 7
19: aload 10
astore 8
end local 10 20: goto 26
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.calc.IntegerLessThanNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode
StackMap stack:
21: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 26
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokestatic org.graalvm.compiler.nodes.IfNode.sameDestination:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifeq 26
22: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 10
start local 10 23: aload 10
ifnull 26
aload 10
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lconst_0
lcmp
ifle 26
aload 10
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
aload 10
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getMaxValue:()J
lcmp
ifge 26
24: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()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;
aload 10
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lconst_1
ladd
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 11
start local 11 25: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 11
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.calc.IntegerBelowNode
astore 9
end local 11 end local 10 26: StackMap locals:
StackMap stack:
aload 9
ifnull 81
27: aconst_null
astore 10
aconst_null
astore 11
28: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 12
start local 12 29: aload 5
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
30: aload 5
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
31: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.IfNode
dup
aload 9
aload 7
aload 8
dconst_1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dsub
invokespecial org.graalvm.compiler.nodes.IfNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.IfNode
astore 13
start local 13 32: aload 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.deleteBranch:(Lorg/graalvm/compiler/graph/Node;)V
33: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplit:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
34: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
aload 5
aload 13
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstSuccessor:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
35: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.safeDelete:()V
36: aload 12
ifnull 37
aload 12
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
37: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.calc.IntegerLessThanNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.IfNode
StackMap stack:
iconst_1
ireturn
end local 13 StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.calc.IntegerLessThanNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
38: astore 10
39: aload 12
ifnull 40
aload 12
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 12 StackMap locals:
StackMap stack:
40: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
41: astore 11
aload 10
ifnonnull 42
aload 11
astore 10
goto 43
StackMap locals:
StackMap stack:
42: aload 10
aload 11
if_acmpeq 43
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
43: aload 10
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 44: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant
StackMap stack:
aload 4
instanceof jdk.vm.ci.meta.PrimitiveConstant
ifeq 81
aload 4
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lconst_0
lcmp
ifge 81
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 81
45: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.IfNode
astore 5
start local 5 46: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 6
start local 6 47: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 7
start local 7 48: aconst_null
astore 8
start local 8 49: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 63
50: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 51: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 10
start local 10 52: aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 11
start local 11 53: aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 9
if_acmpne 63
aload 11
instanceof jdk.vm.ci.meta.PrimitiveConstant
ifeq 63
aload 11
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lconst_0
lcmp
ifle 63
54: aload 9
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 63
55: aload 9
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()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.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 63
56: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokestatic org.graalvm.compiler.nodes.IfNode.sameDestination:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifeq 63
57: aload 4
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lneg
aload 11
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
ladd
lstore 12
start local 12 58: lload 12
lconst_0
lcmp
ifle 63
lload 12
aload 9
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lcmp
ifgt 63
59: aload 9
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
lload 12
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 14
start local 14 60: aload 9
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 4
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lneg
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 15
start local 15 61: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 9
aload 15
aload 2
invokestatic org.graalvm.compiler.nodes.calc.AddNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 16
start local 16 62: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 16
aload 14
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.calc.IntegerBelowNode
astore 8
end local 16 end local 15 end local 14 end local 12 end local 11 end local 10 end local 9 63: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode
StackMap stack:
aload 8
ifnull 81
64: aconst_null
astore 9
aconst_null
astore 10
65: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 11
start local 11 66: aload 5
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
67: aload 5
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
68: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.IfNode
dup
aload 8
aload 7
aload 6
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
invokespecial org.graalvm.compiler.nodes.IfNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.IfNode
astore 12
start local 12 69: aload 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.deleteBranch:(Lorg/graalvm/compiler/graph/Node;)V
70: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplit:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
71: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
aload 5
aload 12
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstSuccessor:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
72: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.safeDelete:()V
73: aload 11
ifnull 74
aload 11
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
74: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.IfNode
StackMap stack:
iconst_1
ireturn
end local 12 StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.IntegerLessThanNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.calc.IntegerBelowNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
75: astore 9
76: aload 11
ifnull 77
aload 11
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 11 StackMap locals:
StackMap stack:
77: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
78: astore 10
aload 9
ifnonnull 79
aload 10
astore 9
goto 80
StackMap locals:
StackMap stack:
79: aload 9
aload 10
if_acmpeq 80
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
80: aload 9
athrow
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 81: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 82 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
4 81 2 view Lorg/graalvm/compiler/nodes/NodeView;
5 81 3 lessThan Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
6 81 4 y Ljdk/vm/ci/meta/Constant;
8 44 5 ifNode2 Lorg/graalvm/compiler/nodes/IfNode;
10 44 6 lessThan2 Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
11 44 7 falseSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
12 44 8 trueSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
13 44 9 below Lorg/graalvm/compiler/nodes/calc/IntegerBelowNode;
18 20 10 tmp Lorg/graalvm/compiler/nodes/AbstractBeginNode;
23 26 10 positive Ljdk/vm/ci/meta/JavaConstant;
25 26 11 newLimit Lorg/graalvm/compiler/nodes/ConstantNode;
29 40 12 position Lorg/graalvm/compiler/debug/DebugCloseable;
32 38 13 newIfNode Lorg/graalvm/compiler/nodes/IfNode;
46 81 5 ifNode2 Lorg/graalvm/compiler/nodes/IfNode;
47 81 6 falseSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
48 81 7 trueSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
49 81 8 below Lorg/graalvm/compiler/nodes/calc/IntegerBelowNode;
51 63 9 x Lorg/graalvm/compiler/nodes/ValueNode;
52 63 10 lessThan2 Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
53 63 11 c2 Ljdk/vm/ci/meta/Constant;
58 63 12 newLimitValue J
60 63 14 newLimit Lorg/graalvm/compiler/nodes/ConstantNode;
61 63 15 c1 Lorg/graalvm/compiler/nodes/ConstantNode;
62 63 16 addNode Lorg/graalvm/compiler/nodes/ValueNode;
66 77 11 position Lorg/graalvm/compiler/debug/DebugCloseable;
69 75 12 newIfNode Lorg/graalvm/compiler/nodes/IfNode;
Exception table:
from to target type
29 36 38 any
28 37 41 any
38 41 41 any
66 73 75 any
65 74 78 any
75 78 78 any
MethodParameters:
Name Flags
tool
private static boolean sameDestination(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 3
start local 3 2: aload 2
instanceof org.graalvm.compiler.nodes.EndNode
ifeq 12
aload 3
instanceof org.graalvm.compiler.nodes.EndNode
ifeq 12
3: aload 2
checkcast org.graalvm.compiler.nodes.EndNode
astore 4
start local 4 4: aload 3
checkcast org.graalvm.compiler.nodes.EndNode
astore 5
start local 5 5: aload 4
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
if_acmpne 27
6: aload 4
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 7
goto 10
StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 6
start local 6 8: aload 6
aload 4
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 10
9: iconst_0
ireturn
end local 6 10: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
11: iconst_1
ireturn
end local 5 end local 4 12: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.DeoptimizeNode
ifeq 17
aload 3
instanceof org.graalvm.compiler.nodes.DeoptimizeNode
ifeq 17
13: aload 2
checkcast org.graalvm.compiler.nodes.DeoptimizeNode
astore 4
start local 4 14: aload 3
checkcast org.graalvm.compiler.nodes.DeoptimizeNode
astore 5
start local 5 15: aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
aload 5
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
if_acmpne 27
aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 5
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
if_acmpne 27
16: iconst_1
ireturn
end local 5 end local 4 17: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 22
aload 3
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 22
18: aload 2
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 4
start local 4 19: aload 3
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 5
start local 5 20: aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
if_acmpne 27
aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
aload 5
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
if_acmpne 27
aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 27
aload 4
aload 5
invokestatic org.graalvm.compiler.nodes.IfNode.sameDestination:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifeq 27
21: iconst_1
ireturn
end local 5 end local 4 22: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.ReturnNode
ifeq 27
aload 3
instanceof org.graalvm.compiler.nodes.ReturnNode
ifeq 27
23: aload 2
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 4
start local 4 24: aload 3
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 5
start local 5 25: aload 4
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 27
26: iconst_1
ireturn
end local 5 end local 4 27: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 succ1 Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 28 1 succ2 Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 28 2 next1 Lorg/graalvm/compiler/graph/Node;
2 28 3 next2 Lorg/graalvm/compiler/graph/Node;
4 12 4 end1 Lorg/graalvm/compiler/nodes/EndNode;
5 12 5 end2 Lorg/graalvm/compiler/nodes/EndNode;
8 10 6 phi Lorg/graalvm/compiler/nodes/PhiNode;
14 17 4 deopt1 Lorg/graalvm/compiler/nodes/DeoptimizeNode;
15 17 5 deopt2 Lorg/graalvm/compiler/nodes/DeoptimizeNode;
19 22 4 exit1 Lorg/graalvm/compiler/nodes/LoopExitNode;
20 22 5 exit2 Lorg/graalvm/compiler/nodes/LoopExitNode;
24 27 4 exit1 Lorg/graalvm/compiler/nodes/ReturnNode;
25 27 5 exit2 Lorg/graalvm/compiler/nodes/ReturnNode;
MethodParameters:
Name Flags
succ1
succ2
private static boolean prepareForSwap(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.LogicNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 3
start local 3 1: aload 1
instanceof org.graalvm.compiler.nodes.java.InstanceOfNode
ifeq 14
2: aload 1
checkcast org.graalvm.compiler.nodes.java.InstanceOfNode
astore 4
start local 4 3: aload 2
instanceof org.graalvm.compiler.nodes.calc.IsNullNode
ifeq 8
4: aload 2
checkcast org.graalvm.compiler.nodes.calc.IsNullNode
astore 5
start local 5 5: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IsNullNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 54
6: aload 3
ldc "Can swap instanceof and isnull if"
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
7: iconst_1
ireturn
end local 5 8: StackMap locals: org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.java.InstanceOfNode
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.java.InstanceOfNode
ifeq 54
9: aload 2
checkcast org.graalvm.compiler.nodes.java.InstanceOfNode
astore 5
start local 5 10: aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 54
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInterface:()Z
ifne 54
aload 5
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInterface:()Z
ifne 54
11: aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 5
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 54
aload 5
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 54
12: aload 3
ldc "Can swap instanceof for types %s and %s"
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
aload 5
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
13: iconst_1
ireturn
end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 54
15: aload 1
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 4
start local 4 16: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 5
start local 5 17: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 19
18: iconst_0
ireturn
19: StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 54
20: aload 2
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 6
start local 6 21: aload 4
aload 6
if_acmpne 24
22: aload 3
ldc "Same conditions => do not swap and leave the work for global value numbering."
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
23: iconst_0
ireturn
24: StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 26
25: iconst_0
ireturn
26: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 27: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 8
start local 8 28: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 31
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 31
29: aload 8
astore 7
30: goto 33
StackMap locals: org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.core.common.calc.Condition
StackMap stack:
31: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 33
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 33
32: aload 8
invokevirtual org.graalvm.compiler.core.common.calc.Condition.mirror:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 7
33: StackMap locals:
StackMap stack:
aload 7
ifnull 38
34: aload 5
aload 7
invokevirtual org.graalvm.compiler.core.common.calc.Condition.join:(Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/core/common/calc/Condition;
astore 9
start local 9 35: aload 9
ifnonnull 54
36: aload 3
ldc "Can swap disjoint coditions on same values: %s and %s"
aload 5
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
37: iconst_1
ireturn
end local 9 38: StackMap locals:
StackMap stack:
aload 5
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 54
aload 8
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 54
39: iconst_0
istore 9
start local 9 40: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 43
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 43
41: iconst_1
istore 9
42: goto 51
StackMap locals: int
StackMap stack:
43: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 46
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 46
44: iconst_1
istore 9
45: goto 51
StackMap locals:
StackMap stack:
46: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 49
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 49
47: iconst_1
istore 9
48: goto 51
StackMap locals:
StackMap stack:
49: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 51
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 51
50: iconst_1
istore 9
51: StackMap locals:
StackMap stack:
iload 9
ifeq 54
52: aload 3
ldc "Can swap equality condition with one shared and one disjoint value."
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
53: iconst_1
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 54: StackMap locals: org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.debug.DebugContext
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 55 1 a Lorg/graalvm/compiler/nodes/LogicNode;
0 55 2 b Lorg/graalvm/compiler/nodes/LogicNode;
1 55 3 debug Lorg/graalvm/compiler/debug/DebugContext;
3 14 4 instanceOfA Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
5 8 5 isNullNode Lorg/graalvm/compiler/nodes/calc/IsNullNode;
10 14 5 instanceOfB Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
16 54 4 compareA Lorg/graalvm/compiler/nodes/calc/CompareNode;
17 54 5 conditionA Lorg/graalvm/compiler/core/common/calc/Condition;
21 54 6 compareB Lorg/graalvm/compiler/nodes/calc/CompareNode;
27 54 7 comparableCondition Lorg/graalvm/compiler/core/common/calc/Condition;
28 54 8 conditionB Lorg/graalvm/compiler/core/common/calc/Condition;
35 38 9 combined Lorg/graalvm/compiler/core/common/calc/Condition;
40 54 9 canSwap Z
MethodParameters:
Name Flags
tool
a
b
private static boolean valuesDistinct(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
1: aload 0
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.constantEquals:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljava/lang/Boolean;
astore 3
start local 3 2: aload 3
ifnull 6
3: aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
iconst_0
goto 5
StackMap locals: java.lang.Boolean
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ireturn
end local 3 6: StackMap locals:
StackMap stack:
aload 0
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 3
start local 3 7: aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 8: aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 5
start local 5 9: aload 4
aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.alwaysDistinct:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
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 10 0 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 10 1 a Lorg/graalvm/compiler/nodes/ValueNode;
0 10 2 b Lorg/graalvm/compiler/nodes/ValueNode;
2 6 3 equal Ljava/lang/Boolean;
7 10 3 view Lorg/graalvm/compiler/nodes/NodeView;
8 10 4 stampA Lorg/graalvm/compiler/core/common/type/Stamp;
9 10 5 stampB Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
tool
a
b
private boolean removeOrMaterializeIf(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 30
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 30
3: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 2
start local 2 4: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 3
start local 3 5: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 4
start local 4 6: aload 4
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
if_acmpne 30
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifeq 30
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifeq 30
7: aconst_null
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: aload 4
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 8
goto 16
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode int top java.util.Iterator
StackMap stack:
10: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 7
start local 7 11: aload 7
aload 2
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 12: aload 7
aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 13: aload 9
aload 10
if_acmpeq 16
14: iinc 6 1
15: aload 7
astore 5
end local 10 end local 9 end local 7 16: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
17: iload 6
ifne 20
18: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
19: iconst_1
ireturn
20: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode int
StackMap stack:
iload 6
iconst_1
if_icmpne 30
21: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 22
aload 5
ifnonnull 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 5
aload 2
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 23: aload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 24: aload 0
aload 1
aload 7
aload 8
invokevirtual org.graalvm.compiler.nodes.IfNode.canonicalizeConditionalCascade:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 25: aload 9
ifnull 30
26: aload 0
aload 9
invokevirtual org.graalvm.compiler.nodes.IfNode.proxyReplacement:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
27: aload 5
aload 2
aload 9
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
28: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
29: iconst_1
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 30: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.ReturnNode
ifeq 56
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.ReturnNode
ifeq 56
31: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 2
start local 2 32: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 3
start local 3 33: aload 2
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 34: aload 3
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 35: aconst_null
astore 6
start local 6 36: iconst_0
istore 7
start local 7 37: aload 4
ifnull 45
38: aload 4
aload 5
if_acmpne 41
39: aload 4
astore 6
40: goto 45
41: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ReturnNode org.graalvm.compiler.nodes.ReturnNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int
StackMap stack:
aload 0
aload 1
aload 4
aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.canonicalizeConditionalCascade:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
42: aload 6
ifnonnull 44
43: iconst_0
ireturn
44: StackMap locals:
StackMap stack:
iconst_1
istore 7
45: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 52
46: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 8
start local 8 47: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 48
aload 8
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
if_acmpeq 48
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
48: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.LoopExitNode
dup
aload 8
invokespecial org.graalvm.compiler.nodes.LoopExitNode.<init>:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 9
start local 9 49: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 9
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
50: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
ifeq 52
iload 7
ifeq 52
51: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValueProxyNode
dup
aload 6
aload 9
invokespecial org.graalvm.compiler.nodes.ValueProxyNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 6
end local 9 end local 8 52: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ReturnNode
dup
aload 6
invokespecial org.graalvm.compiler.nodes.ReturnNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 8
start local 8 53: aload 0
aload 8
invokevirtual org.graalvm.compiler.nodes.IfNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
54: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
55: iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 56: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 57 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
4 30 2 trueEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
5 30 3 falseEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
6 30 4 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
8 30 5 singlePhi Lorg/graalvm/compiler/nodes/PhiNode;
9 30 6 distinct I
11 16 7 phi Lorg/graalvm/compiler/nodes/PhiNode;
12 16 9 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
13 16 10 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
23 30 7 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
24 30 8 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
25 30 9 conditional Lorg/graalvm/compiler/nodes/ValueNode;
32 56 2 trueEnd Lorg/graalvm/compiler/nodes/ReturnNode;
33 56 3 falseEnd Lorg/graalvm/compiler/nodes/ReturnNode;
34 56 4 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
35 56 5 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
36 56 6 value Lorg/graalvm/compiler/nodes/ValueNode;
37 56 7 needsProxy Z
47 52 8 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
49 52 9 loopExitNode Lorg/graalvm/compiler/nodes/LoopExitNode;
53 56 8 newReturn Lorg/graalvm/compiler/nodes/ReturnNode;
MethodParameters:
Name Flags
tool
private org.graalvm.compiler.nodes.ValueNode proxyReplacement(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
ifeq 12
1: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 12
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 12
2: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifeq 9
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasUsages:()Z
ifeq 9
4: aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 2
start local 2 6: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 7
aload 2
instanceof org.graalvm.compiler.nodes.ProxyNode
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 2
checkcast org.graalvm.compiler.nodes.ProxyNode
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.ProxyNode.setProxyPoint:(Lorg/graalvm/compiler/nodes/LoopExitNode;)V
end local 2 8: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 11
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifeq 10
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.hasNoUsages:()Z
ifne 11
StackMap locals:
StackMap stack:
10: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValueProxyNode
dup
aload 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokespecial org.graalvm.compiler.nodes.ValueProxyNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 13 1 replacement Lorg/graalvm/compiler/nodes/ValueNode;
6 8 2 n Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
replacement
protected void removeThroughFalseBranch(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.AbstractMergeNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 3
start local 3 1: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 4
start local 4 2: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
3: aload 1
aload 3
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
4: aload 4
ifnull 6
5: aload 4
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
pop
6: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isAlive:()Z
ifeq 16
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
iconst_1
if_icmple 16
7: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LogicNode top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 5
start local 5 9: aload 5
astore 7
start local 7 10: goto 12
11: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.FixedNode java.util.Iterator org.graalvm.compiler.graph.Node
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
astore 7
12: StackMap locals:
StackMap stack:
aload 7
ifnull 13
aload 7
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.BeginNode
ifne 11
13: StackMap locals:
StackMap stack:
aload 7
ifnull 15
aload 7
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 15
14: aload 1
aload 7
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
end local 7 end local 5 15: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LogicNode top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
16: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 17 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 17 2 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
1 17 3 trueBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2 17 4 conditionNode Lorg/graalvm/compiler/nodes/LogicNode;
9 15 5 end Lorg/graalvm/compiler/nodes/FixedNode;
10 15 7 cur Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
tool
merge
private org.graalvm.compiler.nodes.ValueNode canonicalizeConditionalViaImplies(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
astore 3
start local 3 1: aload 2
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: aload 1
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 10
4: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iconst_0
aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.LogicNode.implies:(ZLorg/graalvm/compiler/nodes/LogicNode;)Ljdk/vm/ci/meta/TriState;
astore 6
start local 6 5: aload 6
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 10
6: iconst_1
istore 5
7: aload 6
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
ifeq 8
aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
goto 9
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int jdk.vm.ci.meta.TriState
StackMap stack:
8: aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.ValueNode
9: astore 3
end local 6 10: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 17
11: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iconst_1
aload 2
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.LogicNode.implies:(ZLorg/graalvm/compiler/nodes/LogicNode;)Ljdk/vm/ci/meta/TriState;
astore 6
start local 6 12: aload 6
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 17
13: iconst_1
istore 5
14: aload 6
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
ifeq 15
aload 2
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
goto 16
StackMap locals: jdk.vm.ci.meta.TriState
StackMap stack:
15: aload 2
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.ValueNode
16: astore 4
end local 6 17: StackMap locals:
StackMap stack:
iload 5
ifeq 19
18: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 3
aload 4
invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;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.ValueNode
areturn
19: StackMap locals:
StackMap stack:
aconst_null
areturn
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 20 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 20 1 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
0 20 2 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
1 20 3 collapsedTrue Lorg/graalvm/compiler/nodes/ValueNode;
2 20 4 collapsedFalse Lorg/graalvm/compiler/nodes/ValueNode;
3 20 5 simplify Z
5 10 6 result Ljdk/vm/ci/meta/TriState;
12 17 6 result Ljdk/vm/ci/meta/TriState;
MethodParameters:
Name Flags
trueValue
falseValue
private org.graalvm.compiler.nodes.ValueNode canonicalizeConditionalCascade(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=38, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
5: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 2
aload 3
invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;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.ValueNode
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.canonicalizeConditionalViaImplies:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 7: aload 4
ifnull 9
8: aload 4
areturn
9: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterExpandLogic:()Z
ifne 96
10: aconst_null
astore 5
start local 5 11: aconst_null
astore 6
start local 6 12: aload 2
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 17
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 17
13: aload 2
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 5
14: aload 3
astore 6
15: iconst_1
istore 7
start local 7 16: goto 23
end local 7 StackMap locals: org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
17: aload 3
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 22
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 22
18: aload 3
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 5
19: aload 2
astore 6
20: iconst_0
istore 7
start local 7 21: goto 23
end local 7 22: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 7 23: StackMap locals: int
StackMap stack:
iconst_0
istore 8
start local 8 24: aconst_null
astore 9
start local 9 25: aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 29
26: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
27: iconst_0
istore 8
28: goto 32
StackMap locals: int org.graalvm.compiler.nodes.ValueNode
StackMap stack:
29: aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 32
30: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
31: iconst_1
istore 8
32: StackMap locals:
StackMap stack:
aload 9
ifnull 36
aload 9
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 36
33: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
dstore 10
start local 10 34: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iload 7
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iload 8
dload 10
invokestatic org.graalvm.compiler.nodes.LogicNode.or:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZD)Lorg/graalvm/compiler/nodes/LogicNode;
astore 12
start local 12 35: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 12
aload 6
aload 9
invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;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.ValueNode
areturn
end local 12 end local 10 36: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 96
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 96
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 96
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 96
37: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 96
38: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 10
start local 10 39: aload 10
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 11
start local 11 40: iload 7
ifeq 42
41: aload 11
invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 11
42: StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 12
start local 12 43: aload 12
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 13
start local 13 44: aload 10
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 14
start local 14 45: aload 10
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 15
start local 15 46: aload 12
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 47: aload 12
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 17
start local 17 48: aload 14
aload 16
if_acmpne 49
aload 15
aload 17
if_acmpne 49
iconst_1
goto 50
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode int int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
49: iconst_0
StackMap locals:
StackMap stack: int
50: istore 18
start local 18 51: iload 18
ifne 54
aload 14
aload 17
if_acmpne 54
aload 15
aload 16
if_acmpne 54
52: iconst_1
istore 18
53: aload 13
invokevirtual org.graalvm.compiler.core.common.calc.Condition.mirror:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 13
54: StackMap locals: int
StackMap stack:
iload 18
ifeq 96
55: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)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;
astore 19
start local 19 56: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 57
aload 19
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
ifeq 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 20
start local 20 58: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 22
start local 22 59: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 24
start local 24 60: aload 13
aload 11
invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.join:(Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/core/common/calc/Condition;
astore 13
61: aload 13
ifnonnull 63
62: aconst_null
areturn
63: StackMap locals: long long long
StackMap stack:
aload 11
invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
aload 13
invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.join:(Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/core/common/calc/Condition;
astore 26
start local 26 64: aload 26
ifnonnull 66
65: aconst_null
areturn
66: StackMap locals: org.graalvm.compiler.core.common.calc.Condition
StackMap stack:
aload 11
invokevirtual org.graalvm.compiler.core.common.calc.Condition.isUnsigned:()Z
ifne 67
aload 13
invokevirtual org.graalvm.compiler.core.common.calc.Condition.isUnsigned:()Z
ifne 67
iconst_0
goto 68
StackMap locals:
StackMap stack:
67: iconst_1
StackMap locals:
StackMap stack: int
68: istore 27
start local 27 69: aload 14
aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)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.FloatStamp
istore 28
start local 28 70: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 71
iload 28
ifeq 71
aload 15
aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)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.FloatStamp
ifne 71
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
71: StackMap locals: int int
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 72
iload 28
ifeq 72
iload 27
ifeq 72
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
72: StackMap locals:
StackMap stack:
aload 11
invokestatic org.graalvm.compiler.nodes.IfNode.expectedConstantForNormalize:(Lorg/graalvm/compiler/core/common/calc/Condition;)J
lstore 29
start local 29 73: aload 13
invokestatic org.graalvm.compiler.nodes.IfNode.expectedConstantForNormalize:(Lorg/graalvm/compiler/core/common/calc/Condition;)J
lstore 31
start local 31 74: aload 26
invokestatic org.graalvm.compiler.nodes.IfNode.expectedConstantForNormalize:(Lorg/graalvm/compiler/core/common/calc/Condition;)J
lstore 33
start local 33 75: lload 20
lload 29
lcmp
ifne 76
lload 22
lload 31
lcmp
ifne 76
lload 24
lload 33
lcmp
ifeq 82
76: StackMap locals: long long long
StackMap stack:
lload 20
lconst_0
lload 29
lsub
lcmp
ifne 81
lload 22
lconst_0
lload 31
lsub
lcmp
ifne 81
lload 24
lconst_0
lload 33
lsub
lcmp
ifne 81
77: aload 14
astore 35
start local 35 78: aload 15
astore 14
79: aload 35
astore 15
end local 35 80: goto 82
81: StackMap locals:
StackMap stack:
aconst_null
areturn
82: StackMap locals:
StackMap stack:
iload 28
ifeq 95
83: iconst_0
istore 35
start local 35 84: aload 14
getfield org.graalvm.compiler.nodes.ValueNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.FloatStamp
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.canBeNaN:()Z
ifne 85
aload 15
getfield org.graalvm.compiler.nodes.ValueNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.FloatStamp
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.canBeNaN:()Z
ifeq 94
85: StackMap locals: int
StackMap stack:
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 86
lload 20
goto 88
StackMap locals:
StackMap stack:
86: aload 12
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 87
lload 22
goto 88
StackMap locals:
StackMap stack:
87: lload 24
StackMap locals:
StackMap stack: long
88: lstore 36
start local 36 89: lload 36
lconst_0
lcmp
ifne 91
90: aconst_null
areturn
91: StackMap locals: long
StackMap stack:
lload 36
ldc -1
lcmp
ifne 92
iconst_1
goto 93
StackMap locals:
StackMap stack:
92: iconst_0
StackMap locals:
StackMap stack: int
93: istore 35
end local 36 94: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.FloatNormalizeCompareNode
dup
aload 14
aload 15
aload 19
iload 35
invokespecial org.graalvm.compiler.nodes.calc.FloatNormalizeCompareNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Z)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 35 95: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerNormalizeCompareNode
dup
aload 14
aload 15
aload 19
iload 27
invokespecial org.graalvm.compiler.nodes.calc.IntegerNormalizeCompareNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Z)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 33 end local 31 end local 29 end local 28 end local 27 end local 26 end local 24 end local 22 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 96: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 97 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 97 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 97 2 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
0 97 3 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
7 97 4 value Lorg/graalvm/compiler/nodes/ValueNode;
11 96 5 conditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
12 96 6 constant Lorg/graalvm/compiler/nodes/ValueNode;
16 17 7 negateCondition Z
21 22 7 negateCondition Z
23 96 7 negateCondition Z
24 96 8 negateConditionalCondition Z
25 96 9 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
34 36 10 shortCutProbability D
35 36 12 newCondition Lorg/graalvm/compiler/nodes/LogicNode;
39 96 10 condition1 Lorg/graalvm/compiler/nodes/calc/CompareNode;
40 96 11 cond1 Lorg/graalvm/compiler/core/common/calc/Condition;
43 96 12 condition2 Lorg/graalvm/compiler/nodes/calc/CompareNode;
44 96 13 cond2 Lorg/graalvm/compiler/core/common/calc/Condition;
45 96 14 x Lorg/graalvm/compiler/nodes/ValueNode;
46 96 15 y Lorg/graalvm/compiler/nodes/ValueNode;
47 96 16 x2 Lorg/graalvm/compiler/nodes/ValueNode;
48 96 17 y2 Lorg/graalvm/compiler/nodes/ValueNode;
51 96 18 sameVars Z
56 96 19 stackKind Ljdk/vm/ci/meta/JavaKind;
58 96 20 c1 J
59 96 22 c2 J
60 96 24 c3 J
64 96 26 cond3 Lorg/graalvm/compiler/core/common/calc/Condition;
69 96 27 unsigned Z
70 96 28 floatingPoint Z
73 96 29 expected1 J
74 96 31 expected2 J
75 96 33 expected3 J
78 80 35 tmp Lorg/graalvm/compiler/nodes/ValueNode;
84 95 35 unorderedLess Z
89 94 36 unorderedValue J
MethodParameters:
Name Flags
tool
trueValue
falseValue
private static long expectedConstantForNormalize(org.graalvm.compiler.core.common.calc.Condition);
descriptor: (Lorg/graalvm/compiler/core/common/calc/Condition;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 2
1: lconst_0
lreturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.LT:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpeq 3
aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.BT:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 4
3: StackMap locals:
StackMap stack:
ldc -1
lreturn
4: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 5
aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.GT:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpeq 5
aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.AT:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
lconst_1
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 condition Lorg/graalvm/compiler/core/common/calc/Condition;
MethodParameters:
Name Flags
condition
private boolean removeIntermediateMaterialization(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=19, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 2
start local 2 3: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifne 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 3
start local 3 6: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getUsageCount:()I
iconst_1
if_icmpeq 8
7: iconst_0
ireturn
8: StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
astore 4
start local 4 9: aload 4
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpeq 11
10: iconst_0
ireturn
11: StackMap locals: org.graalvm.compiler.graph.iterators.NodeIterable
StackMap stack:
aload 4
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
astore 5
start local 5 12: aload 5
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 13
aload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 14
aload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 14
13: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
iconst_0
ireturn
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isUsedAsGuardInput:()Z
ifne 15
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isUsedAsGuardInput:()Z
ifeq 16
15: StackMap locals:
StackMap stack:
iconst_0
ireturn
16: StackMap locals:
StackMap stack:
aload 5
checkcast org.graalvm.compiler.nodes.ValuePhiNode
astore 6
start local 6 17: aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
astore 7
start local 7 18: aload 7
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 9
goto 29
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
StackMap stack:
19: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 20: aload 8
aload 3
if_acmpne 22
21: goto 29
22: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 8
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
if_acmpne 24
23: goto 29
24: StackMap locals:
StackMap stack:
aload 8
instanceof org.graalvm.compiler.nodes.ValueProxyNode
ifeq 28
25: aload 8
checkcast org.graalvm.compiler.nodes.ValueProxyNode
astore 10
start local 10 26: aload 10
invokevirtual org.graalvm.compiler.nodes.ValueProxyNode.proxyPoint:()Lorg/graalvm/compiler/nodes/LoopExitNode;
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpeq 29
aload 10
invokevirtual org.graalvm.compiler.nodes.ValueProxyNode.proxyPoint:()Lorg/graalvm/compiler/nodes/LoopExitNode;
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpne 28
27: goto 29
end local 10 28: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 8 29: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
30: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.cfgPredecessors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
astore 8
start local 8 31: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 32
aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueCount:()I
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
if_icmpeq 32
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
32: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
iconst_0
invokestatic org.graalvm.compiler.nodes.IfNode.constantValues:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Z)[Ljdk/vm/ci/meta/Constant;
astore 9
start local 9 33: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
iconst_0
invokestatic org.graalvm.compiler.nodes.IfNode.constantValues:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Z)[Ljdk/vm/ci/meta/Constant;
astore 10
start local 10 34: aload 9
ifnull 35
aload 10
ifnonnull 36
35: StackMap locals: jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[]
StackMap stack:
iconst_0
ireturn
36: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 38
aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.mayRemoveSplit:(Lorg/graalvm/compiler/nodes/IfNode;)Z
ifne 38
37: iconst_0
ireturn
38: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 8
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 11
start local 11 39: new java.util.ArrayList
dup
aload 8
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 12
start local 12 40: getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
aload 8
invokeinterface java.util.List.size:()I
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
astore 13
start local 13 41: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 14
start local 14 42: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 15
start local 15 43: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
44: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
45: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
start local 16 46: iconst_0
istore 17
start local 17 47: goto 55
48: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[] java.util.List java.util.List jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator int
StackMap stack:
aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.EndNode
astore 18
start local 18 49: aload 13
aload 18
aload 6
aload 18
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
50: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
aload 9
iload 17
aaload
aload 10
iload 17
aaload
aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
ifeq 53
51: aload 12
aload 18
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
52: goto 54
53: StackMap locals: org.graalvm.compiler.nodes.EndNode
StackMap stack:
aload 11
aload 18
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 18 54: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
55: iload 17
aload 9
arraylength
if_icmplt 48
end local 17 56: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 57
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 58
aload 11
invokeinterface java.util.List.size:()I
aload 12
invokeinterface java.util.List.size:()I
iadd
aload 9
arraylength
if_icmpeq 58
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
58: StackMap locals:
StackMap stack:
aload 0
aload 11
aload 6
aload 13
aload 14
aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.connectEnds:(Ljava/util/List;Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
59: aload 0
aload 12
aload 6
aload 13
aload 15
aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.connectEnds:(Ljava/util/List;Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
60: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 65
61: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 64
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[] java.util.List java.util.List jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
62: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 17
start local 17 63: aload 17
invokestatic org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 17 64: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 62
65: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[] java.util.List java.util.List jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifne 70
66: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 69
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[] java.util.List java.util.List jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
67: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 17
start local 17 68: aload 17
invokestatic org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 17 69: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 67
70: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable java.util.List jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[] java.util.List java.util.List jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.List.isEmpty:()Z
ifeq 72
71: aload 14
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
72: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.List.isEmpty:()Z
ifeq 74
73: aload 15
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
74: StackMap locals:
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
75: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 76
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isAlive:()Z
ifeq 76
new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
76: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 77
aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.isAlive:()Z
ifeq 77
new java.lang.AssertionError
dup
aload 6
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
77: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 78
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.isAlive:()Z
ifeq 78
new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
78: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 79
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.isAlive:()Z
ifeq 79
new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
79: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 16 end local 15 end local 14 end local 13 end local 12 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 80 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 80 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 80 2 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
6 80 3 compare Lorg/graalvm/compiler/nodes/calc/CompareNode;
9 80 4 mergeUsages Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
12 80 5 singleUsage Lorg/graalvm/compiler/graph/Node;
17 80 6 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
18 80 7 phiUsages Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
20 29 8 usage Lorg/graalvm/compiler/graph/Node;
26 28 10 proxy Lorg/graalvm/compiler/nodes/ValueProxyNode;
31 80 8 mergePredecessors Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
33 80 9 xs [Ljdk/vm/ci/meta/Constant;
34 80 10 ys [Ljdk/vm/ci/meta/Constant;
39 80 11 falseEnds Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
40 80 12 trueEnds Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
41 80 13 phiValues Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;>;
42 80 14 oldFalseSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
43 80 15 oldTrueSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
46 80 16 ends Ljava/util/Iterator<Lorg/graalvm/compiler/nodes/EndNode;>;
47 56 17 i I
49 54 18 end Lorg/graalvm/compiler/nodes/EndNode;
63 64 17 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
68 69 17 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
tool
private static void propagateZeroProbability(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.predecessorIterable:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 3
goto 27
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 2
start local 2 3: aload 2
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 20
4: aload 2
checkcast org.graalvm.compiler.nodes.IfNode
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
if_acmpne 12
6: aload 4
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 8
7: return
8: StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.FixedNode java.util.Iterator org.graalvm.compiler.nodes.IfNode
StackMap stack:
aload 4
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifne 10
9: goto 27
10: StackMap locals:
StackMap stack:
aload 4
dconst_0
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
11: return
12: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 1
if_acmpne 19
13: aload 4
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifne 15
14: return
15: StackMap locals:
StackMap stack:
aload 4
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 17
16: goto 27
17: StackMap locals:
StackMap stack:
aload 4
dconst_1
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
18: return
19: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "Illegal state"
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
end local 4 20: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 26
aload 2
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifne 26
21: aload 2
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.cfgPredecessors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 24
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.FixedNode java.util.Iterator top java.util.Iterator
StackMap stack:
22: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 4
start local 4 23: aload 4
invokestatic org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 4 24: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: return
26: StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.FixedNode java.util.Iterator
StackMap stack:
aload 2
astore 1
end local 2 27: StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
28: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 startNode Lorg/graalvm/compiler/nodes/FixedNode;
1 29 1 prev Lorg/graalvm/compiler/graph/Node;
3 27 2 node Lorg/graalvm/compiler/nodes/FixedNode;
5 20 4 ifNode Lorg/graalvm/compiler/nodes/IfNode;
23 24 4 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
startNode
private void connectEnds(java.util.List<org.graalvm.compiler.nodes.EndNode>, org.graalvm.compiler.nodes.ValuePhiNode, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.AbstractEndNode, org.graalvm.compiler.nodes.ValueNode>, org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.AbstractMergeNode, org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Ljava/util/List;Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifne 35
1: aconst_null
astore 7
start local 7 2: aload 4
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 8
3: aload 2
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 9
goto 7
StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode top java.util.Iterator
StackMap stack:
4: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 5: aload 8
instanceof org.graalvm.compiler.nodes.ValueProxyNode
ifeq 7
aload 8
checkcast org.graalvm.compiler.nodes.ValueProxyNode
invokevirtual org.graalvm.compiler.nodes.ValueProxyNode.proxyPoint:()Lorg/graalvm/compiler/nodes/LoopExitNode;
aload 4
if_acmpne 7
6: aload 8
checkcast org.graalvm.compiler.nodes.ValueProxyNode
astore 7
end local 8 7: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode
StackMap stack:
aload 7
astore 8
start local 8 9: aload 1
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 17
10: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 9
start local 9 11: aload 8
ifnull 13
12: aload 2
aload 3
aload 9
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
aload 8
invokedynamic test(Lorg/graalvm/compiler/nodes/ValueProxyNode;)Ljava/util/function/Predicate;
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;)Z
org/graalvm/compiler/nodes/IfNode.lambda$0(Lorg/graalvm/compiler/nodes/ValueProxyNode;Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Ljava/util/function/Predicate;)V
13: StackMap locals: org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.AbstractEndNode
StackMap stack:
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
aload 4
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
14: aload 5
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
15: aload 9
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 9 16: goto 34
17: StackMap locals:
StackMap stack:
aload 6
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 9
start local 9 18: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.MergeNode
dup
invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 10
start local 10 19: aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 11
start local 11 20: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 11
aload 9
invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 10
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 12
start local 12 21: aload 8
ifnull 23
22: aload 2
aload 12
aload 8
invokedynamic test(Lorg/graalvm/compiler/nodes/ValueProxyNode;)Ljava/util/function/Predicate;
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;)Z
org/graalvm/compiler/nodes/IfNode.lambda$1(Lorg/graalvm/compiler/nodes/ValueProxyNode;Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Ljava/util/function/Predicate;)V
23: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 27
StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
24: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.EndNode
astore 13
start local 13 25: aload 12
aload 3
aload 13
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
26: aload 10
aload 13
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
end local 13 27: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
28: aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 13
start local 13 29: aload 13
ifnull 33
30: aload 13
invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
astore 13
31: aload 13
aload 11
aload 12
invokevirtual org.graalvm.compiler.nodes.FrameState.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
32: aload 10
aload 13
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
33: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.FrameState
StackMap stack:
aload 10
aload 4
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 13 end local 12 end local 11 end local 10 end local 9 34: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List org.graalvm.compiler.nodes.ValuePhiNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.ValueProxyNode
StackMap stack:
aload 6
aload 4
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
end local 8 end local 7 35: StackMap locals:
StackMap stack:
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 36 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 36 1 ends Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
0 36 2 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 36 3 phiValues Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;>;
0 36 4 successor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 36 5 oldMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 36 6 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
2 35 7 valueProxy Lorg/graalvm/compiler/nodes/ValueProxyNode;
5 7 8 usage Lorg/graalvm/compiler/graph/Node;
9 35 8 proxy Lorg/graalvm/compiler/nodes/ValueProxyNode;
11 16 9 end Lorg/graalvm/compiler/nodes/AbstractEndNode;
18 34 9 view Lorg/graalvm/compiler/nodes/NodeView;
19 34 10 newMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
20 34 11 oldPhi Lorg/graalvm/compiler/nodes/PhiNode;
21 34 12 newPhi Lorg/graalvm/compiler/nodes/PhiNode;
25 27 13 end Lorg/graalvm/compiler/nodes/EndNode;
29 34 13 stateAfter Lorg/graalvm/compiler/nodes/FrameState;
Signature: (Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;>;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
MethodParameters:
Name Flags
ends
phi
phiValues
successor
oldMerge
tool
public static jdk.vm.ci.meta.Constant[] constantValues(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.AbstractMergeNode, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Z)[Ljdk/vm/ci/meta/Constant;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 4
1: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
anewarray jdk.vm.ci.meta.Constant
astore 3
start local 3 2: aload 3
aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.PhiNode
ifeq 16
5: aload 0
checkcast org.graalvm.compiler.nodes.PhiNode
astore 3
start local 3 6: aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 1
if_acmpne 16
aload 3
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 16
aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
if_icmpne 16
7: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
anewarray jdk.vm.ci.meta.Constant
astore 4
start local 4 8: iconst_0
istore 5
start local 5 9: aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.values:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 7
goto 14
StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractMergeNode int org.graalvm.compiler.nodes.PhiNode jdk.vm.ci.meta.Constant[] int top java.util.Iterator
StackMap stack:
10: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 6
start local 6 11: iload 2
ifne 13
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 13
12: aconst_null
areturn
13: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractMergeNode int org.graalvm.compiler.nodes.PhiNode jdk.vm.ci.meta.Constant[] int org.graalvm.compiler.nodes.ValueNode java.util.Iterator
StackMap stack:
aload 4
iload 5
iinc 5 1
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
aastore
end local 6 14: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractMergeNode int org.graalvm.compiler.nodes.PhiNode jdk.vm.ci.meta.Constant[] int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
15: aload 4
areturn
end local 5 end local 4 end local 3 16: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.AbstractMergeNode int
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 node Lorg/graalvm/compiler/nodes/ValueNode;
0 17 1 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 17 2 allowNull Z
2 4 3 result [Ljdk/vm/ci/meta/Constant;
6 16 3 phi Lorg/graalvm/compiler/nodes/PhiNode;
8 16 4 result [Ljdk/vm/ci/meta/Constant;
9 16 5 i I
11 14 6 n Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
node
merge
allowNull
public org.graalvm.compiler.nodes.AbstractBeginNode getPrimarySuccessor();
descriptor: ()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
public org.graalvm.compiler.nodes.AbstractBeginNode getSuccessor(boolean);
descriptor: (Z)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.AbstractBeginNode
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 3 1 result Z
MethodParameters:
Name Flags
result
public boolean setProbability(org.graalvm.compiler.nodes.AbstractBeginNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpne 3
1: aload 0
dload 2
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpne 6
4: aload 0
dconst_1
dload 2
dsub
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 7 1 successor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 7 2 value D
MethodParameters:
Name Flags
successor
value
public int getSuccessorCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_2
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/IfNode;
private static boolean lambda$0(org.graalvm.compiler.nodes.ValueProxyNode, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/nodes/ValueProxyNode;Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 n Lorg/graalvm/compiler/graph/Node;
private static boolean lambda$1(org.graalvm.compiler.nodes.ValueProxyNode, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/nodes/ValueProxyNode;Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 n Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "IfNode.java"
NestMembers:
org.graalvm.compiler.nodes.IfNode$NodeColor
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
public abstract Successor = org.graalvm.compiler.graph.Node$Successor of org.graalvm.compiler.graph.Node
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public final NodeColor = org.graalvm.compiler.nodes.IfNode$NodeColor of org.graalvm.compiler.nodes.IfNode
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2:Lorg/graalvm/compiler/nodeinfo/NodeSize;, sizeRationale = "2 jmps")