public abstract class org.graalvm.compiler.loop.LoopFragment
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.loop.LoopFragment
super_class: java.lang.Object
{
private final org.graalvm.compiler.loop.LoopEx loop;
descriptor: Lorg/graalvm/compiler/loop/LoopEx;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.loop.LoopFragment original;
descriptor: Lorg/graalvm/compiler/loop/LoopFragment;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected org.graalvm.compiler.graph.NodeBitMap nodes;
descriptor: Lorg/graalvm/compiler/graph/NodeBitMap;
flags: (0x0004) ACC_PROTECTED
protected boolean nodesReady;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
private jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node> duplicationMap;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
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/LoopFragment;
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.LoopFragment.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial org.graalvm.compiler.loop.LoopFragment.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/LoopFragment;)V
1: aload 0
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment.nodesReady:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 3 1 loop Lorg/graalvm/compiler/loop/LoopEx;
MethodParameters:
Name Flags
loop
public void <init>(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.loop.LoopFragment);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/LoopFragment;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.loop.LoopFragment.loop:Lorg/graalvm/compiler/loop/LoopEx;
2: aload 0
aload 2
putfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
3: aload 0
iconst_0
putfield org.graalvm.compiler.loop.LoopFragment.nodesReady:Z
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 5 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 5 2 original Lorg/graalvm/compiler/loop/LoopFragment;
MethodParameters:
Name Flags
loop
original
protected org.graalvm.compiler.loop.LoopEx loop();
descriptor: ()Lorg/graalvm/compiler/loop/LoopEx;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.loop:Lorg/graalvm/compiler/loop/LoopEx;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
public abstract org.graalvm.compiler.loop.LoopFragment duplicate();
descriptor: ()Lorg/graalvm/compiler/loop/LoopFragment;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract void insertBefore(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
l
public void disconnect();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
public boolean contains(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarkedAndGrow:(Lorg/graalvm/compiler/graph/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 1 1 n Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
n
public <New extends org.graalvm.compiler.graph.Node, Old extends New> New getDuplicatedNode();
descriptor: (Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.isDuplicate:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopFragment.duplicationMap: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.graph.Node
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 2 1 n TOld;
Signature: <New:Lorg/graalvm/compiler/graph/Node;Old:TNew;>(TOld;)TNew;
MethodParameters:
Name Flags
n
protected <New extends org.graalvm.compiler.graph.Node, Old extends New> void putDuplicatedNode(Old, );
descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 1
aload 2
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 2 1 oldNode TOld;
0 2 2 newNode TNew;
Signature: <New:Lorg/graalvm/compiler/graph/Node;Old:TNew;>(TOld;TNew;)V
MethodParameters:
Name Flags
oldNode
newNode
protected abstract org.graalvm.compiler.nodes.ValueNode prim(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
b
public boolean isDuplicate();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/LoopFragment;
public org.graalvm.compiler.loop.LoopFragment original();
descriptor: ()Lorg/graalvm/compiler/loop/LoopFragment;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
public abstract org.graalvm.compiler.graph.NodeBitMap nodes();
descriptor: ()Lorg/graalvm/compiler/graph/NodeBitMap;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public org.graalvm.compiler.nodes.StructuredGraph graph();
descriptor: ()Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.isDuplicate:()Z
ifeq 3
1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.loop:()Lorg/graalvm/compiler/loop/LoopEx;
astore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.loop:()Lorg/graalvm/compiler/loop/LoopEx;
astore 1
start local 1 4: StackMap locals: org.graalvm.compiler.loop.LoopEx
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/loop/LoopFragment;
2 3 1 l Lorg/graalvm/compiler/loop/LoopEx;
4 5 1 l Lorg/graalvm/compiler/loop/LoopEx;
protected abstract org.graalvm.compiler.graph.Graph$DuplicationReplacement getDuplicationReplacement();
descriptor: ()Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void beforeDuplication();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected void finishDuplication();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.loop:()Lorg/graalvm/compiler/loop/LoopEx;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopsData:()Lorg/graalvm/compiler/loop/LoopsData;
invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
astore 2
start local 2 2: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopExits:()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 4
goto 6
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 3
start local 3 4: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.isLoopExit:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 6
5: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.removeExit:()V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/loop/LoopFragment;
1 8 1 originalLoopEx Lorg/graalvm/compiler/loop/LoopEx;
2 8 2 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
4 6 3 exit Lorg/graalvm/compiler/nodes/LoopExitNode;
protected void patchNodes(org.graalvm.compiler.graph.Graph$DuplicationReplacement);
descriptor: (Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.isDuplicate:()Z
ifeq 20
aload 0
getfield org.graalvm.compiler.loop.LoopFragment.nodesReady:Z
ifne 20
1: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 2
aload 0
getfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.isDuplicate:()Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.getDuplicationReplacement:()Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
astore 2
start local 2 3: aload 2
ifnonnull 6
aload 1
ifnull 6
4: aload 1
astore 3
start local 3 5: goto 13
end local 3 StackMap locals: org.graalvm.compiler.graph.Graph$DuplicationReplacement
StackMap stack:
6: aload 2
ifnull 9
aload 1
ifnonnull 9
7: aload 2
astore 3
start local 3 8: goto 13
end local 3 StackMap locals:
StackMap stack:
9: aload 2
ifnull 12
aload 1
ifnull 12
10: new org.graalvm.compiler.loop.LoopFragment$1
dup
aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.loop.LoopFragment$1.<init>:(Lorg/graalvm/compiler/loop/LoopFragment;Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;)V
astore 3
start local 3 11: goto 13
end local 3 12: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 13: StackMap locals: org.graalvm.compiler.graph.Graph$DuplicationReplacement
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.beforeDuplication:()V
14: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
astore 4
start local 4 15: aload 0
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 4
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 4
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addDuplicates:(Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph;ILorg/graalvm/compiler/graph/Graph$DuplicationReplacement;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.loop.LoopFragment.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
16: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.finishDuplication:()V
17: aload 0
new org.graalvm.compiler.graph.NodeBitMap
dup
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokespecial org.graalvm.compiler.graph.NodeBitMap.<init>:(Lorg/graalvm/compiler/graph/Graph;)V
putfield org.graalvm.compiler.loop.LoopFragment.nodes:Lorg/graalvm/compiler/graph/NodeBitMap;
18: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.nodes:Lorg/graalvm/compiler/graph/NodeBitMap;
aload 0
getfield org.graalvm.compiler.loop.LoopFragment.duplicationMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getValues:()Ljava/lang/Iterable;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.markAll:(Ljava/lang/Iterable;)V
19: aload 0
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment.nodesReady:Z
end local 4 end local 3 end local 2 20: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 21 1 dataFix Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
3 20 2 cfgFix Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
5 6 3 dr Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
8 9 3 dr Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
11 12 3 dr Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
13 20 3 dr Lorg/graalvm/compiler/graph/Graph$DuplicationReplacement;
15 20 4 nodesIterable Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/graph/Node;>;
MethodParameters:
Name Flags
dataFix final
protected static void computeNodes(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.graph.Graph, org.graalvm.compiler.loop.LoopEx, java.lang.Iterable<org.graalvm.compiler.nodes.AbstractBeginNode>, java.lang.Iterable<org.graalvm.compiler.nodes.AbstractBeginNode>);
descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Lorg/graalvm/compiler/loop/LoopEx;Ljava/lang/Iterable;Ljava/lang/Iterable;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
1: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 5
start local 5 2: aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isDeleted:()Z
ifeq 4
3: goto 18
4: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getBlockNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 8
goto 17
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
5: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 7
start local 7 6: aload 7
instanceof org.graalvm.compiler.nodes.Invoke
ifeq 8
7: aload 0
aload 7
checkcast org.graalvm.compiler.nodes.Invoke
invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
8: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 7
instanceof org.graalvm.compiler.nodes.spi.NodeWithState
ifeq 11
9: aload 7
checkcast org.graalvm.compiler.nodes.spi.NodeWithState
astore 9
start local 9 10: aload 9
invokeinterface org.graalvm.compiler.nodes.spi.NodeWithState.states:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
aload 0
invokedynamic accept(Lorg/graalvm/compiler/graph/NodeBitMap;)Ljava/util/function/Consumer;
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;)V
org/graalvm/compiler/loop/LoopFragment.lambda$0(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/FrameState;)V (6)
(Lorg/graalvm/compiler/nodes/FrameState;)V
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.forEach:(Ljava/util/function/Consumer;)V
end local 9 11: StackMap locals:
StackMap stack:
aload 7
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 16
12: aload 7
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 10
goto 15
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
13: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 9
start local 9 14: aload 0
aload 9
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 15: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 0
aload 7
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 7 17: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 5 18: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
19: aload 4
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 33
StackMap locals:
StackMap stack:
20: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 5
start local 5 21: aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isDeleted:()Z
ifeq 23
22: goto 33
23: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 0
aload 5
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
24: aload 5
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 33
25: aload 5
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 7
start local 7 26: aload 7
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 8
start local 8 27: aload 8
ifnull 29
28: aload 8
aload 0
invokedynamic apply(Lorg/graalvm/compiler/graph/NodeBitMap;)Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;
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:
(Lorg/graalvm/compiler/nodes/VirtualState;)V
org/graalvm/compiler/loop/LoopFragment.lambda$2(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/VirtualState;)V (6)
(Lorg/graalvm/compiler/nodes/VirtualState;)V
invokevirtual org.graalvm.compiler.nodes.FrameState.applyToVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;)V
29: StackMap locals: org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.proxies:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 10
goto 32
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState top java.util.Iterator
StackMap stack:
30: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ProxyNode
astore 9
start local 9 31: aload 0
aload 9
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 32: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
end local 8 end local 7 end local 5 33: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
34: aload 1
invokevirtual org.graalvm.compiler.graph.Graph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
astore 5
start local 5 35: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 6
start local 6 36: aload 3
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 8
goto 62
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
StackMap stack:
37: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 7
start local 7 38: aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isDeleted:()Z
ifeq 40
39: goto 62
40: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getBlockNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 10
goto 61
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
41: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 9
start local 9 42: aload 9
instanceof org.graalvm.compiler.nodes.virtual.CommitAllocationNode
ifeq 47
43: aload 9
checkcast org.graalvm.compiler.nodes.virtual.CommitAllocationNode
invokevirtual org.graalvm.compiler.nodes.virtual.CommitAllocationNode.getVirtualObjects:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 46
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
44: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 11
start local 11 45: aload 6
aload 2
aload 11
aload 0
aload 5
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 11 46: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 44
47: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 9
instanceof org.graalvm.compiler.nodes.java.MonitorEnterNode
ifeq 49
48: aload 6
aload 2
aload 9
checkcast org.graalvm.compiler.nodes.java.MonitorEnterNode
invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
aload 0
aload 5
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
49: StackMap locals:
StackMap stack:
aload 9
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 57
50: aload 9
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 12
goto 56
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
51: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 11
start local 11 52: aload 11
invokevirtual org.graalvm.compiler.nodes.PhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 14
goto 55
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.PhiNode java.util.Iterator top java.util.Iterator
StackMap stack:
53: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 13
start local 13 54: aload 6
aload 2
aload 13
aload 0
aload 5
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 13 55: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
end local 11 56: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 51
57: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 9
invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 12
goto 60
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
StackMap stack:
58: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 11
start local 11 59: aload 6
aload 2
aload 11
aload 0
aload 5
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 11 60: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 58
end local 9 61: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 7 62: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph org.graalvm.compiler.loop.LoopEx java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
63: return
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 64 0 nodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 64 1 graph Lorg/graalvm/compiler/graph/Graph;
0 64 2 loop Lorg/graalvm/compiler/loop/LoopEx;
0 64 3 blocks Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
0 64 4 earlyExits Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
2 18 5 b Lorg/graalvm/compiler/nodes/AbstractBeginNode;
6 17 7 n Lorg/graalvm/compiler/graph/Node;
10 11 9 withState Lorg/graalvm/compiler/nodes/spi/NodeWithState;
14 15 9 phi Lorg/graalvm/compiler/nodes/PhiNode;
21 33 5 earlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
26 33 7 loopExit Lorg/graalvm/compiler/nodes/LoopExitNode;
27 33 8 stateAfter Lorg/graalvm/compiler/nodes/FrameState;
31 32 9 proxy Lorg/graalvm/compiler/nodes/ProxyNode;
35 64 5 nonLoopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
36 64 6 worklist Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;
38 62 7 b Lorg/graalvm/compiler/nodes/AbstractBeginNode;
42 61 9 n Lorg/graalvm/compiler/graph/Node;
45 46 11 obj Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
52 56 11 phi Lorg/graalvm/compiler/nodes/PhiNode;
54 55 13 usage Lorg/graalvm/compiler/graph/Node;
59 60 11 usage Lorg/graalvm/compiler/graph/Node;
Signature: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Lorg/graalvm/compiler/loop/LoopEx;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;)V
MethodParameters:
Name Flags
nodes
graph
loop
blocks
earlyExits
static jdk.vm.ci.meta.TriState isLoopNode(org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.graph.NodeBitMap);
descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)Ljdk/vm/ci/meta/TriState;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 2
1: getstatic jdk.vm.ci.meta.TriState.TRUE:Ljdk/vm/ci/meta/TriState;
areturn
2: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 4
3: getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
areturn
4: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.FixedNode
ifne 5
aload 0
instanceof org.graalvm.compiler.nodes.PhiNode
ifeq 6
5: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
areturn
6: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.meta.TriState.UNKNOWN:Ljdk/vm/ci/meta/TriState;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 n Lorg/graalvm/compiler/graph/Node;
0 7 1 loopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 7 2 nonLoopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
MethodParameters:
Name Flags
n
loopNodes
nonLoopNodes
private static void pushWorkList(java.util.Deque<org.graalvm.compiler.loop.LoopFragment$WorkListEntry>, org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.NodeBitMap);
descriptor: (Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.graalvm.compiler.loop.LoopFragment$WorkListEntry
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.loop.LoopFragment$WorkListEntry.<init>:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
astore 3
start local 3 1: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 2
aload 0
aload 3
invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
ifeq 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "node "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " added to worklist twice"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: org.graalvm.compiler.loop.LoopFragment$WorkListEntry
StackMap stack:
aload 0
aload 3
invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 workList Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;
0 4 1 node Lorg/graalvm/compiler/graph/Node;
0 4 2 loopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
1 4 3 entry Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;
Signature: (Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
MethodParameters:
Name Flags
workList
node
loopNodes
private static void markFloating(java.util.Deque<org.graalvm.compiler.loop.LoopFragment$WorkListEntry>, org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.graph.NodeBitMap);
descriptor: (Ljava/util/Deque;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 3
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.isLoopNode:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)Ljdk/vm/ci/meta/TriState;
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 5
start local 5 3: aload 1
invokevirtual org.graalvm.compiler.loop.LoopEx.loopsData:()Lorg/graalvm/compiler/loop/LoopsData;
invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
astore 6
start local 6 4: aload 0
aload 2
aload 3
invokestatic org.graalvm.compiler.loop.LoopFragment.pushWorkList:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
5: goto 38
6: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.cfg.ControlFlowGraph
StackMap stack:
aload 0
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopFragment$WorkListEntry
astore 7
start local 7 7: aload 7
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.usages:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 16
8: aload 7
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.usages:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 9: aload 8
aload 3
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.isLoopNode:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)Ljdk/vm/ci/meta/TriState;
astore 9
start local 9 10: aload 9
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 14
11: aload 9
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
ifeq 38
12: aload 7
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
13: goto 38
14: StackMap locals: org.graalvm.compiler.loop.LoopFragment$WorkListEntry org.graalvm.compiler.graph.Node jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 8
aload 3
invokestatic org.graalvm.compiler.loop.LoopFragment.pushWorkList:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 9 end local 8 15: goto 38
16: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
17: aload 7
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
istore 8
start local 8 18: aload 7
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.n:Lorg/graalvm/compiler/graph/Node;
astore 9
start local 9 19: iload 8
ifne 30
aload 9
instanceof org.graalvm.compiler.nodes.GuardNode
ifeq 30
aload 9
invokevirtual org.graalvm.compiler.graph.Node.hasUsages:()Z
ifne 30
20: aload 9
checkcast org.graalvm.compiler.nodes.GuardNode
astore 10
start local 10 21: aload 10
invokevirtual org.graalvm.compiler.nodes.GuardNode.getCondition:()Lorg/graalvm/compiler/nodes/LogicNode;
aload 3
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.isLoopNode:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)Ljdk/vm/ci/meta/TriState;
getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
if_acmpeq 30
22: aload 10
invokevirtual org.graalvm.compiler.nodes.GuardNode.getAnchor:()Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
invokeinterface org.graalvm.compiler.nodes.extended.AnchoringNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 11
start local 11 23: aload 11
aload 3
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.isLoopNode:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)Ljdk/vm/ci/meta/TriState;
astore 12
start local 12 24: aload 12
getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
if_acmpeq 28
25: aload 11
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 26
aload 11
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
aload 5
if_acmpeq 30
26: StackMap locals: java.util.Deque org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.loop.LoopFragment$WorkListEntry int org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.GuardNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.TriState
StackMap stack:
iconst_1
istore 8
27: goto 30
StackMap locals:
StackMap stack:
28: aload 6
aload 11
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
aload 6
aload 5
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.strictlyDominates:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 30
29: iconst_1
istore 8
end local 12 end local 11 end local 10 30: StackMap locals:
StackMap stack:
iload 8
ifeq 37
31: aload 3
aload 9
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
32: aload 0
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 11
goto 35
StackMap locals: java.util.Deque org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.loop.LoopFragment$WorkListEntry int org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
33: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopFragment$WorkListEntry
astore 10
start local 10 34: aload 10
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
end local 10 35: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
36: goto 38
37: StackMap locals: java.util.Deque org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.loop.LoopFragment$WorkListEntry int org.graalvm.compiler.graph.Node
StackMap stack:
aload 4
aload 9
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 9 end local 8 end local 7 38: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 6
39: return
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 40 0 workList Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;
0 40 1 loop Lorg/graalvm/compiler/loop/LoopEx;
0 40 2 start Lorg/graalvm/compiler/graph/Node;
0 40 3 loopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 40 4 nonLoopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
3 40 5 loopBeginNode Lorg/graalvm/compiler/nodes/LoopBeginNode;
4 40 6 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
7 38 7 currentEntry Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;
9 15 8 current Lorg/graalvm/compiler/graph/Node;
10 15 9 result Ljdk/vm/ci/meta/TriState;
18 38 8 isLoopNode Z
19 38 9 current Lorg/graalvm/compiler/graph/Node;
21 30 10 guard Lorg/graalvm/compiler/nodes/GuardNode;
23 30 11 anchor Lorg/graalvm/compiler/nodes/ValueNode;
24 30 12 isAnchorInLoop Ljdk/vm/ci/meta/TriState;
34 35 10 e Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;
Signature: (Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
MethodParameters:
Name Flags
workList
loop
start
loopNodes
nonLoopNodes
public static org.graalvm.compiler.graph.iterators.NodeIterable<org.graalvm.compiler.nodes.AbstractBeginNode> toHirBlocks(java.lang.Iterable<org.graalvm.compiler.nodes.cfg.Block>);
descriptor: (Ljava/lang/Iterable;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.loop.LoopFragment$2
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopFragment$2.<init>:(Ljava/lang/Iterable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 blocks Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/cfg/Block;>;
Signature: (Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/cfg/Block;>;)Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
MethodParameters:
Name Flags
blocks final
protected void mergeEarlyExits();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=18, args_size=1
start local 0 0: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.isDuplicate:()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.LoopFragment.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 1
start local 1 2: aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
invokevirtual org.graalvm.compiler.loop.LoopFragment.loop:()Lorg/graalvm/compiler/loop/LoopEx;
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getLoopExits:()Ljava/util/List;
invokestatic org.graalvm.compiler.loop.LoopFragment.toHirBlocks:(Ljava/lang/Iterable;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 3
goto 57
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 2
start local 2 4: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 4
start local 4 5: aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.isDeleted:()Z
ifne 57
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
aload 2
invokevirtual org.graalvm.compiler.loop.LoopFragment.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 7
6: goto 57
7: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.loop.LoopFragment.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 5
start local 5 8: aload 5
ifnonnull 10
9: goto 57
10: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 1
new org.graalvm.compiler.nodes.MergeNode
dup
invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.MergeNode
astore 6
start local 6 11: aload 1
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 7
start local 7 12: aload 1
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 8
start local 8 13: aload 6
aload 7
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
14: aload 6
aload 8
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
15: aload 2
aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
16: aload 5
aload 8
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
17: aload 6
aload 4
invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
18: aconst_null
astore 9
start local 9 19: aload 2
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 29
20: aload 2
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 10
start local 10 21: aload 10
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 9
22: aload 9
ifnull 29
23: aload 9
astore 11
start local 11 24: aload 9
invokevirtual org.graalvm.compiler.nodes.FrameState.duplicateWithVirtualState:()Lorg/graalvm/compiler/nodes/FrameState;
astore 9
25: aload 10
aload 9
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
26: aload 6
aload 11
invokevirtual org.graalvm.compiler.nodes.MergeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
27: aload 11
aload 0
invokedynamic apply(Lorg/graalvm/compiler/loop/LoopFragment;)Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;
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:
(Lorg/graalvm/compiler/nodes/VirtualState;)V
org/graalvm/compiler/loop/LoopFragment.lambda$3(Lorg/graalvm/compiler/nodes/VirtualState;)V (7)
(Lorg/graalvm/compiler/nodes/VirtualState;)V
invokevirtual org.graalvm.compiler.nodes.FrameState.applyToVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;)V
28: aload 9
aload 0
invokedynamic apply(Lorg/graalvm/compiler/loop/LoopFragment;)Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;
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:
(Lorg/graalvm/compiler/nodes/VirtualState;)V
org/graalvm/compiler/loop/LoopFragment.lambda$4(Lorg/graalvm/compiler/nodes/VirtualState;)V (7)
(Lorg/graalvm/compiler/nodes/VirtualState;)V
invokevirtual org.graalvm.compiler.nodes.FrameState.applyToVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;)V
end local 11 end local 10 29: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.anchored:()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 11
goto 32
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState top java.util.Iterator
StackMap stack:
30: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 10
start local 10 31: aload 10
aload 2
aload 6
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
end local 10 32: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
33: aload 2
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 57
34: aload 2
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 10
start local 10 35: aload 9
astore 11
start local 11 36: aload 5
instanceof org.graalvm.compiler.nodes.LoopExitNode
istore 12
start local 12 37: aload 10
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.proxies:()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 14
goto 56
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int top java.util.Iterator
StackMap stack:
38: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ProxyNode
astore 13
start local 13 39: aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.hasNoUsages:()Z
ifeq 41
40: goto 56
41: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator
StackMap stack:
aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 45
42: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 43
aload 13
instanceof org.graalvm.compiler.nodes.GuardProxyNode
ifne 43
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
43: StackMap locals:
StackMap stack:
aload 13
aconst_null
invokevirtual org.graalvm.compiler.nodes.ProxyNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
44: goto 56
45: StackMap locals:
StackMap stack:
aload 0
iload 12
ifeq 46
aload 13
goto 47
StackMap locals:
StackMap stack: org.graalvm.compiler.loop.LoopFragment
46: aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator
StackMap stack: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.ValueNode
47: invokevirtual org.graalvm.compiler.loop.LoopFragment.prim:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 48: aload 16
ifnull 54
49: aload 13
aload 6
invokevirtual org.graalvm.compiler.nodes.ProxyNode.createPhi:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;)Lorg/graalvm/compiler/nodes/PhiNode;
astore 17
start local 17 50: aload 17
aload 13
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
51: aload 17
aload 16
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
52: aload 17
astore 15
end local 17 start local 15 53: goto 55
end local 15 54: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator top org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 15
start local 15 55: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 13
aload 15
aload 6
aload 11
invokedynamic apply(Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/FrameState;)Lorg/graalvm/compiler/graph/iterators/NodePredicate;
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:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/loop/LoopFragment.lambda$5(Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokevirtual org.graalvm.compiler.nodes.ProxyNode.replaceAtMatchingUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)V
end local 16 end local 15 end local 13 56: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FrameState int top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
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 2 57: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
58: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/graalvm/compiler/loop/LoopFragment;
2 59 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 57 2 earlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
5 57 4 next Lorg/graalvm/compiler/nodes/FixedNode;
8 57 5 newEarlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
11 57 6 merge Lorg/graalvm/compiler/nodes/MergeNode;
12 57 7 originalEnd Lorg/graalvm/compiler/nodes/EndNode;
13 57 8 newEnd Lorg/graalvm/compiler/nodes/EndNode;
19 57 9 exitState Lorg/graalvm/compiler/nodes/FrameState;
21 29 10 earlyLoopExit Lorg/graalvm/compiler/nodes/LoopExitNode;
24 29 11 originalExitState Lorg/graalvm/compiler/nodes/FrameState;
31 32 10 anchored Lorg/graalvm/compiler/graph/Node;
35 57 10 earlyLoopExit Lorg/graalvm/compiler/nodes/LoopExitNode;
36 57 11 finalExitState Lorg/graalvm/compiler/nodes/FrameState;
37 57 12 newEarlyExitIsLoopExit Z
39 56 13 vpn Lorg/graalvm/compiler/nodes/ProxyNode;
53 54 15 replaceWith Lorg/graalvm/compiler/nodes/ValueNode;
55 56 15 replaceWith Lorg/graalvm/compiler/nodes/ValueNode;
48 56 16 newVpn Lorg/graalvm/compiler/nodes/ValueNode;
50 53 17 phi Lorg/graalvm/compiler/nodes/PhiNode;
private static void lambda$0(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.nodes.FrameState);
descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/FrameState;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokedynamic apply(Lorg/graalvm/compiler/graph/NodeBitMap;)Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;
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:
(Lorg/graalvm/compiler/nodes/VirtualState;)V
org/graalvm/compiler/loop/LoopFragment.lambda$1(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/VirtualState;)V (6)
(Lorg/graalvm/compiler/nodes/VirtualState;)V
invokevirtual org.graalvm.compiler.nodes.FrameState.applyToVirtual:(Lorg/graalvm/compiler/nodes/VirtualState$VirtualClosure;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 state Lorg/graalvm/compiler/nodes/FrameState;
private static void lambda$2(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.nodes.VirtualState);
descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/VirtualState;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 node Lorg/graalvm/compiler/nodes/VirtualState;
private void lambda$3(org.graalvm.compiler.nodes.VirtualState);
descriptor: (Lorg/graalvm/compiler/nodes/VirtualState;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
getfield org.graalvm.compiler.loop.LoopFragment.nodes:Lorg/graalvm/compiler/graph/NodeBitMap;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeBitMap.clearAndGrow:(Lorg/graalvm/compiler/graph/Node;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 1 1 node Lorg/graalvm/compiler/nodes/VirtualState;
private void lambda$4(org.graalvm.compiler.nodes.VirtualState);
descriptor: (Lorg/graalvm/compiler/nodes/VirtualState;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.loop.LoopFragment.original:Lorg/graalvm/compiler/loop/LoopFragment;
getfield org.graalvm.compiler.loop.LoopFragment.nodes:Lorg/graalvm/compiler/graph/NodeBitMap;
aload 1
invokevirtual org.graalvm.compiler.graph.NodeBitMap.markAndGrow:(Lorg/graalvm/compiler/graph/Node;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopFragment;
0 1 1 node Lorg/graalvm/compiler/nodes/VirtualState;
private static boolean lambda$5(org.graalvm.compiler.nodes.MergeNode, org.graalvm.compiler.nodes.FrameState, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=3
start local 2 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.nodes.MergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.VirtualState
ifeq 6
3: aload 2
checkcast org.graalvm.compiler.nodes.VirtualState
astore 3
start local 3 4: aload 1
ifnull 6
aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.FrameState.isPartOfThisState:(Lorg/graalvm/compiler/nodes/VirtualState;)Z
ifeq 6
5: iconst_0
ireturn
end local 3 6: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 7 2 usage Lorg/graalvm/compiler/graph/Node;
4 6 3 stateUsage Lorg/graalvm/compiler/nodes/VirtualState;
private static void lambda$1(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.nodes.VirtualState);
descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/VirtualState;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 node Lorg/graalvm/compiler/nodes/VirtualState;
}
SourceFile: "LoopFragment.java"
NestMembers:
org.graalvm.compiler.loop.LoopFragment$1 org.graalvm.compiler.loop.LoopFragment$2 org.graalvm.compiler.loop.LoopFragment$2$1 org.graalvm.compiler.loop.LoopFragment$WorkListEntry
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract DuplicationReplacement = org.graalvm.compiler.graph.Graph$DuplicationReplacement of org.graalvm.compiler.graph.Graph
org.graalvm.compiler.loop.LoopFragment$1
org.graalvm.compiler.loop.LoopFragment$2
WorkListEntry = org.graalvm.compiler.loop.LoopFragment$WorkListEntry of org.graalvm.compiler.loop.LoopFragment
public abstract VirtualClosure = org.graalvm.compiler.nodes.VirtualState$VirtualClosure of org.graalvm.compiler.nodes.VirtualState