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
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.DebugCounter CORRECTED_PROBABILITIES;
descriptor: Lorg/graalvm/compiler/debug/DebugCounter;
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.Debug.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugCounter;
putstatic org.graalvm.compiler.nodes.IfNode.CORRECTED_PROBABILITIES:Lorg/graalvm/compiler/debug/DebugCounter;
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;
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=9, 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/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()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/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()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.splitIfAtPhi:(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.conditionalNodeOptimization:(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 54
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifne 54
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 54
33: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 34: 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 35: 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 36: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dload 4
dcmpg
ifge 54
37: aload 1
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
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:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;)Z
ifeq 54
38: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 39
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 3
if_acmpeq 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: 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 40: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
41: aload 2
aconst_null
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
42: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
43: aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
44: aload 3
aload 2
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
45: aload 2
aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
46: aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
47: aload 3
dload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
48: dload 4
dconst_1
dcmpl
ifne 51
49: aload 0
dconst_0
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
50: goto 53
51: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dload 4
dsub
ddiv
dstore 7
start local 7 52: aload 0
dconst_1
dload 7
invokestatic java.lang.Math.min:(DD)D
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
end local 7 53: StackMap locals:
StackMap stack:
return
end local 6 end local 4 end local 3 end local 2 54: 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 55 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 55 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
13 22 2 c Lorg/graalvm/compiler/nodes/LogicConstantNode;
34 54 2 intermediateBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
35 54 3 nextIf Lorg/graalvm/compiler/nodes/IfNode;
36 54 4 probabilityB D
40 54 6 bothFalseBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
52 53 7 newProbability D
MethodParameters:
Name Flags
tool
private boolean conditionalNodeOptimization(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, 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 20
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 20
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.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpne 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 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 11: 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 12: 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 13: aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
aload 7
aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
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/ValueNode;
astore 8
start local 8 14: aload 8
ifnull 20
15: aload 8
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
ifnonnull 17
16: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 8
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 8
17: 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.ValueNode
StackMap stack:
aload 5
aload 2
aload 8
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
18: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
19: iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 20: 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 21 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 21 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
2 20 2 trueEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
3 20 3 falseEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
8 20 4 merge Lorg/graalvm/compiler/nodes/MergeNode;
11 20 5 phi Lorg/graalvm/compiler/nodes/PhiNode;
12 20 6 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
13 20 7 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
14 20 8 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 26
aload 3
instanceof org.graalvm.compiler.nodes.BeginNode
ifeq 26
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 26
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 26
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 26
9: 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 26
aload 4
aload 5
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.valueEquals:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 26
10: aload 5
aload 4
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
11: 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
12: aload 4
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unlinkFixedNode:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
13: 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
14: 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 24
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:
15: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 16: aload 7
invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
ifeq 24
17: aload 7
invokevirtual org.graalvm.compiler.graph.Node.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
astore 9
start local 9 18: aload 9
invokevirtual org.graalvm.compiler.graph.NodeClass.valueNumberable:()Z
ifeq 22
aload 9
invokevirtual org.graalvm.compiler.graph.NodeClass.isLeafNode:()Z
ifne 22
19: 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 20: aload 10
ifnull 22
21: aload 7
aload 10
invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
end local 10 22: 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 24
23: aload 1
aload 7
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 end local 7 24: 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 15
end local 6 end local 5 end local 4 end local 3 end local 2 25: goto 2
26: 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 27 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 27 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 25 2 trueSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
4 25 3 falseSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
6 25 4 trueNext Lorg/graalvm/compiler/nodes/FixedWithNextNode;
7 25 5 falseNext Lorg/graalvm/compiler/nodes/FixedWithNextNode;
8 25 6 nodeClass Lorg/graalvm/compiler/graph/NodeClass<*>;
16 24 7 usage Lorg/graalvm/compiler/graph/Node;
18 24 9 usageNodeClass Lorg/graalvm/compiler/graph/NodeClass<*>;
20 22 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=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.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 33
3: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 2
start local 2 4: aload 2
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 3
start local 3 5: aload 3
instanceof jdk.vm.ci.meta.PrimitiveConstant
ifeq 33
aload 3
checkcast jdk.vm.ci.meta.PrimitiveConstant
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lconst_0
lcmp
ifne 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;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 33
6: 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 4
start local 4 7: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 33
8: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 5
start local 5 9: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 6
start local 6 10: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 7
start local 7 11: aconst_null
astore 8
start local 8 12: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 19
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 19
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 19
13: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 4
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 19
14: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
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 8
15: aload 6
astore 9
start local 9 16: aload 7
astore 6
17: aload 9
astore 7
end local 9 18: goto 24
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool 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:
19: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 24
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 4
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 24
20: aload 5
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 9
start local 9 21: aload 9
ifnull 24
aload 9
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lconst_0
lcmp
ifle 24
aload 9
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
aload 9
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getMaxValue:()J
lcmp
ifge 24
22: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 9
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 10
start local 10 23: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.IntegerBelowNode
dup
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
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 10 end local 9 24: StackMap locals:
StackMap stack:
aload 8
ifnull 33
25: aload 4
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
26: aload 4
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
27: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.IfNode
dup
aload 8
aload 6
aload 7
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 9
start local 9 28: 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
29: 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
30: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
aload 4
aload 9
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstSuccessor:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
31: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.safeDelete:()V
32: 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 33: 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 34 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 34 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
4 33 2 lessThan Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
5 33 3 y Ljdk/vm/ci/meta/Constant;
7 33 4 ifNode2 Lorg/graalvm/compiler/nodes/IfNode;
9 33 5 lessThan2 Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
10 33 6 falseSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
11 33 7 trueSucc Lorg/graalvm/compiler/nodes/AbstractBeginNode;
12 33 8 below Lorg/graalvm/compiler/nodes/calc/IntegerBelowNode;
16 18 9 tmp Lorg/graalvm/compiler/nodes/AbstractBeginNode;
21 24 9 positive Ljdk/vm/ci/meta/JavaConstant;
23 24 10 newLimit Lorg/graalvm/compiler/nodes/ConstantNode;
28 33 9 newIfNode Lorg/graalvm/compiler/nodes/IfNode;
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.reason:()Ljdk/vm/ci/meta/DeoptimizationReason;
aload 5
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.reason:()Ljdk/vm/ci/meta/DeoptimizationReason;
if_acmpne 27
aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.action:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 5
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.action:()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(jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.LogicNode);
descriptor: (Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof org.graalvm.compiler.nodes.java.InstanceOfNode
ifeq 13
1: aload 1
checkcast org.graalvm.compiler.nodes.java.InstanceOfNode
astore 3
start local 3 2: aload 2
instanceof org.graalvm.compiler.nodes.calc.IsNullNode
ifeq 7
3: aload 2
checkcast org.graalvm.compiler.nodes.calc.IsNullNode
astore 4
start local 4 4: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.IsNullNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 53
5: ldc "Can swap instanceof and isnull if"
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
6: iconst_1
ireturn
end local 4 7: StackMap locals: org.graalvm.compiler.nodes.java.InstanceOfNode
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.java.InstanceOfNode
ifeq 53
8: aload 2
checkcast org.graalvm.compiler.nodes.java.InstanceOfNode
astore 4
start local 4 9: aload 3
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 53
aload 3
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 53
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 53
10: aload 3
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 53
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 3
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 53
11: ldc "Can swap instanceof for types %s and %s"
aload 3
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
aload 4
invokevirtual org.graalvm.compiler.nodes.java.InstanceOfNode.type:()Lorg/graalvm/compiler/core/common/type/TypeReference;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
12: iconst_1
ireturn
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 53
14: aload 1
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 3
start local 3 15: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 4
start local 4 16: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 18
17: iconst_0
ireturn
18: 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 53
19: aload 2
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 5
start local 5 20: aload 3
aload 5
if_acmpne 23
21: ldc "Same conditions => do not swap and leave the work for global value numbering."
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
22: iconst_0
ireturn
23: StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
ifeq 25
24: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 26: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 7
start local 7 27: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 30
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 30
28: aload 7
astore 6
29: goto 32
StackMap locals: org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.core.common.calc.Condition
StackMap stack:
30: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 32
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 32
31: aload 7
invokevirtual org.graalvm.compiler.core.common.calc.Condition.mirror:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 6
32: StackMap locals:
StackMap stack:
aload 6
ifnull 37
33: aload 4
aload 6
invokevirtual org.graalvm.compiler.core.common.calc.Condition.join:(Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/core/common/calc/Condition;
astore 8
start local 8 34: aload 8
ifnonnull 53
35: ldc "Can swap disjoint coditions on same values: %s and %s"
aload 4
aload 6
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
36: iconst_1
ireturn
end local 8 37: StackMap locals:
StackMap stack:
aload 4
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 53
aload 7
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
if_acmpne 53
38: iconst_0
istore 8
start local 8 39: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 42
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 42
40: iconst_1
istore 8
41: goto 50
StackMap locals: int
StackMap stack:
42: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 45
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 45
43: iconst_1
istore 8
44: goto 50
StackMap locals:
StackMap stack:
45: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 48
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 48
46: iconst_1
istore 8
47: goto 50
StackMap locals:
StackMap stack:
48: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 50
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.IfNode.valuesDistinct:(Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 50
49: iconst_1
istore 8
50: StackMap locals:
StackMap stack:
iload 8
ifeq 53
51: ldc "Can swap equality condition with one shared and one disjoint value."
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
52: iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 53: StackMap locals: jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
0 54 1 a Lorg/graalvm/compiler/nodes/LogicNode;
0 54 2 b Lorg/graalvm/compiler/nodes/LogicNode;
2 13 3 instanceOfA Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
4 7 4 isNullNode Lorg/graalvm/compiler/nodes/calc/IsNullNode;
9 13 4 instanceOfB Lorg/graalvm/compiler/nodes/java/InstanceOfNode;
15 53 3 compareA Lorg/graalvm/compiler/nodes/calc/CompareNode;
16 53 4 conditionA Lorg/graalvm/compiler/core/common/calc/Condition;
20 53 5 compareB Lorg/graalvm/compiler/nodes/calc/CompareNode;
26 53 6 comparableCondition Lorg/graalvm/compiler/core/common/calc/Condition;
27 53 7 conditionB Lorg/graalvm/compiler/core/common/calc/Condition;
34 37 8 combined Lorg/graalvm/compiler/core/common/calc/Condition;
39 53 8 canSwap Z
MethodParameters:
Name Flags
constantReflection
a
b
private static boolean valuesDistinct(jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, 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
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 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 3
start local 3 7: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 8: aload 3
aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.alwaysDistinct:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
0 9 1 a Lorg/graalvm/compiler/nodes/ValueNode;
0 9 2 b Lorg/graalvm/compiler/nodes/ValueNode;
2 6 3 equal Ljava/lang/Boolean;
7 9 3 stampA Lorg/graalvm/compiler/core/common/type/Stamp;
8 9 4 stampB Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
constantReflection
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=4, 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 28
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 28
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 28
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 28
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 28
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
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)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 28
21: 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 22: 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 23: aload 0
aload 7
aload 8
invokevirtual org.graalvm.compiler.nodes.IfNode.canonicalizeConditionalCascade:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
astore 9
start local 9 24: aload 9
ifnull 28
25: aload 5
aload 2
aload 9
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
26: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.removeThroughFalseBranch:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
27: 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 28: 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 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;
instanceof org.graalvm.compiler.nodes.ReturnNode
ifeq 45
29: 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 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;
checkcast org.graalvm.compiler.nodes.ReturnNode
astore 3
start local 3 31: aload 2
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 32: aload 3
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 33: aconst_null
astore 6
start local 6 34: aload 4
ifnull 41
35: aload 4
aload 5
if_acmpne 38
36: aload 4
astore 6
37: goto 41
38: 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
StackMap stack:
aload 0
aload 4
aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.canonicalizeConditionalCascade:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
astore 6
39: aload 6
ifnonnull 41
40: iconst_0
ireturn
41: 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 7
start local 7 42: aload 0
aload 7
invokevirtual org.graalvm.compiler.nodes.IfNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
43: aload 0
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
44: iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 45: 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 46 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 46 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
4 28 2 trueEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
5 28 3 falseEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
6 28 4 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
8 28 5 singlePhi Lorg/graalvm/compiler/nodes/PhiNode;
9 28 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;
22 28 7 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
23 28 8 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
24 28 9 conditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
30 45 2 trueEnd Lorg/graalvm/compiler/nodes/ReturnNode;
31 45 3 falseEnd Lorg/graalvm/compiler/nodes/ReturnNode;
32 45 4 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
33 45 5 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
34 45 6 value Lorg/graalvm/compiler/nodes/ValueNode;
42 45 7 newReturn Lorg/graalvm/compiler/nodes/ReturnNode;
MethodParameters:
Name Flags
tool
protected void removeThroughFalseBranch(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
2: aload 1
aload 2
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
3: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
ifnull 5
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.LogicNode.isAlive:()Z
ifeq 5
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.LogicNode.hasNoUsages:()Z
ifeq 5
4: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
5: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
return
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 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
1 6 2 trueBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
tool
private org.graalvm.compiler.nodes.calc.ConditionalNode canonicalizeConditionalCascade(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/calc/ConditionalNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
aload 2
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 1
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 1
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 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
aload 2
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 1
aload 2
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.calc.ConditionalNode
areturn
6: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 7: aconst_null
astore 4
start local 4 8: aload 1
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 13
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 13
9: aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 3
10: aload 2
astore 4
11: iconst_1
istore 5
start local 5 12: goto 19
end local 5 StackMap locals: org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
13: aload 2
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 18
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 18
14: aload 2
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 3
15: aload 1
astore 4
16: iconst_0
istore 5
start local 5 17: goto 19
end local 5 18: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 5 19: StackMap locals: int
StackMap stack:
aload 4
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 23
20: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 21: iconst_0
istore 6
start local 6 22: goto 28
end local 7 end local 6 StackMap locals:
StackMap stack:
23: aload 4
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 27
24: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 25: iconst_1
istore 6
start local 6 26: goto 28
end local 7 end local 6 27: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 6 start local 7 28: StackMap locals: int org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 32
29: 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 8
start local 8 30: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iload 5
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
iload 6
dload 8
invokestatic org.graalvm.compiler.nodes.LogicNode.or:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZD)Lorg/graalvm/compiler/nodes/LogicNode;
astore 10
start local 10 31: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 10
aload 4
aload 7
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.calc.ConditionalNode
areturn
end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 32: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 33 1 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
0 33 2 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
7 32 3 conditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
8 32 4 constant Lorg/graalvm/compiler/nodes/ValueNode;
12 13 5 negateCondition Z
17 18 5 negateCondition Z
19 32 5 negateCondition Z
22 23 6 negateConditionalCondition Z
26 27 6 negateConditionalCondition Z
28 32 6 negateConditionalCondition Z
21 23 7 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
25 27 7 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
28 32 7 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
30 32 8 shortCutProbability D
31 32 10 newCondition Lorg/graalvm/compiler/nodes/LogicNode;
MethodParameters:
Name Flags
trueValue
falseValue
private boolean splitIfAtPhi(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=13, 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.MergeNode
ifne 2
1: 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.MergeNode
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEndCount:()I
iconst_1
if_icmpne 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.nodes.MergeNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpne 6
aload 2
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 7
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 2
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 3
start local 3 10: aload 3
invokevirtual org.graalvm.compiler.nodes.PhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpeq 12
11: iconst_0
ireturn
12: StackMap locals: org.graalvm.compiler.nodes.PhiNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.conditionUses:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 15: aconst_null
astore 5
start local 5 16: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 17
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals: org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.MergeNode
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 49
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.MergeNode top java.util.Iterator
StackMap stack:
18: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.EndNode
astore 6
start local 6 19: aload 3
aload 6
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 20: aload 1
aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
aload 3
aload 8
invokestatic org.graalvm.compiler.nodes.IfNode.computeCondition:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 9
start local 9 21: aload 9
instanceof org.graalvm.compiler.nodes.LogicConstantNode
ifeq 32
22: aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
23: aload 9
checkcast org.graalvm.compiler.nodes.LogicConstantNode
invokevirtual org.graalvm.compiler.nodes.LogicConstantNode.getValue:()Z
ifeq 28
24: aload 4
ifnonnull 26
25: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.insertMerge:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/MergeNode;
astore 4
26: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode java.util.Iterator org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 4
aload 6
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
27: goto 49
28: StackMap locals:
StackMap stack:
aload 5
ifnonnull 30
29: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.insertMerge:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/MergeNode;
astore 5
30: StackMap locals:
StackMap stack:
aload 5
aload 6
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
31: goto 49
StackMap locals:
StackMap stack:
32: aload 9
aload 0
getfield org.graalvm.compiler.nodes.IfNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
if_acmpeq 49
33: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.BeginNode
dup
invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.BeginNode
astore 10
start local 10 34: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.BeginNode
dup
invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.BeginNode
astore 11
start local 11 35: aload 9
invokevirtual org.graalvm.compiler.nodes.LogicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
ifnonnull 37
36: 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.LogicNode
astore 9
37: StackMap locals: org.graalvm.compiler.nodes.BeginNode org.graalvm.compiler.nodes.BeginNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.IfNode
dup
aload 9
aload 10
aload 11
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 38: aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
39: aload 6
invokevirtual org.graalvm.compiler.nodes.EndNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
aload 12
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
40: aload 4
ifnonnull 42
41: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.insertMerge:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/MergeNode;
astore 4
42: StackMap locals: org.graalvm.compiler.nodes.IfNode
StackMap stack:
aload 10
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
43: aload 4
aload 10
invokevirtual org.graalvm.compiler.nodes.BeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.EndNode
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
44: aload 5
ifnonnull 46
45: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.insertMerge:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/MergeNode;
astore 5
46: StackMap locals:
StackMap stack:
aload 11
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
47: aload 5
aload 11
invokevirtual org.graalvm.compiler.nodes.BeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.EndNode
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
48: aload 6
invokevirtual org.graalvm.compiler.nodes.EndNode.safeDelete:()V
end local 12 end local 11 end local 10 end local 9 end local 8 end local 6 49: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.MergeNode top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
50: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 4
invokestatic org.graalvm.compiler.nodes.IfNode.transferProxies:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/MergeNode;)V
51: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 5
invokestatic org.graalvm.compiler.nodes.IfNode.transferProxies:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/MergeNode;)V
52: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.nodes.IfNode.cleanupMerge:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/MergeNode;)V
53: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.cleanupMerge:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/MergeNode;)V
54: aload 0
aload 1
aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.cleanupMerge:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/MergeNode;)V
55: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 56 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 56 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 56 2 merge Lorg/graalvm/compiler/nodes/MergeNode;
10 56 3 phi Lorg/graalvm/compiler/nodes/PhiNode;
15 56 4 trueMerge Lorg/graalvm/compiler/nodes/MergeNode;
16 56 5 falseMerge Lorg/graalvm/compiler/nodes/MergeNode;
19 49 6 end Lorg/graalvm/compiler/nodes/EndNode;
20 49 8 value Lorg/graalvm/compiler/graph/Node;
21 49 9 result Lorg/graalvm/compiler/nodes/LogicNode;
34 49 10 trueBegin Lorg/graalvm/compiler/nodes/BeginNode;
35 49 11 falseBegin Lorg/graalvm/compiler/nodes/BeginNode;
38 49 12 newIfNode Lorg/graalvm/compiler/nodes/IfNode;
MethodParameters:
Name Flags
tool
private static boolean conditionUses(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.PhiNode);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.LogicNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.ShortCircuitOrNode
ifeq 7
3: aload 0
invokevirtual org.graalvm.compiler.nodes.LogicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areDeoptsFixed:()Z
ifeq 15
4: aload 0
checkcast org.graalvm.compiler.nodes.ShortCircuitOrNode
astore 2
start local 2 5: aload 2
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.x:Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokestatic org.graalvm.compiler.nodes.IfNode.conditionUses:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;)Z
ifne 6
aload 2
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.y:Lorg/graalvm/compiler/nodes/LogicNode;
aload 1
invokestatic org.graalvm.compiler.nodes.IfNode.conditionUses:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;)Z
ifne 6
iconst_0
ireturn
StackMap locals: org.graalvm.compiler.nodes.ShortCircuitOrNode
StackMap stack:
6: iconst_1
ireturn
end local 2 7: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.graph.spi.Canonicalizable$Unary
ifeq 11
8: aload 0
checkcast org.graalvm.compiler.graph.spi.Canonicalizable$Unary
astore 2
start local 2 9: aload 2
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Unary.getValue:()Lorg/graalvm/compiler/graph/Node;
aload 1
if_acmpne 10
iconst_1
ireturn
StackMap locals: org.graalvm.compiler.graph.spi.Canonicalizable$Unary
StackMap stack:
10: iconst_0
ireturn
end local 2 11: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.graph.spi.Canonicalizable$Binary
ifeq 15
12: aload 0
checkcast org.graalvm.compiler.graph.spi.Canonicalizable$Binary
astore 2
start local 2 13: aload 2
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getX:()Lorg/graalvm/compiler/graph/Node;
aload 1
if_acmpeq 14
aload 2
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getY:()Lorg/graalvm/compiler/graph/Node;
aload 1
if_acmpeq 14
iconst_0
ireturn
StackMap locals: org.graalvm.compiler.graph.spi.Canonicalizable$Binary
StackMap stack:
14: iconst_1
ireturn
end local 2 15: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 16 1 phi Lorg/graalvm/compiler/nodes/PhiNode;
5 7 2 orNode Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
9 11 2 unary Lorg/graalvm/compiler/graph/spi/Canonicalizable$Unary<*>;
13 15 2 binary Lorg/graalvm/compiler/graph/spi/Canonicalizable$Binary<*>;
MethodParameters:
Name Flags
condition
phi
private static org.graalvm.compiler.nodes.LogicNode computeCondition(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.nodes.PhiNode, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/LogicNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof org.graalvm.compiler.nodes.ShortCircuitOrNode
ifeq 14
1: aload 1
invokevirtual org.graalvm.compiler.nodes.LogicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areDeoptsFixed:()Z
ifeq 24
2: aload 1
checkcast org.graalvm.compiler.nodes.ShortCircuitOrNode
astore 4
start local 4 3: aload 0
aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.x:Lorg/graalvm/compiler/nodes/LogicNode;
aload 2
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.computeCondition:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 5
start local 5 4: aload 0
aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.y:Lorg/graalvm/compiler/nodes/LogicNode;
aload 2
aload 3
invokestatic org.graalvm.compiler.nodes.IfNode.computeCondition:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 6
start local 6 5: aload 5
aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.x:Lorg/graalvm/compiler/nodes/LogicNode;
if_acmpne 6
aload 6
aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.y:Lorg/graalvm/compiler/nodes/LogicNode;
if_acmpeq 13
6: StackMap locals: org.graalvm.compiler.nodes.ShortCircuitOrNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 4
aload 0
aload 5
aload 6
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/LogicNode;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 7
start local 7 7: aload 7
aload 4
if_acmpeq 9
8: aload 7
areturn
9: StackMap locals: org.graalvm.compiler.nodes.LogicNode
StackMap stack:
new org.graalvm.compiler.nodes.ShortCircuitOrNode
dup
aload 5
aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.xNegated:Z
aload 6
10: aload 4
getfield org.graalvm.compiler.nodes.ShortCircuitOrNode.yNegated:Z
aload 4
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getShortCircuitProbability:()D
11: invokespecial org.graalvm.compiler.nodes.ShortCircuitOrNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZD)V
astore 8
start local 8 12: aload 8
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
areturn
end local 8 end local 7 13: StackMap locals:
StackMap stack:
aload 4
areturn
end local 6 end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.graph.spi.Canonicalizable$Binary
ifeq 20
15: aload 1
checkcast org.graalvm.compiler.graph.spi.Canonicalizable$Binary
astore 4
start local 4 16: aload 4
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getX:()Lorg/graalvm/compiler/graph/Node;
aload 2
if_acmpne 18
17: aload 4
aload 0
aload 3
aload 4
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getY:()Lorg/graalvm/compiler/graph/Node;
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
areturn
18: StackMap locals: org.graalvm.compiler.graph.spi.Canonicalizable$Binary
StackMap stack:
aload 4
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getY:()Lorg/graalvm/compiler/graph/Node;
aload 2
if_acmpne 24
19: aload 4
aload 0
aload 4
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.getX:()Lorg/graalvm/compiler/graph/Node;
aload 3
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Binary.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
areturn
end local 4 20: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.graph.spi.Canonicalizable$Unary
ifeq 24
21: aload 1
checkcast org.graalvm.compiler.graph.spi.Canonicalizable$Unary
astore 4
start local 4 22: aload 4
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Unary.getValue:()Lorg/graalvm/compiler/graph/Node;
aload 2
if_acmpne 24
23: aload 4
aload 0
aload 3
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$Unary.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
areturn
end local 4 24: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.graph.spi.Canonicalizable
ifeq 26
25: aload 1
checkcast org.graalvm.compiler.graph.spi.Canonicalizable
aload 0
invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
areturn
26: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 27 1 condition Lorg/graalvm/compiler/nodes/LogicNode;
0 27 2 phi Lorg/graalvm/compiler/nodes/PhiNode;
0 27 3 value Lorg/graalvm/compiler/graph/Node;
3 14 4 orNode Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
4 14 5 resultX Lorg/graalvm/compiler/nodes/LogicNode;
5 14 6 resultY Lorg/graalvm/compiler/nodes/LogicNode;
7 13 7 result Lorg/graalvm/compiler/nodes/LogicNode;
12 13 8 newOr Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
16 20 4 compare Lorg/graalvm/compiler/graph/spi/Canonicalizable$Binary<Lorg/graalvm/compiler/graph/Node;>;
22 24 4 compare Lorg/graalvm/compiler/graph/spi/Canonicalizable$Unary<Lorg/graalvm/compiler/graph/Node;>;
MethodParameters:
Name Flags
tool
condition
phi
value
private static void transferProxies(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.MergeNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/MergeNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 6
aload 1
ifnull 6
1: aload 0
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.proxies:()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 4
goto 5
StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.LoopExitNode top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ProxyNode
astore 3
start local 3 4: aload 3
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ProxyNode.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 6: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 successor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 7 1 falseMerge Lorg/graalvm/compiler/nodes/MergeNode;
2 6 2 loopExitNode Lorg/graalvm/compiler/nodes/LoopExitNode;
4 5 3 proxy Lorg/graalvm/compiler/nodes/ProxyNode;
MethodParameters:
Name Flags
successor
falseMerge
private void cleanupMerge(org.graalvm.compiler.graph.spi.SimplifierTool, org.graalvm.compiler.nodes.MergeNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;Lorg/graalvm/compiler/nodes/MergeNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 6
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.isAlive:()Z
ifeq 6
1: aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEndCount:()I
ifne 4
2: aload 2
aload 1
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
3: goto 6
StackMap locals:
StackMap stack:
4: aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.forwardEndCount:()I
iconst_1
if_icmpne 6
5: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 2
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.reduceTrivialMerge:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
6: StackMap locals:
StackMap stack:
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;
0 7 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 7 2 merge Lorg/graalvm/compiler/nodes/MergeNode;
MethodParameters:
Name Flags
tool
merge
private org.graalvm.compiler.nodes.MergeNode insertMerge(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/MergeNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: 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.MergeNode
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifne 7
2: aconst_null
astore 3
start local 3 3: aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
astore 3
4: aload 1
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
5: aload 1
getstatic org.graalvm.compiler.nodeinfo.InputType.Anchor:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
6: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 7
aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifne 7
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 7: StackMap locals: org.graalvm.compiler.nodes.MergeNode
StackMap stack:
aload 1
astore 3
start local 3 8: aload 1
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 12
9: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.BeginNode
dup
invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 3
10: aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
11: aload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
12: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 4
start local 4 13: aload 4
aload 2
invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
14: aload 3
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
15: aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.EndNode
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
16: aload 2
aload 4
invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
17: aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 18 1 begin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 18 2 merge Lorg/graalvm/compiler/nodes/MergeNode;
3 7 3 before Ljava/lang/Object;
8 18 3 theBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
13 18 4 next Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
begin
private boolean removeIntermediateMaterialization(org.graalvm.compiler.graph.spi.SimplifierTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, 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 5
checkcast org.graalvm.compiler.nodes.ValuePhiNode
astore 6
start local 6 15: aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
astore 7
start local 7 16: aload 7
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_2
if_icmple 18
17: iconst_0
ireturn
18: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.graph.iterators.NodeIterable
StackMap stack:
aload 7
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 9
goto 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 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_acmpeq 22
aload 8
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
if_acmpeq 22
21: iconst_0
ireturn
end local 8 22: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
23: 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 24: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 25
aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueCount:()I
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
if_icmpeq 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: 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 26: 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 27: aload 9
ifnull 28
aload 10
ifnonnull 29
28: StackMap locals: jdk.vm.ci.meta.Constant[] jdk.vm.ci.meta.Constant[]
StackMap stack:
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokestatic org.graalvm.compiler.nodes.IfNode.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;)Z
ifne 31
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokestatic org.graalvm.compiler.nodes.IfNode.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;)Z
ifne 31
30: iconst_0
ireturn
31: 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 32: 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 33: aload 8
invokeinterface java.util.List.size:()I
invokestatic org.graalvm.compiler.core.common.CollectionsFactory.newMap:(I)Ljava/util/HashMap;
astore 13
start local 13 34: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 14
start local 14 35: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 15
start local 15 36: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setFalseSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
37: aload 0
aconst_null
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessor:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
38: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
start local 16 39: iconst_0
istore 17
start local 17 40: goto 48
41: 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 java.util.Map 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 42: 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 java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
43: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
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.Condition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
ifeq 46
44: aload 12
aload 18
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
45: goto 47
46: 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 47: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
48: iload 17
aload 9
arraylength
if_icmplt 41
end local 17 49: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 50
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 50
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
50: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 51
aload 11
invokeinterface java.util.List.size:()I
aload 12
invokeinterface java.util.List.size:()I
iadd
aload 9
arraylength
if_icmpeq 51
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
51: StackMap locals:
StackMap stack:
aload 0
aload 11
aload 13
aload 14
aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.connectEnds:(Ljava/util/List;Ljava/util/Map;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
52: aload 0
aload 12
aload 13
aload 15
aload 2
aload 1
invokevirtual org.graalvm.compiler.nodes.IfNode.connectEnds:(Ljava/util/List;Ljava/util/Map;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
53: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 58
54: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 57
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 java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
55: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 17
start local 17 56: aload 0
aload 17
invokevirtual org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 17 57: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 55
58: 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 java.util.Map 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 63
59: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 62
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 java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
60: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 17
start local 17 61: aload 0
aload 17
invokevirtual org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 17 62: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 60
63: 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 java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.List.isEmpty:()Z
ifeq 65
64: aload 14
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
65: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.List.isEmpty:()Z
ifeq 67
66: aload 15
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
67: StackMap locals:
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
68: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 69
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isAlive:()Z
ifeq 69
new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
69: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 70
aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.isAlive:()Z
ifeq 70
new java.lang.AssertionError
dup
aload 6
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
70: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 71
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.isAlive:()Z
ifeq 71
new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
71: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 72
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.isAlive:()Z
ifeq 72
new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
72: 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 73 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 73 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 73 2 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
6 73 3 compare Lorg/graalvm/compiler/nodes/calc/CompareNode;
9 73 4 mergeUsages Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
12 73 5 singleUsage Lorg/graalvm/compiler/graph/Node;
15 73 6 phi Lorg/graalvm/compiler/nodes/ValuePhiNode;
16 73 7 phiUsages Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
20 22 8 usage Lorg/graalvm/compiler/graph/Node;
24 73 8 mergePredecessors Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
26 73 9 xs [Ljdk/vm/ci/meta/Constant;
27 73 10 ys [Ljdk/vm/ci/meta/Constant;
32 73 11 falseEnds Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
33 73 12 trueEnds Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
34 73 13 phiValues Ljava/util/Map<Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;>;
35 73 14 oldFalseSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
36 73 15 oldTrueSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
39 73 16 ends Ljava/util/Iterator<Lorg/graalvm/compiler/nodes/EndNode;>;
40 49 17 i I
42 47 18 end Lorg/graalvm/compiler/nodes/EndNode;
56 57 17 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
61 62 17 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
tool
private void propagateZeroProbability(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
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 4
goto 27
StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 3
start local 3 3: aload 3
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 20
4: aload 3
checkcast org.graalvm.compiler.nodes.IfNode
astore 5
start local 5 5: aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 2
if_acmpne 12
6: aload 5
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 8
7: return
8: StackMap locals: org.graalvm.compiler.nodes.IfNode 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 5
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifne 10
9: goto 27
10: StackMap locals:
StackMap stack:
aload 5
dconst_0
invokevirtual org.graalvm.compiler.nodes.IfNode.setTrueSuccessorProbability:(D)V
11: return
12: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 2
if_acmpne 19
13: aload 5
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_1
dcmpl
ifne 15
14: return
15: StackMap locals:
StackMap stack:
aload 5
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessorProbability:D
dconst_0
dcmpl
ifne 17
16: goto 27
17: StackMap locals:
StackMap stack:
aload 5
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 5 20: StackMap locals:
StackMap stack:
aload 3
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 26
aload 3
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifne 26
21: aload 3
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 6
goto 24
StackMap locals: org.graalvm.compiler.nodes.IfNode 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 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 5
start local 5 23: aload 0
aload 5
invokevirtual org.graalvm.compiler.nodes.IfNode.propagateZeroProbability:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 5 24: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: return
26: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.FixedNode java.util.Iterator
StackMap stack:
aload 3
astore 2
end local 3 27: StackMap locals: org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 29 1 startNode Lorg/graalvm/compiler/nodes/FixedNode;
1 29 2 prev Lorg/graalvm/compiler/graph/Node;
3 27 3 node Lorg/graalvm/compiler/nodes/FixedNode;
5 20 5 ifNode Lorg/graalvm/compiler/nodes/IfNode;
23 24 5 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
startNode
private static boolean checkFrameState(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=5, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 6
2: aload 1
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
iconst_1
ireturn
end local 2 6: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.StateSplit
ifeq 10
7: aload 1
checkcast org.graalvm.compiler.nodes.StateSplit
astore 2
start local 2 8: aload 2
invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 10
9: iconst_1
ireturn
end local 2 10: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifeq 18
11: aload 1
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 2
start local 2 12: aload 2
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.cfgSuccessors:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.ControlSplitNode top java.util.Iterator
StackMap stack:
13: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 3
start local 3 14: aload 3
checkcast org.graalvm.compiler.nodes.FixedNode
invokestatic org.graalvm.compiler.nodes.IfNode.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;)Z
ifeq 16
15: iconst_1
ireturn
end local 3 16: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
17: iconst_0
ireturn
end local 2 18: StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 22
19: aload 1
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 2
start local 2 20: aload 2
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 1
end local 2 21: goto 1
StackMap locals:
StackMap stack:
22: aload 1
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 26
23: aload 1
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 2
start local 2 24: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 1
end local 2 25: goto 1
StackMap locals:
StackMap stack:
26: aload 1
instanceof org.graalvm.compiler.nodes.ControlSinkNode
ifeq 28
27: iconst_1
ireturn
28: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 start Lorg/graalvm/compiler/nodes/FixedNode;
1 29 1 node Lorg/graalvm/compiler/nodes/FixedNode;
3 6 2 mergeNode Lorg/graalvm/compiler/nodes/AbstractMergeNode;
8 10 2 stateSplitNode Lorg/graalvm/compiler/nodes/StateSplit;
12 18 2 controlSplitNode Lorg/graalvm/compiler/nodes/ControlSplitNode;
14 16 3 succ Lorg/graalvm/compiler/graph/Node;
20 21 2 fixedWithNextNode Lorg/graalvm/compiler/nodes/FixedWithNextNode;
24 25 2 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
start
private void connectEnds(java.util.List<org.graalvm.compiler.nodes.EndNode>, java.util.Map<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;Ljava/util/Map;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=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifne 22
1: aload 1
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 7
2: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 6
start local 6 3: aload 6
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
aload 3
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
4: aload 4
aload 6
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
5: aload 6
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 6 6: goto 21
7: StackMap locals:
StackMap stack:
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 6
start local 6 8: aload 4
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 7
start local 7 9: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 7
invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
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 8
start local 8 10: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 14
StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
11: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.EndNode
astore 9
start local 9 12: aload 8
aload 2
aload 9
invokeinterface java.util.Map.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
13: aload 6
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
end local 9 14: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
15: aload 4
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 9
start local 9 16: aload 9
ifnull 20
17: aload 9
invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
astore 9
18: aload 9
aload 7
aload 8
invokevirtual org.graalvm.compiler.nodes.FrameState.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
19: aload 6
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
20: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.FrameState
StackMap stack:
aload 6
aload 3
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 9 end local 8 end local 7 end local 6 21: StackMap locals: org.graalvm.compiler.nodes.IfNode java.util.List java.util.Map org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.spi.SimplifierTool
StackMap stack:
aload 5
aload 3
invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
22: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 23 1 ends Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
0 23 2 phiValues Ljava/util/Map<Lorg/graalvm/compiler/nodes/AbstractEndNode;Lorg/graalvm/compiler/nodes/ValueNode;>;
0 23 3 successor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 23 4 oldMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 23 5 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
3 6 6 end Lorg/graalvm/compiler/nodes/AbstractEndNode;
8 21 6 newMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
9 21 7 oldPhi Lorg/graalvm/compiler/nodes/PhiNode;
10 21 8 newPhi Lorg/graalvm/compiler/nodes/PhiNode;
12 14 9 end Lorg/graalvm/compiler/nodes/EndNode;
16 21 9 stateAfter Lorg/graalvm/compiler/nodes/FrameState;
Signature: (Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;Ljava/util/Map<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
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: aload 0
invokevirtual 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 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
}
SourceFile: "IfNode.java"
InnerClasses:
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 abstract Binary = org.graalvm.compiler.graph.spi.Canonicalizable$Binary of org.graalvm.compiler.graph.spi.Canonicalizable
public abstract Unary = org.graalvm.compiler.graph.spi.Canonicalizable$Unary of org.graalvm.compiler.graph.spi.Canonicalizable
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2:Lorg/graalvm/compiler/nodeinfo/NodeSize;, sizeRationale = "2 jmps")