public class org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance
super_class: java.lang.Object
{
private static final double EPSILON;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4.656612875245797E-10
private static final double UNINITIALIZED;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1.0
private static final int EXPECTED_MIN_INVOKE_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int EXPECTED_INVOKE_RATIO;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final int EXPECTED_LOOP_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final org.graalvm.compiler.nodes.StructuredGraph graph;
descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.function.ToDoubleFunction<org.graalvm.compiler.nodes.FixedNode> nodeProbabilities;
descriptor: Ljava/util/function/ToDoubleFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/ToDoubleFunction<Lorg/graalvm/compiler/nodes/FixedNode;>;
private jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.FixedNode, java.lang.Double> nodeRelevances;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/FixedNode;Ljava/lang/Double;>;
private org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope rootScope;
descriptor: Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
flags: (0x0002) ACC_PRIVATE
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/inlining/walker/ComputeInliningRelevance;
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.inlining.walker.ComputeInliningRelevance.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.StructuredGraph, java.util.function.ToDoubleFunction<org.graalvm.compiler.nodes.FixedNode>);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/util/function/ToDoubleFunction;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
2: aload 0
aload 2
putfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeProbabilities:Ljava/util/function/ToDoubleFunction;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 4 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 4 2 nodeProbabilities Ljava/util/function/ToDoubleFunction<Lorg/graalvm/compiler/nodes/FixedNode;>;
Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/util/function/ToDoubleFunction<Lorg/graalvm/compiler/nodes/FixedNode;>;)V
MethodParameters:
Name Flags
graph
nodeProbabilities
public void compute();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.rootScope:Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
1: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasLoops:()Z
ifne 4
2: aload 0
new org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
dup
aload 0
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
aconst_null
invokespecial org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.<init>:(Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)V
putfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.rootScope:Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
3: goto 18
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeRelevances:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 6
5: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
iconst_3
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.getNodeCount:(Lorg/graalvm/compiler/nodes/StructuredGraph;)I
bipush 20
idiv
iadd
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeRelevances:Ljdk/internal/vm/compiler/collections/EconomicMap;
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeWorkList:()Lorg/graalvm/compiler/graph/NodeWorkList;
astore 1
start local 1 7: getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
iconst_3
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
astore 2
start local 2 8: new org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
dup
aload 0
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
aconst_null
invokespecial org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.<init>:(Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)V
astore 3
start local 3 9: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
getstatic org.graalvm.compiler.nodes.LoopBeginNode.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 5
goto 12
StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.graph.NodeWorkList jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope top java.util.Iterator
StackMap stack:
10: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
astore 4
start local 4 11: aload 0
aload 4
aload 2
aload 3
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.createLoopScope:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
pop
end local 4 12: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
13: aload 3
aload 1
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.process:(Lorg/graalvm/compiler/graph/NodeWorkList;)V
14: aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getValues:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 17
StackMap locals:
StackMap stack:
15: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
astore 4
start local 4 16: aload 4
aload 1
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.process:(Lorg/graalvm/compiler/graph/NodeWorkList;)V
end local 4 17: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 3 end local 2 end local 1 18: StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
7 18 1 workList Lorg/graalvm/compiler/graph/NodeWorkList;
8 18 2 loops Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;>;
9 18 3 topScope Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
11 12 4 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
16 17 4 scope Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
public double getRelevance(org.graalvm.compiler.nodes.Invoke);
descriptor: (Lorg/graalvm/compiler/nodes/Invoke;)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.rootScope:Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
ifnull 2
1: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.rootScope:Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
aload 1
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.computeInvokeRelevance:(Lorg/graalvm/compiler/nodes/Invoke;)D
dreturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeRelevances:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 3
new java.lang.AssertionError
dup
ldc "uninitialized relevance"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeRelevances:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 4 1 invoke Lorg/graalvm/compiler/nodes/Invoke;
MethodParameters:
Name Flags
invoke
private org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope createLoopScope(org.graalvm.compiler.nodes.LoopBeginNode, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.LoopBeginNode, org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope>, org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope);
descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
astore 4
start local 4 1: aload 4
ifnonnull 20
2: aload 1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
astore 6
start local 6 3: StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.nodes.LoopBeginNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope top org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnonnull 13
4: aload 6
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifeq 7
5: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.LoopBeginNode
aload 2
aload 3
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.createLoopScope:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
astore 5
start local 5 6: goto 18
end local 5 7: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.nodes.StartNode
ifeq 10
8: aload 3
astore 5
start local 5 9: goto 18
end local 5 10: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.$assertionsDisabled:Z
ifne 11
aload 6
instanceof org.graalvm.compiler.nodes.MergeNode
ifne 11
new java.lang.AssertionError
dup
aload 6
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 6
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
iconst_0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndAt:(I)Lorg/graalvm/compiler/nodes/EndNode;
astore 6
12: goto 3
StackMap locals:
StackMap stack:
13: aload 6
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 16
14: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
aload 2
aload 3
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.createLoopScope:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.parent:Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
astore 5
start local 5 15: goto 18
end local 5 16: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 6
17: goto 3
start local 5 18: StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.nodes.LoopBeginNode jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope org.graalvm.compiler.nodes.FixedNode
StackMap stack:
new org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
dup
aload 0
aload 1
aload 5
invokespecial org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope.<init>:(Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)V
astore 4
19: aload 2
aload 1
aload 4
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 20: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 21 1 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
0 21 2 loops Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;>;
0 21 3 topScope Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
1 21 4 scope Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
6 7 5 parent Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
9 10 5 parent Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
15 16 5 parent Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
18 20 5 parent Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
3 20 6 current Lorg/graalvm/compiler/nodes/FixedNode;
Signature: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;>;Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;)Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance$Scope;
MethodParameters:
Name Flags
loopBegin
loops
topScope
private double computeFastPathMinProbability(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 2
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeProbabilities:Ljava/util/function/ToDoubleFunction;
aload 1
invokeinterface java.util.function.ToDoubleFunction.applyAsDouble:(Ljava/lang/Object;)D
dstore 3
start local 3 3: aload 1
instanceof org.graalvm.compiler.nodes.LoopBeginNode
istore 5
start local 5 4: StackMap locals: java.util.ArrayList double int
StackMap stack:
aload 2
aload 2
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 5: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
iload 5
ifeq 7
aload 6
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 7
aload 1
checkcast org.graalvm.compiler.nodes.LoopBeginNode
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopExits:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
aload 6
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 7
6: dload 3
dreturn
7: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.nodes.LoopBeginNode
ifeq 11
aload 6
aload 1
if_acmpeq 11
8: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.LoopBeginNode
aload 2
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.getMaxProbabilityLoopExit:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/ArrayList;)Lorg/graalvm/compiler/graph/Node;
astore 6
9: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.FixedNode
dload 3
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.getMinPathProbability:(Lorg/graalvm/compiler/nodes/FixedNode;D)D
dstore 3
10: goto 17
StackMap locals:
StackMap stack:
11: aload 6
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifeq 15
12: aload 6
checkcast org.graalvm.compiler.nodes.ControlSplitNode
aload 2
invokestatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.getMaxProbabilitySux:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Ljava/util/ArrayList;)Lorg/graalvm/compiler/graph/Node;
astore 6
13: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.FixedNode
dload 3
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.getMinPathProbability:(Lorg/graalvm/compiler/nodes/FixedNode;D)D
dstore 3
14: goto 17
15: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.$assertionsDisabled:Z
ifne 16
aload 6
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_icmple 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
astore 6
17: StackMap locals:
StackMap stack:
aload 6
ifnonnull 5
end local 6 18: aload 2
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 4
19: dload 3
dreturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 20 1 scopeStart Lorg/graalvm/compiler/nodes/FixedNode;
1 20 2 pathBeginNodes Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;
3 20 3 minPathProbability D
4 20 5 isLoopScope Z
5 18 6 current Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
scopeStart
private double getMinPathProbability(org.graalvm.compiler.nodes.FixedNode, double);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;D)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
dload 2
goto 2
StackMap locals:
StackMap stack:
1: dload 2
aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeProbabilities:Ljava/util/function/ToDoubleFunction;
aload 1
invokeinterface java.util.function.ToDoubleFunction.applyAsDouble:(Ljava/lang/Object;)D
invokestatic java.lang.Math.min:(DD)D
StackMap locals:
StackMap stack: double
2: dreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 3 1 current Lorg/graalvm/compiler/nodes/FixedNode;
0 3 2 minPathProbability D
MethodParameters:
Name Flags
current
minPathProbability
private static org.graalvm.compiler.graph.Node getMaxProbabilitySux(org.graalvm.compiler.nodes.ControlSplitNode, java.util.ArrayList<org.graalvm.compiler.nodes.FixedNode>);
descriptor: (Lorg/graalvm/compiler/nodes/ControlSplitNode;Ljava/util/ArrayList;)Lorg/graalvm/compiler/graph/Node;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: dconst_0
dstore 3
start local 3 2: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 5
start local 5 3: aload 0
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: org.graalvm.compiler.nodes.ControlSplitNode java.util.ArrayList org.graalvm.compiler.graph.Node double int top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 5: aload 0
aload 6
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
dstore 8
start local 8 6: dload 8
dload 3
dcmpl
ifle 11
7: dload 8
dstore 3
8: aload 6
astore 2
9: aload 1
iload 5
invokestatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.truncate:(Ljava/util/ArrayList;I)V
10: goto 13
StackMap locals: org.graalvm.compiler.nodes.ControlSplitNode java.util.ArrayList org.graalvm.compiler.graph.Node double int org.graalvm.compiler.graph.Node java.util.Iterator double
StackMap stack:
11: dload 8
dload 3
dcmpl
ifne 13
12: aload 1
aload 6
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 6 13: StackMap locals: org.graalvm.compiler.nodes.ControlSplitNode java.util.ArrayList org.graalvm.compiler.graph.Node double int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
14: aload 2
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 controlSplit Lorg/graalvm/compiler/nodes/ControlSplitNode;
0 15 1 pathBeginNodes Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;
1 15 2 maxSux Lorg/graalvm/compiler/graph/Node;
2 15 3 maxProbability D
3 15 5 pathBeginCount I
5 13 6 sux Lorg/graalvm/compiler/graph/Node;
6 13 8 probability D
Signature: (Lorg/graalvm/compiler/nodes/ControlSplitNode;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;)Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
controlSplit
pathBeginNodes
private org.graalvm.compiler.graph.Node getMaxProbabilityLoopExit(org.graalvm.compiler.nodes.LoopBeginNode, java.util.ArrayList<org.graalvm.compiler.nodes.FixedNode>);
descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/ArrayList;)Lorg/graalvm/compiler/graph/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: dconst_0
dstore 4
start local 4 2: aload 2
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 3: aload 1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopExits:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.nodes.LoopBeginNode java.util.ArrayList org.graalvm.compiler.graph.Node double int top java.util.Iterator
StackMap stack:
4: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 7
start local 7 5: aload 0
getfield org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.nodeProbabilities:Ljava/util/function/ToDoubleFunction;
aload 7
invokeinterface java.util.function.ToDoubleFunction.applyAsDouble:(Ljava/lang/Object;)D
dstore 9
start local 9 6: dload 9
dload 4
dcmpl
ifle 11
7: dload 9
dstore 4
8: aload 7
astore 3
9: aload 2
iload 6
invokestatic org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance.truncate:(Ljava/util/ArrayList;I)V
10: goto 13
StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.nodes.LoopBeginNode java.util.ArrayList org.graalvm.compiler.graph.Node double int org.graalvm.compiler.nodes.LoopExitNode java.util.Iterator double
StackMap stack:
11: dload 9
dload 4
dcmpl
ifne 13
12: aload 2
aload 7
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 7 13: StackMap locals: org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance org.graalvm.compiler.nodes.LoopBeginNode java.util.ArrayList org.graalvm.compiler.graph.Node double int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
14: aload 3
areturn
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance;
0 15 1 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
0 15 2 pathBeginNodes Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;
1 15 3 maxSux Lorg/graalvm/compiler/graph/Node;
2 15 4 maxProbability D
3 15 6 pathBeginCount I
5 13 7 sux Lorg/graalvm/compiler/nodes/LoopExitNode;
6 13 9 probability D
Signature: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;)Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
loopBegin
pathBeginNodes
private static void truncate(java.util.ArrayList<org.graalvm.compiler.nodes.FixedNode>, );
descriptor: (Ljava/util/ArrayList;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.util.ArrayList.size:()I
iload 1
isub
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
aload 0
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
3: iinc 2 -1
StackMap locals:
StackMap stack:
4: iload 2
ifgt 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 pathBeginNodes Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;
0 6 1 pathBeginCount I
1 5 2 i I
Signature: (Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;I)V
MethodParameters:
Name Flags
pathBeginNodes
pathBeginCount
}
SourceFile: "ComputeInliningRelevance.java"
NestMembers:
org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope
InnerClasses:
private Scope = org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance$Scope of org.graalvm.compiler.phases.common.inlining.walker.ComputeInliningRelevance