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