public abstract class org.graalvm.compiler.loop.phases.LoopTransformations
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.loop.phases.LoopTransformations
super_class: java.lang.Object
{
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/loop/phases/LoopTransformations;
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.loop.phases.LoopTransformations.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/phases/LoopTransformations;
public static void peel(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.insertBefore:(Lorg/graalvm/compiler/loop/LoopEx;)V
1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
dconst_0
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
dconst_1
dsub
invokestatic java.lang.Math.max:(DD)D
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setLoopFrequency:(D)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 loop Lorg/graalvm/compiler/loop/LoopEx;
MethodParameters:
Name Flags
loop
public static void fullUnroll(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.phases.tiers.PhaseContext, org.graalvm.compiler.phases.common.CanonicalizerPhase);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 2: aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
istore 5
start local 5 3: goto 10
4: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.StructuredGraph int
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
astore 6
start local 6 5: aload 0
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.peel:(Lorg/graalvm/compiler/loop/LoopEx;)V
6: aload 2
aload 4
aload 1
aload 6
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.applyIncremental:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;Lorg/graalvm/compiler/graph/Graph$Mark;)V
7: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.invalidateFragments:()V
8: aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodeCount:()I
iload 5
getstatic org.graalvm.compiler.core.common.GraalOptions.MaximumDesiredSize:Lorg/graalvm/compiler/options/OptionKey;
aload 4
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
iconst_2
imul
iadd
if_icmple 10
9: new org.graalvm.compiler.core.common.RetryableBailoutException
dup
ldc "FullUnroll : Graph seems to grow out of proportion"
invokespecial org.graalvm.compiler.core.common.RetryableBailoutException.<init>:(Ljava/lang/String;)V
athrow
end local 6 10: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isDeleted:()Z
ifeq 4
11: return
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 12 0 loop Lorg/graalvm/compiler/loop/LoopEx;
0 12 1 context Lorg/graalvm/compiler/phases/tiers/PhaseContext;
0 12 2 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
1 12 3 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
2 12 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 12 5 initialNodeCount I
5 10 6 mark Lorg/graalvm/compiler/graph/Graph$Mark;
MethodParameters:
Name Flags
loop
context
canonicalizer
public static void unswitch(org.graalvm.compiler.loop.LoopEx, java.util.List<org.graalvm.compiler.nodes.ControlSplitNode>);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=16, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
astore 3
start local 3 2: aload 2
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 3: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.incrementUnswitches:()V
4: aload 2
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.copyWithInputs:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 5
start local 5 5: aload 3
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.entryPoint:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 5
invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
6: aload 2
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.successorPositions:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
start local 6 7: getstatic org.graalvm.compiler.loop.phases.LoopTransformations.$assertionsDisabled:Z
ifne 8
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ControlSplitNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Position
astore 7
start local 7 9: aload 3
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.entryPoint:()Lorg/graalvm/compiler/nodes/FixedNode;
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 8
start local 8 10: aload 7
aload 5
aload 8
invokevirtual org.graalvm.compiler.graph.Position.set:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
11: aload 8
aload 7
aload 2
invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
12: goto 26
13: StackMap locals: org.graalvm.compiler.graph.Position org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Position
astore 9
start local 9 14: aload 3
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
astore 10
start local 10 15: aload 10
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.entryPoint:()Lorg/graalvm/compiler/nodes/FixedNode;
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 11
start local 11 16: aload 11
aload 9
aload 2
invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
17: aload 9
aload 5
aload 11
invokevirtual org.graalvm.compiler.graph.Position.set:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
18: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 25
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ControlSplitNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator org.graalvm.compiler.graph.Position org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.graph.Position org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.AbstractBeginNode top java.util.Iterator
StackMap stack:
19: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 12
start local 12 20: aload 10
aload 12
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 14
start local 14 21: aload 14
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.isAlive:()Z
ifeq 25
22: aload 9
aload 14
invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 15
start local 15 23: aload 15
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 11
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
24: aload 4
aload 14
aload 15
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
end local 15 end local 14 end local 12 25: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
end local 11 end local 10 end local 9 26: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ControlSplitNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator org.graalvm.compiler.graph.Position org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
27: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 33
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ControlSplitNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator org.graalvm.compiler.graph.Position org.graalvm.compiler.nodes.AbstractBeginNode top java.util.Iterator
StackMap stack:
28: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ControlSplitNode
astore 9
start local 9 29: aload 9
invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.isAlive:()Z
ifeq 33
30: aload 7
aload 9
invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 11
start local 11 31: aload 11
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 8
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
32: aload 4
aload 9
aload 11
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
end local 11 end local 9 33: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
34: 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 35 0 loop Lorg/graalvm/compiler/loop/LoopEx;
0 35 1 controlSplitNodeSet Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
1 35 2 firstNode Lorg/graalvm/compiler/nodes/ControlSplitNode;
2 35 3 originalLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
3 35 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
5 35 5 newControlSplit Lorg/graalvm/compiler/nodes/ControlSplitNode;
7 35 6 successors Ljava/util/Iterator<Lorg/graalvm/compiler/graph/Position;>;
9 35 7 firstPosition Lorg/graalvm/compiler/graph/Position;
10 35 8 originalLoopBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
14 26 9 position Lorg/graalvm/compiler/graph/Position;
15 26 10 duplicateLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
16 26 11 newBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
20 25 12 controlSplitNode Lorg/graalvm/compiler/nodes/ControlSplitNode;
21 25 14 duplicatedControlSplit Lorg/graalvm/compiler/nodes/ControlSplitNode;
23 25 15 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
29 33 9 controlSplitNode Lorg/graalvm/compiler/nodes/ControlSplitNode;
31 33 11 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;)V
MethodParameters:
Name Flags
loop
controlSplitNodeSet
public static void partialUnroll(org.graalvm.compiler.loop.LoopEx, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.LoopBeginNode, org.graalvm.compiler.nodes.extended.OpaqueNode>);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.loop.phases.LoopTransformations.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isMainLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
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.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "LoopPartialUnroll %s"
aload 0
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
astore 2
start local 2 3: aload 2
aload 0
aload 1
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.insertWithinAfter:(Lorg/graalvm/compiler/loop/LoopEx;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 loop Lorg/graalvm/compiler/loop/LoopEx;
0 5 1 opaqueUnrolledStrides Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/nodes/extended/OpaqueNode;>;
3 5 2 newSegment Lorg/graalvm/compiler/loop/LoopFragmentInside;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/nodes/extended/OpaqueNode;>;)V
MethodParameters:
Name Flags
loop
opaqueUnrolledStrides
public static org.graalvm.compiler.nodes.LoopBeginNode insertPrePostLoops(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Lorg/graalvm/compiler/nodes/LoopBeginNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=22, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "LoopTransformations.insertPrePostLoops %s"
aload 0
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
astore 2
start local 2 3: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getLimitTest:()Lorg/graalvm/compiler/nodes/IfNode;
astore 4
start local 4 5: getstatic org.graalvm.compiler.loop.phases.LoopTransformations.$assertionsDisabled:Z
ifne 6
aload 4
ifnonnull 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.CountedLoopInfo org.graalvm.compiler.nodes.IfNode
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 5
start local 5 7: aload 5
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.getSingleLoopExit:()Lorg/graalvm/compiler/nodes/LoopExitNode;
astore 6
start local 6 8: aload 6
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 7
start local 7 9: aload 2
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
astore 8
start local 8 10: aload 2
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
astore 9
start local 9 11: aload 5
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.incrementSplits:()V
12: aload 5
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.incrementSplits:()V
13: aload 5
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setPreLoop:()V
14: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_3
aload 1
ldc "After duplication"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
15: aload 8
aload 5
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
astore 10
start local 10 16: aload 10
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setMainLoop:()V
17: aload 9
aload 5
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
astore 11
start local 11 18: aload 11
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setPostLoop:()V
19: aload 11
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.getBlockEndAfterLoopExit:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/nodes/EndNode;
astore 12
start local 12 20: aload 12
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 13
start local 13 21: aload 11
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.getSingleLoopExit:()Lorg/graalvm/compiler/nodes/LoopExitNode;
astore 14
start local 14 22: aload 5
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 16
goto 26
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.CountedLoopInfo org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.LoopExitNode top java.util.Iterator
StackMap stack:
23: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 15
start local 15 24: aload 8
aload 15
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 17
start local 17 25: aload 17
iconst_0
aload 15
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 17 end local 15 26: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
27: aload 10
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.getBlockEndAfterLoopExit:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/nodes/EndNode;
astore 15
start local 15 28: aload 15
invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 16
start local 16 29: aload 11
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
astore 17
start local 17 30: aload 17
invokestatic org.graalvm.compiler.nodes.BeginNode.begin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 18
start local 18 31: aload 10
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.getSingleLoopExit:()Lorg/graalvm/compiler/nodes/LoopExitNode;
astore 19
start local 19 32: aload 19
aload 18
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
33: aload 6
aload 10
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
34: aload 0
aload 8
aload 9
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.processPreLoopPhis:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/LoopFragmentWhole;Lorg/graalvm/compiler/loop/LoopFragmentWhole;)V
35: aload 7
invokevirtual org.graalvm.compiler.nodes.FixedNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.graph.Node.clearSuccessors:()V
36: aload 14
aload 7
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
37: aload 13
aload 14
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.cleanupMerge:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
38: aload 16
aload 18
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.cleanupMerge:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
39: aload 3
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.updatePreLoopLimit:(Lorg/graalvm/compiler/loop/CountedLoopInfo;)V
40: aload 5
dconst_1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setLoopFrequency:(D)V
41: aload 10
dconst_0
aload 10
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
ldc 2.0
dsub
invokestatic java.lang.Math.max:(DD)D
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setLoopFrequency:(D)V
42: aload 11
dconst_0
aload 11
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopFrequency:()D
dconst_1
dsub
invokestatic java.lang.Math.max:(DD)D
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setLoopFrequency:(D)V
43: aload 2
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
ldc Lorg/graalvm/compiler/nodes/SafepointNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 21
goto 46
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.CountedLoopInfo org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LoopExitNode top java.util.Iterator
StackMap stack:
44: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.SafepointNode
astore 20
start local 20 45: aload 1
aload 20
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 20 46: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 44
47: aload 9
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
ldc Lorg/graalvm/compiler/nodes/SafepointNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 21
goto 50
StackMap locals:
StackMap stack:
48: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.SafepointNode
astore 20
start local 20 49: aload 1
aload 20
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 20 50: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
51: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 1
ldc "InsertPrePostLoops %s"
aload 0
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
52: aload 10
areturn
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 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 53 0 loop Lorg/graalvm/compiler/loop/LoopEx;
1 53 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 53 2 preLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
4 53 3 preCounted Lorg/graalvm/compiler/loop/CountedLoopInfo;
5 53 4 preLimit Lorg/graalvm/compiler/nodes/IfNode;
7 53 5 preLoopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
8 53 6 preLoopExitNode Lorg/graalvm/compiler/nodes/LoopExitNode;
9 53 7 continuationNode Lorg/graalvm/compiler/nodes/FixedNode;
10 53 8 mainLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
11 53 9 postLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
16 53 10 mainLoopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
18 53 11 postLoopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
20 53 12 postEndNode Lorg/graalvm/compiler/nodes/EndNode;
21 53 13 postMergeNode Lorg/graalvm/compiler/nodes/AbstractMergeNode;
22 53 14 postLoopExitNode Lorg/graalvm/compiler/nodes/LoopExitNode;
24 26 15 prePhiNode Lorg/graalvm/compiler/nodes/PhiNode;
25 26 17 mainPhiNode Lorg/graalvm/compiler/nodes/PhiNode;
28 53 15 mainEndNode Lorg/graalvm/compiler/nodes/EndNode;
29 53 16 mainMergeNode Lorg/graalvm/compiler/nodes/AbstractMergeNode;
30 53 17 postEntryNode Lorg/graalvm/compiler/nodes/AbstractEndNode;
31 53 18 mainLandingNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
32 53 19 mainLoopExitNode Lorg/graalvm/compiler/nodes/LoopExitNode;
45 46 20 safepoint Lorg/graalvm/compiler/nodes/SafepointNode;
49 50 20 safepoint Lorg/graalvm/compiler/nodes/SafepointNode;
MethodParameters:
Name Flags
loop
private static void cleanupMerge(org.graalvm.compiler.nodes.AbstractMergeNode, org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.cfgPredecessors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractBeginNode top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.EndNode
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
3: aload 2
invokevirtual org.graalvm.compiler.nodes.EndNode.safeDelete:()V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.prepareDelete:(Lorg/graalvm/compiler/nodes/FixedNode;)V
6: aload 0
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.safeDelete:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 mergeNode Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 8 1 landingNode Lorg/graalvm/compiler/nodes/AbstractBeginNode;
2 4 2 end Lorg/graalvm/compiler/nodes/EndNode;
MethodParameters:
Name Flags
mergeNode
landingNode
private static void processPreLoopPhis(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.loop.LoopFragmentWhole, org.graalvm.compiler.loop.LoopFragmentWhole);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/LoopFragmentWhole;Lorg/graalvm/compiler/loop/LoopFragmentWhole;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 13
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 4
start local 4 3: aload 2
aload 4
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 6
start local 6 4: aload 1
aload 4
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 7
start local 7 5: aload 6
iconst_0
aload 7
invokevirtual org.graalvm.compiler.nodes.PhiNode.setValueAt:(ILorg/graalvm/compiler/nodes/ValueNode;)V
6: aload 4
invokevirtual org.graalvm.compiler.nodes.PhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 12
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.PhiNode java.util.Iterator org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
7: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 8: aload 8
aload 7
if_acmpne 10
9: goto 12
10: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.PhiNode java.util.Iterator org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 0
aload 8
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 12
11: aload 8
aload 4
aload 6
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
end local 8 12: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.PhiNode java.util.Iterator org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 7 end local 6 end local 4 13: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
14: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.iterator:()Ljava/util/Iterator;
astore 5
goto 23
StackMap locals:
StackMap stack:
15: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4
start local 4 16: aload 4
invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 22
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
17: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 18: aload 0
aload 6
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 22
19: aload 2
aload 4
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
astore 8
start local 8 20: getstatic org.graalvm.compiler.loop.phases.LoopTransformations.$assertionsDisabled:Z
ifne 21
aload 8
ifnonnull 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.graph.Node
StackMap stack:
aload 6
aload 4
aload 8
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
end local 8 end local 6 22: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
end local 4 23: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.loop.LoopFragmentWhole org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 preLoop Lorg/graalvm/compiler/loop/LoopEx;
0 25 1 mainLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
0 25 2 postLoop Lorg/graalvm/compiler/loop/LoopFragmentWhole;
1 25 3 preLoopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
3 13 4 prePhiNode Lorg/graalvm/compiler/nodes/PhiNode;
4 13 6 postPhiNode Lorg/graalvm/compiler/nodes/PhiNode;
5 13 7 mainPhiNode Lorg/graalvm/compiler/nodes/PhiNode;
8 12 8 usage Lorg/graalvm/compiler/graph/Node;
16 23 4 node Lorg/graalvm/compiler/graph/Node;
18 22 6 externalUsage Lorg/graalvm/compiler/graph/Node;
20 22 8 postUsage Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
preLoop
mainLoop
postLoop
private static org.graalvm.compiler.nodes.EndNode getBlockEndAfterLoopExit(org.graalvm.compiler.nodes.LoopBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/nodes/EndNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.getSingleLoopExit:()Lorg/graalvm/compiler/nodes/LoopExitNode;
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 1
start local 1 1: aload 1
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.getBlockEnd:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/EndNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 curLoopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
1 2 1 node Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
curLoopBegin
private static org.graalvm.compiler.nodes.EndNode getBlockEnd(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/EndNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 3
2: StackMap locals: org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 1
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifne 2
4: aload 1
checkcast org.graalvm.compiler.nodes.EndNode
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 node Lorg/graalvm/compiler/nodes/FixedNode;
1 5 1 curNode Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
node
private static void updatePreLoopLimit(org.graalvm.compiler.loop.CountedLoopInfo);
descriptor: (Lorg/graalvm/compiler/loop/CountedLoopInfo;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getStart:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getCounter:()Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.strideNode:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.AddNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getLimit:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 2: aload 0
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getDirection:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpne 5
3: aload 1
aload 2
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;
astore 3
start local 3 4: goto 6
end local 3 5: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 2
aload 1
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;
astore 3
start local 3 6: StackMap locals: org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 3
aload 1
aload 2
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.ConditionalNode.create:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 1
7: aload 0
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getLimitTest:()Lorg/graalvm/compiler/nodes/IfNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 4
start local 4 8: aload 4
aload 2
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 preCounted Lorg/graalvm/compiler/loop/CountedLoopInfo;
1 10 1 newLimit Lorg/graalvm/compiler/nodes/ValueNode;
2 10 2 ub Lorg/graalvm/compiler/nodes/ValueNode;
4 5 3 entryCheck Lorg/graalvm/compiler/nodes/LogicNode;
6 10 3 entryCheck Lorg/graalvm/compiler/nodes/LogicNode;
8 10 4 compareNode Lorg/graalvm/compiler/nodes/calc/CompareNode;
MethodParameters:
Name Flags
preCounted
public static java.util.List<org.graalvm.compiler.nodes.ControlSplitNode> findUnswitchable(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
ldc Lorg/graalvm/compiler/nodes/IfNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.IfNode
astore 3
start local 3 4: aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 12
5: aload 1
ifnonnull 10
6: aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 2
7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
8: aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: goto 12
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.IfNode java.util.Iterator
StackMap stack:
10: aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 2
if_acmpne 12
11: aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 12: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: aload 1
ifnonnull 27
14: aconst_null
astore 3
start local 3 15: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
ldc Lorg/graalvm/compiler/nodes/extended/SwitchNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 26
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.SwitchNode top java.util.Iterator
StackMap stack:
16: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.extended.SwitchNode
astore 4
start local 4 17: aload 4
invokevirtual org.graalvm.compiler.nodes.extended.SwitchNode.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmple 26
aload 0
aload 4
invokevirtual org.graalvm.compiler.nodes.extended.SwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 26
18: aload 1
ifnonnull 24
19: aload 4
astore 3
20: aload 4
invokevirtual org.graalvm.compiler.nodes.extended.SwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
21: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
22: aload 1
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: goto 26
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.SwitchNode org.graalvm.compiler.nodes.extended.SwitchNode java.util.Iterator
StackMap stack:
24: aload 4
invokevirtual org.graalvm.compiler.nodes.extended.SwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 26
aload 3
aload 4
invokevirtual org.graalvm.compiler.nodes.extended.SwitchNode.structureEquals:(Lorg/graalvm/compiler/nodes/extended/SwitchNode;)Z
ifeq 26
25: aload 1
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 26: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.SwitchNode top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 3 27: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 loop Lorg/graalvm/compiler/loop/LoopEx;
1 28 1 controls Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
2 28 2 invariantValue Lorg/graalvm/compiler/nodes/ValueNode;
4 12 3 ifNode Lorg/graalvm/compiler/nodes/IfNode;
15 27 3 firstSwitch Lorg/graalvm/compiler/nodes/extended/SwitchNode;
17 26 4 switchNode Lorg/graalvm/compiler/nodes/extended/SwitchNode;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
MethodParameters:
Name Flags
loop
public static boolean isUnrollableLoop(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.isCounted:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getCounter:()Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantStride:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getChildren:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.loop.phases.LoopTransformations.$assertionsDisabled:Z
ifne 3
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getDirection:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 1
start local 1 4: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getLimitTest:()Lorg/graalvm/compiler/nodes/IfNode;
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 2
start local 2 5: aload 2
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifne 7
6: iconst_0
ireturn
7: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LogicNode
StackMap stack:
aload 2
checkcast org.graalvm.compiler.nodes.calc.CompareNode
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
getstatic org.graalvm.compiler.core.common.calc.CanonicalCondition.EQ:Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
if_acmpne 10
8: aload 2
invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_3
ldc "isUnrollableLoop %s condition unsupported %s "
aload 1
aload 2
checkcast org.graalvm.compiler.nodes.calc.CompareNode
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getCounter:()Lorg/graalvm/compiler/loop/InductionVariable;
invokevirtual org.graalvm.compiler.loop.InductionVariable.constantStride:()J
lstore 3
start local 3 11: lload 3
lload 3
invokestatic java.lang.Math.addExact:(JJ)J
pop2
12: goto 16
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LogicNode long
StackMap stack: java.lang.ArithmeticException
13: pop
14: aload 2
invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_3
ldc "isUnrollableLoop %s doubling the stride overflows %d"
aload 1
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isMainLoop:()Z
ifne 17
aload 1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isSimpleLoop:()Z
ifeq 20
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_3
if_icmpge 19
18: iconst_1
ireturn
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_3
ldc "isUnrollableLoop %s too large to unroll %s "
aload 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;I)V
20: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 loop Lorg/graalvm/compiler/loop/LoopEx;
4 21 1 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
5 21 2 condition Lorg/graalvm/compiler/nodes/LogicNode;
11 21 3 stride J
Exception table:
from to target type
11 12 13 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
loop
}
SourceFile: "LoopTransformations.java"
InnerClasses:
public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
public final Direction = org.graalvm.compiler.loop.InductionVariable$Direction of org.graalvm.compiler.loop.InductionVariable