public class org.graalvm.compiler.loop.DefaultLoopPolicies implements org.graalvm.compiler.loop.LoopPolicies
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.DefaultLoopPolicies
super_class: java.lang.Object
{
public static final org.graalvm.compiler.options.OptionValue<java.lang.Integer> LoopUnswitchMaxIncrease;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
public static final org.graalvm.compiler.options.OptionValue<java.lang.Integer> LoopUnswitchTrivial;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
public static final org.graalvm.compiler.options.OptionValue<java.lang.Double> LoopUnswitchFrequencyBoost;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Double;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
public static final org.graalvm.compiler.options.OptionValue<java.lang.Integer> FullUnrollMaxNodes;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
public static final org.graalvm.compiler.options.OptionValue<java.lang.Integer> FullUnrollMaxIterations;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
public static final org.graalvm.compiler.options.OptionValue<java.lang.Integer> ExactFullUnrollMaxNodes;
descriptor: Lorg/graalvm/compiler/options/OptionValue;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/options/OptionValue<Ljava/lang/Integer;>;
RuntimeInvisibleAnnotations:
org.graalvm.compiler.options.Option(help = "", type = org.graalvm.compiler.options.OptionType.Expert:Lorg/graalvm/compiler/options/OptionType;)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new org.graalvm.compiler.options.OptionValue
dup
sipush 500
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchMaxIncrease:Lorg/graalvm/compiler/options/OptionValue;
1: new org.graalvm.compiler.options.OptionValue
dup
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchTrivial:Lorg/graalvm/compiler/options/OptionValue;
2: new org.graalvm.compiler.options.OptionValue
dup
ldc 10.0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchFrequencyBoost:Lorg/graalvm/compiler/options/OptionValue;
3: new org.graalvm.compiler.options.OptionValue
dup
sipush 300
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.FullUnrollMaxNodes:Lorg/graalvm/compiler/options/OptionValue;
4: new org.graalvm.compiler.options.OptionValue
dup
sipush 600
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.FullUnrollMaxIterations:Lorg/graalvm/compiler/options/OptionValue;
5: new org.graalvm.compiler.options.OptionValue
dup
sipush 1200
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial org.graalvm.compiler.options.OptionValue.<init>:(Ljava/lang/Object;)V
putstatic org.graalvm.compiler.loop.DefaultLoopPolicies.ExactFullUnrollMaxNodes:Lorg/graalvm/compiler/options/OptionValue;
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 java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/DefaultLoopPolicies;
public boolean shouldPeel(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.nodes.cfg.ControlFlowGraph, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 4
start local 4 1: aload 2
aload 4
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.nodes.cfg.Block.probability:()D
dstore 5
start local 5 2: dload 5
getstatic org.graalvm.compiler.core.common.GraalOptions.MinimumPeelProbability:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
f2d
dcmpl
ifle 4
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.size:()I
aload 4
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
iadd
getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumDesiredSize:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
if_icmpge 4
3: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.canDuplicateLoop:()Z
ireturn
4: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode double
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/loop/DefaultLoopPolicies;
0 5 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 5 2 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
0 5 3 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
1 5 4 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
2 5 5 entryProbability D
MethodParameters:
Name Flags
loop
cfg
metaAccess
public boolean shouldFullUnroll(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.isCounted:()Z
ifeq 1
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.isConstantMaxTripCount:()Z
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.constantMaxTripCount:()J
lstore 3
start local 3 4: aload 2
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.isExactTripCount:()Z
ifeq 5
aload 2
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.isConstantExactTripCount:()Z
ifeq 5
getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.ExactFullUnrollMaxNodes:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
goto 6
StackMap locals: org.graalvm.compiler.loop.CountedLoopInfo long
StackMap stack:
5: getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.FullUnrollMaxNodes:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
StackMap locals:
StackMap stack: java.lang.Integer
6: invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 7: iload 5
iconst_0
getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumDesiredSize:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
isub
invokestatic java.lang.Math.max:(II)I
invokestatic java.lang.Math.min:(II)I
istore 5
8: iconst_1
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.size:()I
iconst_1
isub
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
isub
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 9: lload 3
getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.FullUnrollMaxIterations:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
lcmp
ifgt 11
iload 6
i2l
lload 3
lconst_1
lsub
lmul
iload 5
i2l
lcmp
ifgt 11
10: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.canDuplicateLoop:()Z
ireturn
11: StackMap locals: int int
StackMap stack:
iconst_0
ireturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/compiler/loop/DefaultLoopPolicies;
0 12 1 loop Lorg/graalvm/compiler/loop/LoopEx;
3 12 2 counted Lorg/graalvm/compiler/loop/CountedLoopInfo;
4 12 3 maxTrips J
7 12 5 maxNodes I
9 12 6 size I
MethodParameters:
Name Flags
loop
public boolean shouldTryUnswitch(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 2
start local 2 1: aload 2
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
dstore 3
start local 3 2: dload 3
dconst_1
dcmpg
ifgt 4
3: iconst_0
ireturn
4: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode double
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.unswitches:()I
getstatic org.graalvm.compiler.core.common.GraalOptions.LoopMaxUnswitch:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
if_icmpgt 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/loop/DefaultLoopPolicies;
0 6 1 loop Lorg/graalvm/compiler/loop/LoopEx;
1 6 2 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
2 6 3 loopFrequency D
MethodParameters:
Name Flags
loop
public boolean shouldUnswitch(org.graalvm.compiler.loop.LoopEx, java.util.List<org.graalvm.compiler.nodes.ControlSplitNode>);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=18, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
astore 4
start local 4 2: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 5
start local 5 4: aload 5
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 8
goto 8
StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator top java.util.Iterator
StackMap stack:
5: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 6: aload 7
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 9
start local 9 7: aload 1
aload 4
aload 9
invokevirtual org.graalvm.compiler.loop.LoopEx.nodesInLoopBranch:(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
end local 9 end local 7 8: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopsData:()Lorg/graalvm/compiler/loop/LoopsData;
invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
aload 5
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getPostdominator:()Lorg/graalvm/compiler/nodes/cfg/Block;
astore 7
start local 7 10: aload 7
ifnull 13
11: getstatic org.graalvm.compiler.loop.DefaultLoopPolicies$IsolatedInitialization.UNSWITCH_SPLIT_WITH_PHIS:Lorg/graalvm/compiler/debug/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
12: iload 3
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.MergeNode
invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iadd
istore 3
end local 7 end local 5 13: StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
14: aload 4
invokevirtual org.graalvm.compiler.graph.NodeBitMap.count:()I
istore 5
start local 5 15: new org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure
dup
invokespecial org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure.<init>:()V
astore 6
start local 6 16: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
dstore 7
start local 7 17: getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchTrivial:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchFrequencyBoost:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dload 7
dconst_1
dsub
iload 3
i2d
dadd
dmul
d2i
iadd
istore 9
start local 9 18: iload 9
getstatic org.graalvm.compiler.loop.DefaultLoopPolicies.LoopUnswitchMaxIncrease:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokestatic java.lang.Math.min:(II)I
istore 9
19: getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumDesiredSize:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
isub
istore 10
start local 10 20: iload 9
iload 10
invokestatic java.lang.Math.min:(II)I
istore 9
21: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
aload 6
invokevirtual org.graalvm.compiler.nodes.FrameState.applyToVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;)V
22: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.size:()I
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
isub
aload 6
getfield org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure.count:I
isub
iconst_1
isub
istore 11
start local 11 23: iload 11
iload 5
isub
istore 12
start local 12 24: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 13
start local 13 25: aload 13
instanceof org.graalvm.compiler.nodes.java.TypeSwitchNode
ifeq 37
26: aload 13
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
isub
istore 14
start local 14 27: aload 13
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 16
goto 35
StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode int top java.util.Iterator
StackMap stack:
28: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 15
start local 15 29: aload 15
checkcast org.graalvm.compiler.nodes.FixedNode
astore 17
start local 17 30: goto 32
31: StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode int org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 17
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 17
32: StackMap locals:
StackMap stack:
aload 17
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifne 31
33: aload 17
instanceof org.graalvm.compiler.nodes.DeoptimizeNode
ifeq 35
34: iinc 14 -1
end local 17 end local 15 35: StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode int top java.util.Iterator
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
36: iload 12
iload 14
imul
istore 12
end local 14 37: StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode
StackMap stack:
ldc "shouldUnswitch(%s, %s) : delta=%d (%.2f%% inside of branches), max=%d, f=%.2f, phis=%d -> %b"
aload 1
aload 2
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 5
i2d
iload 11
i2d
ddiv
ldc 100.0
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
38: dload 7
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 12
iload 9
if_icmpgt 39
iconst_1
goto 40
StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode
StackMap stack: java.lang.String org.graalvm.compiler.loop.LoopEx java.util.List java.lang.Integer java.lang.Double java.lang.Integer java.lang.Double java.lang.Integer
39: iconst_0
StackMap locals: org.graalvm.compiler.loop.DefaultLoopPolicies org.graalvm.compiler.loop.LoopEx java.util.List int org.graalvm.compiler.graph.NodeBitMap int org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure double int int int int org.graalvm.compiler.nodes.ControlSplitNode
StackMap stack: java.lang.String org.graalvm.compiler.loop.LoopEx java.util.List java.lang.Integer java.lang.Double java.lang.Integer java.lang.Double java.lang.Integer int
40: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
41: invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
42: iload 12
iload 9
if_icmpgt 44
43: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.canDuplicateLoop:()Z
ireturn
44: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 13 end local 12 end local 11 end local 10 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 45 0 this Lorg/graalvm/compiler/loop/DefaultLoopPolicies;
0 45 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 45 2 controlSplits Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
1 45 3 phis I
2 45 4 branchNodes Lorg/graalvm/compiler/graph/NodeBitMap;
4 13 5 controlSplit Lorg/graalvm/compiler/nodes/ControlSplitNode;
6 8 7 successor Lorg/graalvm/compiler/graph/Node;
7 8 9 branch Lorg/graalvm/compiler/nodes/AbstractBeginNode;
10 13 7 postDomBlock Lorg/graalvm/compiler/nodes/cfg/Block;
15 45 5 inBranchTotal I
16 45 6 stateNodesCount Lorg/graalvm/compiler/loop/DefaultLoopPolicies$CountingClosure;
17 45 7 loopFrequency D
18 45 9 maxDiff I
20 45 10 remainingGraphSpace I
23 45 11 loopTotal I
24 45 12 actualDiff I
25 45 13 firstSplit Lorg/graalvm/compiler/nodes/ControlSplitNode;
27 37 14 copies I
29 35 15 succ Lorg/graalvm/compiler/graph/Node;
30 35 17 current Lorg/graalvm/compiler/nodes/FixedNode;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;)Z
MethodParameters:
Name Flags
loop
controlSplits
}
SourceFile: "DefaultLoopPolicies.java"
NestMembers:
org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure org.graalvm.compiler.loop.DefaultLoopPolicies$IsolatedInitialization
InnerClasses:
private final CountingClosure = org.graalvm.compiler.loop.DefaultLoopPolicies$CountingClosure of org.graalvm.compiler.loop.DefaultLoopPolicies
private IsolatedInitialization = org.graalvm.compiler.loop.DefaultLoopPolicies$IsolatedInitialization of org.graalvm.compiler.loop.DefaultLoopPolicies
public abstract VirtualClosure = org.graalvm.compiler.nodes.VirtualState$VirtualClosure of org.graalvm.compiler.nodes.VirtualState