public class org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache implements java.util.function.ToDoubleFunction<org.graalvm.compiler.nodes.FixedNode>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache
super_class: java.lang.Object
{
private static final org.graalvm.compiler.debug.CounterKey computeNodeProbabilityCounter;
descriptor: Lorg/graalvm/compiler/debug/CounterKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.FixedNode, java.lang.Double> cache;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/FixedNode;Ljava/lang/Double;>;
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/graph/FixedNodeProbabilityCache;
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.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
3: ldc "ComputeNodeProbability"
invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
putstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.computeNodeProbabilityCounter:Lorg/graalvm/compiler/debug/CounterKey;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.cache:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/phases/graph/FixedNodeProbabilityCache;
public double applyAsDouble(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 1
aload 1
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.computeNodeProbabilityCounter:Lorg/graalvm/compiler/debug/CounterKey;
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
2: aload 1
invokestatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.findBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/FixedNode;
astore 2
start local 2 3: aload 2
ifnonnull 5
4: dconst_1
dreturn
5: StackMap locals: org.graalvm.compiler.nodes.FixedNode
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 6
aload 2
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.cache:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Double
astore 3
start local 3 7: aload 3
ifnull 9
8: aload 3
invokevirtual java.lang.Double.doubleValue:()D
dreturn
9: StackMap locals: java.lang.Double
StackMap stack:
dconst_0
dstore 4
start local 4 10: aload 2
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnonnull 17
11: aload 2
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 14
12: aload 0
aload 2
dload 4
invokevirtual org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.handleMerge:(Lorg/graalvm/compiler/nodes/FixedNode;D)D
dstore 4
13: goto 19
14: StackMap locals: double
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 15
aload 2
instanceof org.graalvm.compiler.nodes.StartNode
ifne 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
dconst_1
dstore 4
16: goto 19
17: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 6
start local 6 18: aload 6
aload 2
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
aload 0
aload 6
invokevirtual org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.applyAsDouble:(Lorg/graalvm/compiler/nodes/FixedNode;)D
invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.multiplyProbabilities:(DD)D
dstore 4
end local 6 19: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 21
dload 4
invokestatic java.lang.Double.isNaN:(D)Z
ifne 20
dload 4
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 21
StackMap locals:
StackMap stack:
20: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 4
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
21: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.cache:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 2
dload 4
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: dload 4
dreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/graalvm/compiler/phases/graph/FixedNodeProbabilityCache;
0 23 1 node Lorg/graalvm/compiler/nodes/FixedNode;
3 23 2 current Lorg/graalvm/compiler/nodes/FixedNode;
7 23 3 cachedValue Ljava/lang/Double;
10 23 4 probability D
18 19 6 split Lorg/graalvm/compiler/nodes/ControlSplitNode;
MethodParameters:
Name Flags
node
private double handleMerge(org.graalvm.compiler.nodes.FixedNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;D)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: dload 2
dstore 4
start local 4 1: aload 1
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 6
start local 6 2: aload 6
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
astore 7
start local 7 3: aload 7
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 9
goto 6
StackMap locals: org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache org.graalvm.compiler.nodes.FixedNode double double org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.NodeInputList top java.util.Iterator
StackMap stack:
4: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 8
start local 8 5: dload 4
aload 0
aload 8
invokevirtual org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.applyAsDouble:(Lorg/graalvm/compiler/nodes/FixedNode;)D
dadd
dstore 4
end local 8 6: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 1
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifeq 9
8: dload 4
aload 1
checkcast org.graalvm.compiler.nodes.LoopBeginNode
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.multiplyProbabilities:(DD)D
dstore 4
9: StackMap locals: org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache org.graalvm.compiler.nodes.FixedNode double double org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.graph.NodeInputList
StackMap stack:
dload 4
dreturn
end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/phases/graph/FixedNodeProbabilityCache;
0 10 1 current Lorg/graalvm/compiler/nodes/FixedNode;
0 10 2 probability D
1 10 4 result D
2 10 6 currentMerge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
3 10 7 currentForwardEnds Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/EndNode;>;
5 6 8 endNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
MethodParameters:
Name Flags
current
probability
private static org.graalvm.compiler.nodes.FixedNode findBegin(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/FixedNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: org.graalvm.compiler.nodes.FixedNode
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 2
aload 1
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
astore 2
start local 2 3: aload 1
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifeq 8
4: aload 2
ifnonnull 6
5: goto 13
6: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpeq 11
7: getstatic org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.$assertionsDisabled:Z
ifne 13
aload 2
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifne 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "a FixedNode with multiple successors needs to be a ControlSplitNode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " / "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
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
8: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
9: aconst_null
astore 1
10: goto 13
11: StackMap locals:
StackMap stack:
aload 2
checkcast org.graalvm.compiler.nodes.FixedNode
astore 1
end local 2 12: goto 1
13: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 node Lorg/graalvm/compiler/nodes/FixedNode;
1 14 1 current Lorg/graalvm/compiler/nodes/FixedNode;
3 12 2 predecessor Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
node
public double applyAsDouble(java.lang.Object);
descriptor: (Ljava/lang/Object;)D
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.phases.graph.FixedNodeProbabilityCache.applyAsDouble:(Lorg/graalvm/compiler/nodes/FixedNode;)D
dreturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/function/ToDoubleFunction<Lorg/graalvm/compiler/nodes/FixedNode;>;
SourceFile: "FixedNodeProbabilityCache.java"