public class org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy extends org.graalvm.compiler.phases.common.inlining.policy.AbstractInliningPolicy
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy
super_class: org.graalvm.compiler.phases.common.inlining.policy.AbstractInliningPolicy
{
private static final org.graalvm.compiler.debug.CounterKey inliningStoppedByMaxDesiredSizeCounter;
descriptor: Lorg/graalvm/compiler/debug/CounterKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "InliningStoppedByMaxDesiredSize"
invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
putstatic org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.inliningStoppedByMaxDesiredSizeCounter:Lorg/graalvm/compiler/debug/CounterKey;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.util.Map<org.graalvm.compiler.nodes.Invoke, java.lang.Double>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.graalvm.compiler.phases.common.inlining.policy.AbstractInliningPolicy.<init>:(Ljava/util/Map;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/phases/common/inlining/policy/GreedyInliningPolicy;
0 2 1 hints Ljava/util/Map<Lorg/graalvm/compiler/nodes/Invoke;Ljava/lang/Double;>;
Signature: (Ljava/util/Map<Lorg/graalvm/compiler/nodes/Invoke;Ljava/lang/Double;>;)V
MethodParameters:
Name Flags
hints
public boolean continueInlining(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.getNodeCount:(Lorg/graalvm/compiler/nodes/StructuredGraph;)I
getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumDesiredSize:Lorg/graalvm/compiler/options/OptionKey;
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
if_icmplt 5
1: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 2: aload 2
ldc "inlining is cut off by MaximumDesiredSize"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInliningDecision:(Lorg/graalvm/compiler/debug/DebugContext;Ljava/lang/String;[Ljava/lang/Object;)V
3: getstatic org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.inliningStoppedByMaxDesiredSizeCounter:Lorg/graalvm/compiler/debug/CounterKey;
aload 2
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
4: iconst_0
ireturn
end local 2 5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/phases/common/inlining/policy/GreedyInliningPolicy;
0 6 1 currentGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 5 2 debug Lorg/graalvm/compiler/debug/DebugContext;
MethodParameters:
Name Flags
currentGraph
public boolean isWorthInlining(org.graalvm.compiler.nodes.spi.Replacements, org.graalvm.compiler.phases.common.inlining.walker.MethodInvocation, int, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/phases/common/inlining/walker/MethodInvocation;IZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=19, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.MethodInvocation.callee:()Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;
astore 5
start local 5 1: aload 5
invokeinterface org.graalvm.compiler.phases.common.inlining.info.InlineInfo.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
astore 6
start local 6 2: aload 2
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.MethodInvocation.probability:()D
dstore 7
start local 7 3: aload 2
invokevirtual org.graalvm.compiler.phases.common.inlining.walker.MethodInvocation.relevance:()D
dstore 9
start local 9 4: getstatic org.graalvm.compiler.core.common.GraalOptions.InlineEverything:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 7
5: aload 5
iload 3
iload 4
ldc "inline everything"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;IZLjava/lang/String;[Ljava/lang/Object;)V
6: iconst_1
ireturn
7: StackMap locals: org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy org.graalvm.compiler.nodes.spi.Replacements org.graalvm.compiler.phases.common.inlining.walker.MethodInvocation int int org.graalvm.compiler.phases.common.inlining.info.InlineInfo org.graalvm.compiler.options.OptionValues double double
StackMap stack:
aload 0
aload 1
aload 5
invokevirtual org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.isIntrinsic:(Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;)Z
ifeq 10
8: aload 5
iload 3
iload 4
ldc "intrinsic"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;IZLjava/lang/String;[Ljava/lang/Object;)V
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 5
invokeinterface org.graalvm.compiler.phases.common.inlining.info.InlineInfo.shouldInline:()Z
ifeq 13
11: aload 5
iload 3
iload 4
ldc "forced inlining"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;IZLjava/lang/String;[Ljava/lang/Object;)V
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.getInliningBonus:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;)D
dstore 11
start local 11 14: aload 5
invokeinterface org.graalvm.compiler.phases.common.inlining.info.InlineInfo.determineNodeCount:()I
istore 13
start local 13 15: aload 5
invokestatic org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.previousLowLevelGraphSize:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;)I
istore 14
start local 14 16: getstatic org.graalvm.compiler.core.common.GraalOptions.SmallCompiledLowLevelGraphSize:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ifle 21
iload 14
i2d
getstatic org.graalvm.compiler.core.common.GraalOptions.SmallCompiledLowLevelGraphSize:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2d
dload 11
dmul
dcmpl
ifle 21
17: aload 5
iload 3
ldc "too large previous low-level graph (low-level-nodes: %d, relevance=%f, probability=%f, bonus=%f, nodes=%d)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
18: dload 9
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_4
iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
19: invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logNotInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;ILjava/lang/String;[Ljava/lang/Object;)V
20: iconst_0
ireturn
21: StackMap locals: double int int
StackMap stack:
iload 13
i2d
getstatic org.graalvm.compiler.core.common.GraalOptions.TrivialInliningSize:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2d
dload 11
dmul
dcmpg
ifge 24
22: aload 5
iload 3
iload 4
ldc "trivial (relevance=%f, probability=%f, bonus=%f, nodes=%d)"
iconst_4
anewarray java.lang.Object
dup
iconst_0
dload 9
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;IZLjava/lang/String;[Ljava/lang/Object;)V
23: iconst_1
ireturn
24: StackMap locals:
StackMap stack:
aload 5
invokestatic org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.determineInvokeProbability:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;)D
dstore 15
start local 15 25: getstatic org.graalvm.compiler.core.common.GraalOptions.LimitInlinedInvokes:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dconst_0
dcmpl
ifle 30
iload 4
ifeq 30
dload 15
getstatic org.graalvm.compiler.core.common.GraalOptions.LimitInlinedInvokes:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dload 11
dmul
dcmpl
ifle 30
26: aload 5
iload 3
ldc "callee invoke probability is too high (invokeP=%f, relevance=%f, probability=%f, bonus=%f, nodes=%d)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
dload 15
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
dload 9
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
27: dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_4
iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
28: invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logNotInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;ILjava/lang/String;[Ljava/lang/Object;)V
29: iconst_0
ireturn
30: StackMap locals: double
StackMap stack:
aload 0
dload 9
getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumInliningSize:Lorg/graalvm/compiler/options/OptionKey;
aload 6
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2d
dload 11
dmul
d2i
invokevirtual org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy.computeMaximumSize:(DI)D
dstore 17
start local 17 31: iload 13
i2d
dload 17
dcmpg
ifgt 36
32: aload 5
iload 3
iload 4
ldc "relevance-based (relevance=%f, probability=%f, bonus=%f, nodes=%d <= %f)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
dload 9
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
33: iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
dload 17
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
34: invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;IZLjava/lang/String;[Ljava/lang/Object;)V
35: iconst_1
ireturn
36: StackMap locals: double
StackMap stack:
aload 5
iload 3
ldc "relevance-based (relevance=%f, probability=%f, bonus=%f, nodes=%d > %f)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
dload 9
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_1
dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_2
dload 11
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
dload 17
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic org.graalvm.compiler.phases.common.inlining.InliningUtil.logNotInlinedMethod:(Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;ILjava/lang/String;[Ljava/lang/Object;)V
37: iconst_0
ireturn
end local 17 end local 15 end local 14 end local 13 end local 11 end local 9 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 38 0 this Lorg/graalvm/compiler/phases/common/inlining/policy/GreedyInliningPolicy;
0 38 1 replacements Lorg/graalvm/compiler/nodes/spi/Replacements;
0 38 2 invocation Lorg/graalvm/compiler/phases/common/inlining/walker/MethodInvocation;
0 38 3 inliningDepth I
0 38 4 fullyProcessed Z
1 38 5 info Lorg/graalvm/compiler/phases/common/inlining/info/InlineInfo;
2 38 6 options Lorg/graalvm/compiler/options/OptionValues;
3 38 7 probability D
4 38 9 relevance D
14 38 11 inliningBonus D
15 38 13 nodes I
16 38 14 lowLevelGraphSize I
25 38 15 invokes D
31 38 17 maximumNodes D
MethodParameters:
Name Flags
replacements
invocation
inliningDepth
fullyProcessed
}
SourceFile: "GreedyInliningPolicy.java"