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=2, 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 6
1: aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 6
aload 0
getfield org.graalvm.compiler.nodes.IfNode.falseSuccessor:Lorg/graalvm/compiler/nodes/AbstractBeginNode;
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 6
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:
getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 5
aload 0
getfield org.graalvm.compiler.nodes.IfNode.trueSuccessor: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
ifeq 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.isEmpty:()Z
ifne 5
StackMap locals:
StackMap stack:
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: 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
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 7 1 replacement Lorg/graalvm/compiler/nodes/ValueNode;
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=12, 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 51
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:
iload 6
ifne 51
aload 5
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 51
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 51
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 51
34: aconst_null
astore 9
start local 9 35: aconst_null
astore 10
start local 10 36: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 41
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifeq 41
aload 5
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
ldc -1
lcmp
ifne 41
37: 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
lconst_0
lcmp
ifne 41
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
lconst_1
lcmp
ifne 41
38: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 9
39: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
astore 10
40: goto 45
StackMap locals: org.graalvm.compiler.nodes.calc.IntegerLessThanNode org.graalvm.compiler.nodes.calc.IntegerEqualsNode
StackMap stack:
41: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifeq 45
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifeq 45
aload 5
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lconst_0
lcmp
ifne 45
42: 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
ldc -1
lcmp
ifne 45
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
lconst_1
lcmp
ifne 45
43: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerLessThanNode
astore 9
44: aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.IntegerEqualsNode
astore 10
45: StackMap locals:
StackMap stack:
aload 9
ifnull 51
46: getstatic org.graalvm.compiler.nodes.IfNode.$assertionsDisabled:Z
ifne 47
aload 10
ifnonnull 47
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
47: StackMap locals:
StackMap stack:
aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 11
start local 11 48: aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 49
aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 50
StackMap locals: org.graalvm.compiler.nodes.NodeView
StackMap stack:
49: aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 51
aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.IntegerEqualsNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 51
50: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.NormalizeCompareNode
dup
aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 9
invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 11
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;
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 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 51: 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 52 0 this Lorg/graalvm/compiler/nodes/IfNode;
0 52 1 tool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
0 52 2 trueValue Lorg/graalvm/compiler/nodes/ValueNode;
0 52 3 falseValue Lorg/graalvm/compiler/nodes/ValueNode;
8 51 4 conditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
9 51 5 constant Lorg/graalvm/compiler/nodes/ValueNode;
13 14 6 negateCondition Z
18 19 6 negateCondition Z
20 51 6 negateCondition Z
21 51 7 negateConditionalCondition Z
22 51 8 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
31 33 9 shortCutProbability D
32 33 11 newCondition Lorg/graalvm/compiler/nodes/LogicNode;
35 51 9 lessThan Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
36 51 10 equals Lorg/graalvm/compiler/nodes/calc/IntegerEqualsNode;
48 51 11 view Lorg/graalvm/compiler/nodes/NodeView;
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")