public class org.graalvm.compiler.loop.LoopsData
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.LoopsData
super_class: java.lang.Object
{
private final jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.LoopBeginNode, org.graalvm.compiler.loop.LoopEx> loopBeginToEx;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/loop/LoopEx;>;
private final org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg;
descriptor: Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<org.graalvm.compiler.loop.LoopEx> loops;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/graalvm/compiler/loop/LoopEx;>;
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/LoopsData;
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.LoopsData.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.loop.LoopsData.loopBeginToEx:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 3: aconst_null
astore 3
aconst_null
astore 4
4: aload 2
ldc "ControlFlowGraph"
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 5
start local 5 5: aload 0
aload 1
iconst_1
iconst_1
iconst_1
iconst_1
invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.compute:(Lorg/graalvm/compiler/nodes/StructuredGraph;ZZZZ)Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
putfield org.graalvm.compiler.loop.LoopsData.cfg:Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
6: aload 5
ifnull 14
aload 5
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 14
StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
7: astore 3
aload 5
ifnull 8
aload 5
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 5 StackMap locals:
StackMap stack:
8: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 4
aload 3
ifnonnull 10
aload 4
astore 3
goto 11
StackMap locals:
StackMap stack:
10: aload 3
aload 4
if_acmpeq 11
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 3
athrow
StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext
StackMap stack: java.lang.Throwable
12: astore 3
start local 3 13: aload 2
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 14: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.loop.LoopsData.$assertionsDisabled:Z
ifne 15
aload 0
getfield org.graalvm.compiler.loop.LoopsData.cfg:Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getLoops:()Ljava/util/List;
invokestatic org.graalvm.compiler.loop.LoopsData.checkLoopOrder:(Ljava/lang/Iterable;)Z
ifne 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
aload 0
new java.util.ArrayList
dup
aload 0
getfield org.graalvm.compiler.loop.LoopsData.cfg:Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getLoops:()Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.graalvm.compiler.loop.LoopsData.loops:Ljava/util/List;
16: aload 0
getfield org.graalvm.compiler.loop.LoopsData.cfg:Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getLoops:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 21
StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext top java.util.Iterator
StackMap stack:
17: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.cfg.Loop
astore 3
start local 3 18: new org.graalvm.compiler.loop.LoopEx
dup
aload 3
aload 0
invokespecial org.graalvm.compiler.loop.LoopEx.<init>:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/loop/LoopsData;)V
astore 5
start local 5 19: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loops:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loopBeginToEx:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 5
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
aload 5
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 21: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
22: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/graalvm/compiler/loop/LoopsData;
0 23 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 23 2 debug Lorg/graalvm/compiler/debug/DebugContext;
5 8 5 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
13 14 3 e Ljava/lang/Throwable;
18 21 3 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
19 21 5 ex Lorg/graalvm/compiler/loop/LoopEx;
Exception table:
from to target type
5 6 7 any
4 9 9 any
3 12 12 Class java.lang.Throwable
MethodParameters:
Name Flags
graph final
private static boolean checkLoopOrder(java.lang.Iterable<org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>>);
descriptor: (Ljava/lang/Iterable;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
astore 1
start local 1 1: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: java.lang.Iterable jdk.internal.vm.compiler.collections.EconomicSet top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.cfg.Loop
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
ifnull 5
aload 1
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.lang.Iterable jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.core.common.cfg.Loop java.util.Iterator
StackMap stack:
aload 1
aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
pop
end local 2 6: StackMap locals: java.lang.Iterable jdk.internal.vm.compiler.collections.EconomicSet top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 loops Ljava/lang/Iterable<Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;>;
1 8 1 seen Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;>;
3 6 2 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
Signature: (Ljava/lang/Iterable<Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;>;)Z
MethodParameters:
Name Flags
loops
public org.graalvm.compiler.loop.LoopEx loop(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;)Lorg/graalvm/compiler/loop/LoopEx;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loopBeginToEx:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopsData;
0 1 1 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;)Lorg/graalvm/compiler/loop/LoopEx;
MethodParameters:
Name Flags
loop
public org.graalvm.compiler.loop.LoopEx loop(org.graalvm.compiler.nodes.LoopBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;)Lorg/graalvm/compiler/loop/LoopEx;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loopBeginToEx:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopsData;
0 1 1 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
MethodParameters:
Name Flags
loopBegin
public java.util.List<org.graalvm.compiler.loop.LoopEx> loops();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loops:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopsData;
Signature: ()Ljava/util/List<Lorg/graalvm/compiler/loop/LoopEx;>;
public java.util.List<org.graalvm.compiler.loop.LoopEx> outerFirst();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopsData.loops:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopsData;
Signature: ()Ljava/util/List<Lorg/graalvm/compiler/loop/LoopEx;>;
public java.util.List<org.graalvm.compiler.loop.LoopEx> countedLoops();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopsData.loops:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.graalvm.compiler.loop.LoopsData java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.loop.LoopEx.isCounted:()Z
ifeq 5
4: aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/loop/LoopsData;
1 7 1 counted Ljava/util/List<Lorg/graalvm/compiler/loop/LoopEx;>;
3 5 2 loop Lorg/graalvm/compiler/loop/LoopEx;
Signature: ()Ljava/util/List<Lorg/graalvm/compiler/loop/LoopEx;>;
public void detectedCountedLoops();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopsData.loops:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.graalvm.compiler.loop.LoopsData top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
astore 1
start local 1 2: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.detectCounted:()Z
pop
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/loop/LoopsData;
2 3 1 loop Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.nodes.cfg.ControlFlowGraph getCFG();
descriptor: ()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopsData.cfg:Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopsData;
public org.graalvm.compiler.loop.InductionVariable getInductionVariable(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/loop/InductionVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopsData.loops:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.loop.InductionVariable top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.InductionVariable
astore 5
start local 5 4: aload 5
ifnull 8
5: aload 2
ifnull 7
6: aconst_null
areturn
7: StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.loop.LoopEx java.util.Iterator org.graalvm.compiler.loop.InductionVariable
StackMap stack:
aload 5
astore 2
end local 5 end local 3 8: StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.loop.InductionVariable top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/loop/LoopsData;
0 10 1 value Lorg/graalvm/compiler/nodes/ValueNode;
1 10 2 match Lorg/graalvm/compiler/loop/InductionVariable;
3 8 3 loop Lorg/graalvm/compiler/loop/LoopEx;
4 8 5 iv Lorg/graalvm/compiler/loop/InductionVariable;
MethodParameters:
Name Flags
value
public void deleteUnusedNodes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopsData.loops:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.graalvm.compiler.loop.LoopsData top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
astore 1
start local 1 2: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.deleteUnusedNodes:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/loop/LoopsData;
2 3 1 loop Lorg/graalvm/compiler/loop/LoopEx;
}
SourceFile: "LoopsData.java"
InnerClasses:
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext