public final class org.graalvm.compiler.phases.graph.ReentrantBlockIterator
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.phases.graph.ReentrantBlockIterator
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/phases/graph/ReentrantBlockIterator;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$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/phases/graph/ReentrantBlockIterator;
public static <StateT> org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo<StateT> processLoop(org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure<StateT>, org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, StateT);
descriptor: (Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/core/common/cfg/Loop;Ljava/lang/Object;)Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$LoopInfo;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
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
aload 2
aload 1
invokedynamic test(Lorg/graalvm/compiler/core/common/cfg/Loop;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
org/graalvm/compiler/phases/graph/ReentrantBlockIterator.lambda$0(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/cfg/Block;)Z (6)
(Lorg/graalvm/compiler/nodes/cfg/Block;)Z
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.apply:(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Object;Ljava/util/function/Predicate;)Ljava/util/Map;
astore 3
start local 3 1: 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.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block[]
astore 4
start local 4 2: new org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo
dup
aload 4
arraylength
iconst_1
isub
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo.<init>:(II)V
astore 5
start local 5 3: iconst_1
istore 6
start local 6 4: goto 8
5: StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.core.common.cfg.Loop java.lang.Object java.util.Map org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo int
StackMap stack:
aload 3
aload 4
iload 6
aaload
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 6: aload 5
getfield org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo.endStates:Ljava/util/List;
aload 0
aload 7
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.cloneState:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
aload 4
arraylength
if_icmplt 5
end local 6 9: aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 15
StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.core.common.cfg.Loop java.lang.Object java.util.Map org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo top java.util.Iterator
StackMap stack:
10: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 6
start local 6 11: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 12
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getPredecessorCount:()I
iconst_1
if_icmpeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.core.common.cfg.Loop java.lang.Object java.util.Map org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo org.graalvm.compiler.nodes.cfg.Block java.util.Iterator
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 13
aload 3
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 14: aload 5
getfield org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo.exitStates:Ljava/util/List;
aload 0
aload 8
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.cloneState:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 6 15: StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.core.common.cfg.Loop java.lang.Object java.util.Map org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: aload 5
areturn
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 17 0 closure Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;
0 17 1 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
0 17 2 initialState TStateT;
1 17 3 blockEndStates Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
2 17 4 predecessors [Lorg/graalvm/compiler/nodes/cfg/Block;
3 17 5 info Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$LoopInfo<TStateT;>;
4 9 6 i I
6 7 7 endState TStateT;
11 15 6 loopExit Lorg/graalvm/compiler/nodes/cfg/Block;
14 15 8 exitState TStateT;
Signature: <StateT:Ljava/lang/Object;>(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;TStateT;)Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$LoopInfo<TStateT;>;
MethodParameters:
Name Flags
closure
loop
initialState
public static <StateT> void apply(org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure<StateT>, org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.getInitialState:()Ljava/lang/Object;
aconst_null
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.apply:(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Object;Ljava/util/function/Predicate;)Ljava/util/Map;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 closure Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;
0 2 1 start Lorg/graalvm/compiler/nodes/cfg/Block;
Signature: <StateT:Ljava/lang/Object;>(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;Lorg/graalvm/compiler/nodes/cfg/Block;)V
MethodParameters:
Name Flags
closure
start
public static <StateT> java.util.Map<org.graalvm.compiler.nodes.FixedNode, StateT> apply(org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure<StateT>, org.graalvm.compiler.nodes.cfg.Block, StateT, java.util.function.Predicate<org.graalvm.compiler.nodes.cfg.Block>);
descriptor: (Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Object;Ljava/util/function/Predicate;)Ljava/util/Map;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 4
start local 4 1: invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
astore 5
start local 5 2: aload 2
astore 6
start local 6 3: aload 1
astore 7
start local 7 4: StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.nodes.cfg.Block java.lang.Object java.util.function.Predicate java.util.Deque java.util.Map java.lang.Object org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
invokestatic org.graalvm.compiler.core.common.util.CompilationAlarm.hasExpired:()Z
ifeq 6
5: new org.graalvm.compiler.common.RetryableBailoutException
dup
ldc "Compilation exceeded %d seconds during CFG traversal"
iconst_1
anewarray java.lang.Object
dup
iconst_0
getstatic org.graalvm.compiler.core.common.util.CompilationAlarm$Options.CompilationExpirationPeriod:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
aastore
invokespecial org.graalvm.compiler.common.RetryableBailoutException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 7: aload 3
ifnull 10
aload 3
aload 7
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 10
8: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: goto 35
10: StackMap locals: org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 0
aload 7
aload 6
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.processBlock:(Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Object;)Ljava/lang/Object;
astore 6
11: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block[]
astore 9
start local 9 12: aload 9
arraylength
ifeq 35
13: aload 9
arraylength
iconst_1
if_icmpne 34
14: aload 9
iconst_0
aaload
astore 10
start local 10 15: aload 10
invokevirtual org.graalvm.compiler.nodes.cfg.Block.isLoopHeader:()Z
ifeq 21
16: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.isLoopEnd:()Z
ifeq 19
17: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: goto 35
19: StackMap locals: org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 0
aload 4
aload 5
aload 6
aload 10
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.recurseIntoLoop:(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Ljava/util/Deque;Ljava/util/Map;Ljava/lang/Object;Lorg/graalvm/compiler/nodes/cfg/Block;)V
20: goto 35
StackMap locals:
StackMap stack:
21: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
instanceof org.graalvm.compiler.nodes.AbstractEndNode
ifeq 32
22: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 11
start local 11 23: aload 11
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 12
start local 12 24: aload 5
aload 7
aload 12
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.allEndsVisited:(Ljava/util/Map;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Z
ifeq 29
25: aload 5
aload 6
aload 7
aload 10
aload 12
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.mergeStates:(Ljava/util/Map;Ljava/lang/Object;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Ljava/util/ArrayList;
astore 13
start local 13 26: aload 0
aload 10
aload 13
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.merge:(Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/util/List;)Ljava/lang/Object;
astore 6
27: aload 10
astore 8
end local 13 28: goto 35
29: StackMap locals: org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 30
aload 5
aload 11
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 5
aload 11
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 31: goto 35
32: StackMap locals:
StackMap stack:
aload 10
astore 8
end local 10 33: goto 35
34: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 5
aload 6
aload 9
invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.processMultipleSuccessors:(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Ljava/util/Deque;Ljava/util/Map;Ljava/lang/Object;[Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 8
end local 9 35: StackMap locals:
StackMap stack:
aload 8
ifnull 38
36: aload 8
astore 7
37: goto 4
StackMap locals:
StackMap stack:
38: aload 4
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 40
39: aload 5
areturn
40: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 7
41: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 42
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getPredecessorCount:()I
iconst_1
if_icmpeq 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 43
aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 43
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
43: StackMap locals:
StackMap stack:
aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
end local 8 44: goto 4
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 closure Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;
0 45 1 start Lorg/graalvm/compiler/nodes/cfg/Block;
0 45 2 initialState TStateT;
0 45 3 stopAtBlock Ljava/util/function/Predicate<Lorg/graalvm/compiler/nodes/cfg/Block;>;
1 45 4 blockQueue Ljava/util/Deque<Lorg/graalvm/compiler/nodes/cfg/Block;>;
2 45 5 states Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
3 45 6 state TStateT;
4 45 7 current Lorg/graalvm/compiler/nodes/cfg/Block;
7 44 8 next Lorg/graalvm/compiler/nodes/cfg/Block;
12 35 9 successors [Lorg/graalvm/compiler/nodes/cfg/Block;
15 33 10 successor Lorg/graalvm/compiler/nodes/cfg/Block;
23 31 11 end Lorg/graalvm/compiler/nodes/AbstractEndNode;
24 31 12 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
26 28 13 mergedStates Ljava/util/ArrayList<TStateT;>;
Signature: <StateT:Ljava/lang/Object;>(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;Lorg/graalvm/compiler/nodes/cfg/Block;TStateT;Ljava/util/function/Predicate<Lorg/graalvm/compiler/nodes/cfg/Block;>;)Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
MethodParameters:
Name Flags
closure
start
initialState
stopAtBlock
private static <StateT> boolean allEndsVisited(java.util.Map<org.graalvm.compiler.nodes.FixedNode, StateT>, org.graalvm.compiler.nodes.cfg.Block, org.graalvm.compiler.nodes.AbstractMergeNode);
descriptor: (Ljava/util/Map;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: java.util.Map org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.AbstractMergeNode top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 3
start local 3 2: aload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
if_acmpeq 4
aload 0
aload 3
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 4
3: iconst_0
ireturn
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 states Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
0 6 1 current Lorg/graalvm/compiler/nodes/cfg/Block;
0 6 2 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
2 4 3 forwardEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
Signature: <StateT:Ljava/lang/Object;>(Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Z
MethodParameters:
Name Flags
states
current
merge
private static <StateT> org.graalvm.compiler.nodes.cfg.Block processMultipleSuccessors(org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure<StateT>, java.util.Deque<org.graalvm.compiler.nodes.cfg.Block>, java.util.Map<org.graalvm.compiler.nodes.FixedNode, StateT>, StateT, org.graalvm.compiler.nodes.cfg.Block[]);
descriptor: (Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Ljava/util/Deque;Ljava/util/Map;Ljava/lang/Object;[Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/nodes/cfg/Block;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 1
aload 4
arraylength
iconst_1
if_icmpgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_1
istore 5
start local 5 2: goto 7
3: StackMap locals: int
StackMap stack:
aload 4
iload 5
aaload
astore 6
start local 6 4: aload 1
aload 6
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
5: aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 0
aload 3
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.cloneState:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
aload 4
arraylength
if_icmplt 3
end local 5 8: aload 4
iconst_0
aaload
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 closure Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;
0 9 1 blockQueue Ljava/util/Deque<Lorg/graalvm/compiler/nodes/cfg/Block;>;
0 9 2 states Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
0 9 3 state TStateT;
0 9 4 successors [Lorg/graalvm/compiler/nodes/cfg/Block;
2 8 5 i I
4 6 6 successor Lorg/graalvm/compiler/nodes/cfg/Block;
Signature: <StateT:Ljava/lang/Object;>(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;Ljava/util/Deque<Lorg/graalvm/compiler/nodes/cfg/Block;>;Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;TStateT;[Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/nodes/cfg/Block;
MethodParameters:
Name Flags
closure
blockQueue
states
state
successors
private static <StateT> java.util.ArrayList<StateT> mergeStates(java.util.Map<org.graalvm.compiler.nodes.FixedNode, StateT>, StateT, org.graalvm.compiler.nodes.cfg.Block, org.graalvm.compiler.nodes.cfg.Block, org.graalvm.compiler.nodes.AbstractMergeNode);
descriptor: (Ljava/util/Map;Ljava/lang/Object;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Ljava/util/ArrayList;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.util.ArrayList
dup
aload 4
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 1: aload 3
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block[]
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 9
StackMap locals: java.util.Map java.lang.Object org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.AbstractMergeNode java.util.ArrayList top int int org.graalvm.compiler.nodes.cfg.Block[]
StackMap stack:
2: aload 9
iload 7
aaload
astore 6
start local 6 3: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 4
aload 6
aload 2
if_acmpeq 4
aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: java.util.Map java.lang.Object org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.AbstractMergeNode java.util.ArrayList org.graalvm.compiler.nodes.cfg.Block int int org.graalvm.compiler.nodes.cfg.Block[]
StackMap stack:
aload 6
aload 2
if_acmpne 5
aload 1
goto 6
StackMap locals:
StackMap stack:
5: aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
6: astore 10
start local 10 7: aload 5
aload 10
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 6 8: iinc 7 1
StackMap locals: java.util.Map java.lang.Object org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.nodes.AbstractMergeNode java.util.ArrayList top int int org.graalvm.compiler.nodes.cfg.Block[]
StackMap stack:
9: iload 7
iload 8
if_icmplt 2
10: aload 5
areturn
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 11 0 states Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
0 11 1 state TStateT;
0 11 2 current Lorg/graalvm/compiler/nodes/cfg/Block;
0 11 3 successor Lorg/graalvm/compiler/nodes/cfg/Block;
0 11 4 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
1 11 5 mergedStates Ljava/util/ArrayList<TStateT;>;
3 8 6 predecessor Lorg/graalvm/compiler/nodes/cfg/Block;
7 8 10 endState TStateT;
Signature: <StateT:Ljava/lang/Object;>(Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;TStateT;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/cfg/Block;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Ljava/util/ArrayList<TStateT;>;
MethodParameters:
Name Flags
states
state
current
successor
merge
private static <StateT> void recurseIntoLoop(org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure<StateT>, java.util.Deque<org.graalvm.compiler.nodes.cfg.Block>, java.util.Map<org.graalvm.compiler.nodes.FixedNode, StateT>, StateT, org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Ljava/util/Deque;Ljava/util/Map;Ljava/lang/Object;Lorg/graalvm/compiler/nodes/cfg/Block;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
astore 5
start local 5 1: aload 5
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
astore 6
start local 6 2: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 3
aload 4
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 6
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.nodes.LoopBeginNode
StackMap stack:
aload 0
aload 5
aload 3
invokevirtual org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure.processLoop:(Lorg/graalvm/compiler/core/common/cfg/Loop;Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 4: iconst_0
istore 8
start local 8 5: getstatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.$assertionsDisabled:Z
ifne 6
aload 5
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 7
invokeinterface java.util.List.size:()I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: java.util.List int
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 10
StackMap locals: org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure java.util.Deque java.util.Map java.lang.Object org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.nodes.LoopBeginNode java.util.List int top java.util.Iterator
StackMap stack:
7: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 9
start local 9 8: aload 2
aload 9
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
aload 7
iload 8
iinc 8 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 1
aload 9
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
end local 9 10: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
11: 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 12 0 closure Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;
0 12 1 blockQueue Ljava/util/Deque<Lorg/graalvm/compiler/nodes/cfg/Block;>;
0 12 2 states Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;
0 12 3 state TStateT;
0 12 4 successor Lorg/graalvm/compiler/nodes/cfg/Block;
1 12 5 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
2 12 6 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
4 12 7 exitStates Ljava/util/List<TStateT;>;
5 12 8 i I
8 10 9 exit Lorg/graalvm/compiler/nodes/cfg/Block;
Signature: <StateT:Ljava/lang/Object;>(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<TStateT;>;Ljava/util/Deque<Lorg/graalvm/compiler/nodes/cfg/Block;>;Ljava/util/Map<Lorg/graalvm/compiler/nodes/FixedNode;TStateT;>;TStateT;Lorg/graalvm/compiler/nodes/cfg/Block;)V
MethodParameters:
Name Flags
closure
blockQueue
states
state
successor
private static boolean lambda$0(org.graalvm.compiler.core.common.cfg.Loop, org.graalvm.compiler.nodes.cfg.Block);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/cfg/Block;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
aload 0
if_acmpeq 1
aload 1
invokevirtual org.graalvm.compiler.nodes.cfg.Block.isLoopHeader:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 block Lorg/graalvm/compiler/nodes/cfg/Block;
}
SourceFile: "ReentrantBlockIterator.java"
NestMembers:
org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Options = org.graalvm.compiler.core.common.util.CompilationAlarm$Options of org.graalvm.compiler.core.common.util.CompilationAlarm
public abstract BlockIteratorClosure = org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure of org.graalvm.compiler.phases.graph.ReentrantBlockIterator
public LoopInfo = org.graalvm.compiler.phases.graph.ReentrantBlockIterator$LoopInfo of org.graalvm.compiler.phases.graph.ReentrantBlockIterator