public class org.graalvm.compiler.phases.common.ExpandLogicPhase extends org.graalvm.compiler.phases.Phase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.common.ExpandLogicPhase
super_class: org.graalvm.compiler.phases.Phase
{
private static final double EPSILON;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1.0E-6
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/phases/common/ExpandLogicPhase;
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.phases.common.ExpandLogicPhase.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/common/ExpandLogicPhase;
protected void run(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.graalvm.compiler.nodes.ShortCircuitOrNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.graalvm.compiler.phases.common.ExpandLogicPhase org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ShortCircuitOrNode
astore 2
start local 2 2: aload 2
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.processBinary:(Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: getstatic org.graalvm.compiler.phases.common.ExpandLogicPhase.$assertionsDisabled:Z
ifne 5
aload 1
getstatic org.graalvm.compiler.nodes.ShortCircuitOrNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: org.graalvm.compiler.phases.common.ExpandLogicPhase org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 1
getstatic org.graalvm.compiler.nodes.calc.NormalizeCompareNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: org.graalvm.compiler.phases.common.ExpandLogicPhase org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.calc.NormalizeCompareNode
astore 2
start local 2 7: aload 2
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.processNormalizeCompareNode:(Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;)V
end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setAfterExpandLogic:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/phases/common/ExpandLogicPhase;
0 11 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 3 2 logic Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
7 8 2 logic Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;
MethodParameters:
Name Flags
graph
private static void processNormalizeCompareNode(org.graalvm.compiler.nodes.calc.NormalizeCompareNode);
descriptor: (Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 2: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 3: aload 4
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 7
4: aload 3
aload 4
aload 5
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.FloatEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 1
start local 1 5: aload 3
aload 4
aload 5
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.isUnorderedLess:()Z
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.FloatLessThanNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;ZLorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 2
start local 2 6: goto 9
end local 2 end local 1 7: StackMap locals: org.graalvm.compiler.nodes.calc.NormalizeCompareNode top top org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 3
aload 4
aload 5
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.IntegerEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 1
start local 1 8: aload 3
aload 4
aload 5
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.IntegerLessThanNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 2
start local 2 9: StackMap locals: org.graalvm.compiler.nodes.calc.NormalizeCompareNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 10: aload 3
11: new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 1
aload 6
lconst_0
aload 3
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
aload 6
lconst_1
aload 3
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
12: invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 7
start local 7 13: aload 3
new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 2
aload 6
ldc -1
aload 3
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
aload 7
invokespecial org.graalvm.compiler.nodes.calc.ConditionalNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 8
start local 8 14: aload 0
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.NormalizeCompareNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
15: return
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 16 0 normalize Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;
5 7 1 equalComp Lorg/graalvm/compiler/nodes/LogicNode;
8 16 1 equalComp Lorg/graalvm/compiler/nodes/LogicNode;
6 7 2 lessComp Lorg/graalvm/compiler/nodes/LogicNode;
9 16 2 lessComp Lorg/graalvm/compiler/nodes/LogicNode;
1 16 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 16 4 x Lorg/graalvm/compiler/nodes/ValueNode;
3 16 5 y Lorg/graalvm/compiler/nodes/ValueNode;
10 16 6 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
13 16 7 equalValue Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
14 16 8 value Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
MethodParameters:
Name Flags
normalize
private static void processBinary(org.graalvm.compiler.nodes.ShortCircuitOrNode);
descriptor: (Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: goto 12
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
astore 1
start local 1 2: aload 1
instanceof org.graalvm.compiler.nodes.ShortCircuitOrNode
ifeq 5
3: aload 1
checkcast org.graalvm.compiler.nodes.ShortCircuitOrNode
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.processBinary:(Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;)V
4: goto 12
StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
5: aload 1
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 8
6: aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getX:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isXNegated:()Z
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getY:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isYNegated:()Z
aload 1
checkcast org.graalvm.compiler.nodes.IfNode
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getShortCircuitProbability:()D
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.processIf:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/IfNode;D)V
7: goto 12
StackMap locals:
StackMap stack:
8: aload 1
instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
ifeq 11
9: aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getX:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isXNegated:()Z
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.getY:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.isYNegated:()Z
aload 1
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.processConditional:(Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/calc/ConditionalNode;)V
10: goto 12
11: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 1 12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isNotEmpty:()Z
ifne 1
13: aload 0
invokevirtual org.graalvm.compiler.nodes.ShortCircuitOrNode.safeDelete:()V
14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 binary Lorg/graalvm/compiler/nodes/ShortCircuitOrNode;
2 12 1 usage Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
binary
private static void processIf(org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.IfNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/IfNode;D)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=23, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 7
start local 7 1: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 8
start local 8 2: dload 5
dstore 9
start local 9 3: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
dload 5
dsub
dconst_1
dload 5
dsub
ddiv
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.sanitizeProbability:(D)D
dstore 11
start local 11 4: dload 9
dconst_1
dload 9
dsub
dload 11
dmul
dadd
dstore 13
start local 13 5: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
dload 13
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.doubleEquals:(DD)Z
ifne 8
6: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
dload 5
dmul
dstore 9
7: dconst_1
aload 4
aload 8
invokevirtual org.graalvm.compiler.nodes.IfNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
dconst_1
dload 9
dsub
ddiv
dsub
invokestatic org.graalvm.compiler.phases.common.ExpandLogicPhase.sanitizeProbability:(D)D
dstore 11
8: StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.clearSuccessors:()V
9: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 15
start local 15 10: aload 15
new org.graalvm.compiler.nodes.MergeNode
dup
invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
invokevirtual org.graalvm.compiler.graph.Graph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 16
start local 16 11: aload 16
aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
12: aload 15
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.graph.Graph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 17
start local 17 13: aload 15
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.graph.Graph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 18
start local 18 14: aload 16
aload 17
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
15: aload 16
aload 18
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
16: aload 17
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 19
start local 19 17: aload 18
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 20
start local 20 18: iload 3
ifeq 20
19: dconst_1
dload 11
dsub
dstore 11
20: StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
iload 1
ifeq 22
21: dconst_1
dload 9
dsub
dstore 9
22: StackMap locals:
StackMap stack:
aload 15
23: new org.graalvm.compiler.nodes.IfNode
dup
aload 2
iload 3
ifeq 24
aload 8
goto 25
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 23 new 23 org.graalvm.compiler.nodes.LogicNode
24: aload 20
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 23 new 23 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode
25: iload 3
ifeq 26
aload 20
goto 27
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 23 new 23 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode
26: aload 8
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 23 new 23 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
27: dload 11
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.graph.Graph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 21
start local 21 28: aload 15
29: new org.graalvm.compiler.nodes.IfNode
dup
aload 0
iload 1
ifeq 30
aload 21
goto 31
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 29 new 29 org.graalvm.compiler.nodes.LogicNode
30: aload 19
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 29 new 29 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode
31: iload 1
ifeq 32
aload 19
goto 33
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 29 new 29 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode
32: aload 21
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.IfNode double org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode double double double org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack: org.graalvm.compiler.graph.Graph new 29 new 29 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractBeginNode
33: dload 9
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.graph.Graph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.IfNode
astore 22
start local 22 34: aload 4
aload 22
invokevirtual org.graalvm.compiler.nodes.IfNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
35: aload 4
invokevirtual org.graalvm.compiler.nodes.IfNode.safeDelete:()V
36: return
end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 13 end local 11 end local 9 end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 x Lorg/graalvm/compiler/nodes/LogicNode;
0 37 1 xNegated Z
0 37 2 y Lorg/graalvm/compiler/nodes/LogicNode;
0 37 3 yNegated Z
0 37 4 ifNode Lorg/graalvm/compiler/nodes/IfNode;
0 37 5 shortCircuitProbability D
1 37 7 trueTarget Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2 37 8 falseTarget Lorg/graalvm/compiler/nodes/AbstractBeginNode;
3 37 9 firstIfTrueProbability D
4 37 11 secondIfTrueProbability D
5 37 13 expectedOriginalIfTrueProbability D
10 37 15 graph Lorg/graalvm/compiler/graph/Graph;
11 37 16 trueTargetMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
13 37 17 firstTrueEnd Lorg/graalvm/compiler/nodes/EndNode;
14 37 18 secondTrueEnd Lorg/graalvm/compiler/nodes/EndNode;
17 37 19 firstTrueTarget Lorg/graalvm/compiler/nodes/AbstractBeginNode;
18 37 20 secondTrueTarget Lorg/graalvm/compiler/nodes/AbstractBeginNode;
28 37 21 secondIf Lorg/graalvm/compiler/nodes/AbstractBeginNode;
34 37 22 firstIf Lorg/graalvm/compiler/nodes/IfNode;
MethodParameters:
Name Flags
x
xNegated
y
yNegated
ifNode
shortCircuitProbability
private static boolean doubleEquals(double, double);
descriptor: (DD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: getstatic org.graalvm.compiler.phases.common.ExpandLogicPhase.$assertionsDisabled:Z
ifne 2
dload 0
invokestatic java.lang.Double.isNaN:(D)Z
ifne 1
dload 2
invokestatic java.lang.Double.isNaN:(D)Z
ifne 1
dload 0
invokestatic java.lang.Double.isInfinite:(D)Z
ifne 1
dload 2
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
dload 0
ldc 1.0E-6
dsub
dload 2
dcmpg
ifge 3
dload 0
ldc 1.0E-6
dadd
dload 2
dcmpl
ifle 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 a D
0 4 2 b D
MethodParameters:
Name Flags
a
b
private static double sanitizeProbability(double);
descriptor: (D)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: dconst_1
dconst_0
dload 0
invokestatic java.lang.Math.max:(DD)D
invokestatic java.lang.Math.min:(DD)D
dstore 2
start local 2 1: dload 2
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 3
2: ldc 0.5
dstore 2
3: StackMap locals: double
StackMap stack:
dload 2
dreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value D
1 4 2 newValue D
MethodParameters:
Name Flags
value
private static void processConditional(org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.LogicNode, boolean, org.graalvm.compiler.nodes.calc.ConditionalNode);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/LogicNode;ZLorg/graalvm/compiler/nodes/calc/ConditionalNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 1: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 2: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 7
start local 7 3: aload 7
4: new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 2
iload 3
ifeq 5
aload 6
goto 6
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph
StackMap stack: org.graalvm.compiler.graph.Graph new 4 new 4 org.graalvm.compiler.nodes.LogicNode
5: aload 5
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph
StackMap stack: org.graalvm.compiler.graph.Graph new 4 new 4 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode
6: iload 3
ifeq 7
aload 5
goto 8
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph
StackMap stack: org.graalvm.compiler.graph.Graph new 4 new 4 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode
7: aload 6
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph
StackMap stack: org.graalvm.compiler.graph.Graph new 4 new 4 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
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.graph.Graph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 8
start local 8 9: aload 7
10: new org.graalvm.compiler.nodes.calc.ConditionalNode
dup
aload 0
iload 1
ifeq 11
aload 8
goto 12
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.calc.ConditionalNode
StackMap stack: org.graalvm.compiler.graph.Graph new 10 new 10 org.graalvm.compiler.nodes.LogicNode
11: aload 5
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.calc.ConditionalNode
StackMap stack: org.graalvm.compiler.graph.Graph new 10 new 10 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode
12: iload 1
ifeq 13
aload 5
goto 14
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.calc.ConditionalNode
StackMap stack: org.graalvm.compiler.graph.Graph new 10 new 10 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode
13: aload 8
StackMap locals: org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.LogicNode int org.graalvm.compiler.nodes.calc.ConditionalNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Graph org.graalvm.compiler.nodes.calc.ConditionalNode
StackMap stack: org.graalvm.compiler.graph.Graph new 10 new 10 org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
14: 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.graph.Graph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
astore 9
start local 9 15: aload 4
aload 9
invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
16: return
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 17 0 x Lorg/graalvm/compiler/nodes/LogicNode;
0 17 1 xNegated Z
0 17 2 y Lorg/graalvm/compiler/nodes/LogicNode;
0 17 3 yNegated Z
0 17 4 conditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
1 17 5 trueTarget Lorg/graalvm/compiler/nodes/ValueNode;
2 17 6 falseTarget Lorg/graalvm/compiler/nodes/ValueNode;
3 17 7 graph Lorg/graalvm/compiler/graph/Graph;
9 17 8 secondConditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
15 17 9 firstConditional Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
MethodParameters:
Name Flags
x
xNegated
y
yNegated
conditional
public boolean checkContract();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/common/ExpandLogicPhase;
}
SourceFile: "ExpandLogicPhase.java"
InnerClasses:
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node