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 abstract void finishDuplication();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
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 org.graalvm.compiler.graph.NodeBitMap computeNodes(org.graalvm.compiler.graph.Graph, java.lang.Iterable<org.graalvm.compiler.nodes.AbstractBeginNode>);
descriptor: (Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;)Lorg/graalvm/compiler/graph/NodeBitMap;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokestatic org.graalvm.compiler.loop.LoopFragment.computeNodes:(Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;Ljava/lang/Iterable;)Lorg/graalvm/compiler/graph/NodeBitMap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 graph Lorg/graalvm/compiler/graph/Graph;
0 1 1 blocks Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
Signature: (Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;)Lorg/graalvm/compiler/graph/NodeBitMap;
MethodParameters:
Name Flags
graph
blocks
protected static org.graalvm.compiler.graph.NodeBitMap computeNodes(org.graalvm.compiler.graph.Graph, java.lang.Iterable<org.graalvm.compiler.nodes.AbstractBeginNode>, java.lang.Iterable<org.graalvm.compiler.nodes.AbstractBeginNode>);
descriptor: (Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;Ljava/lang/Iterable;)Lorg/graalvm/compiler/graph/NodeBitMap;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.graph.Graph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
astore 3
start local 3 1: aload 3
aload 0
aload 1
aload 2
invokestatic org.graalvm.compiler.loop.LoopFragment.computeNodes:(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;Ljava/lang/Iterable;)V
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 graph Lorg/graalvm/compiler/graph/Graph;
0 3 1 blocks Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
0 3 2 earlyExits Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
1 3 3 nodes Lorg/graalvm/compiler/graph/NodeBitMap;
Signature: (Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;)Lorg/graalvm/compiler/graph/NodeBitMap;
MethodParameters:
Name Flags
graph
blocks
earlyExits
protected static void computeNodes(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.graph.Graph, 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;Ljava/lang/Iterable;Ljava/lang/Iterable;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 4
start local 4 2: aload 4
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 java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 4
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 7
goto 17
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 6: aload 6
instanceof org.graalvm.compiler.nodes.Invoke
ifeq 8
7: aload 0
aload 6
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 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 6
instanceof org.graalvm.compiler.nodes.spi.NodeWithState
ifeq 11
9: aload 6
checkcast org.graalvm.compiler.nodes.spi.NodeWithState
astore 8
start local 8 10: aload 8
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 8 11: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 16
12: aload 6
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 9
goto 15
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 8
start local 8 14: aload 0
aload 8
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 8 15: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 6
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 6 17: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 18: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
19: aload 3
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 33
StackMap locals:
StackMap stack:
20: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 4
start local 4 21: aload 4
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 java.lang.Iterable java.lang.Iterable org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
24: aload 4
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 33
25: aload 4
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 6
start local 6 26: aload 6
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 7
start local 7 27: aload 7
ifnull 29
28: aload 7
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 6
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 9
goto 32
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ProxyNode
astore 8
start local 8 31: aload 0
aload 8
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 8 32: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
end local 7 end local 6 end local 4 33: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
34: aload 1
invokevirtual org.graalvm.compiler.graph.Graph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
astore 4
start local 4 35: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 5
start local 5 36: aload 2
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 7
goto 62
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
StackMap stack:
37: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 6
start local 6 38: aload 6
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 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 6
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 9
goto 61
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 8
start local 8 42: aload 8
instanceof org.graalvm.compiler.nodes.virtual.CommitAllocationNode
ifeq 47
43: aload 8
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 11
goto 46
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
astore 10
start local 10 45: aload 5
aload 10
aload 0
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 10 46: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 44
47: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 8
instanceof org.graalvm.compiler.nodes.java.MonitorEnterNode
ifeq 49
48: aload 5
aload 8
checkcast org.graalvm.compiler.nodes.java.MonitorEnterNode
invokevirtual org.graalvm.compiler.nodes.java.MonitorEnterNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
aload 0
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
49: StackMap locals:
StackMap stack:
aload 8
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 57
50: aload 8
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 11
goto 56
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 10
start local 10 52: aload 10
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 13
goto 55
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 12
start local 12 54: aload 5
aload 12
aload 0
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 12 55: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
end local 10 56: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 51
57: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 8
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 11
goto 60
StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 10
start local 10 59: aload 5
aload 10
aload 0
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.markFloating:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 10 60: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 58
end local 8 61: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph 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 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 6 62: StackMap locals: org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.Graph java.lang.Iterable java.lang.Iterable org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
63: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 nodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 64 1 graph Lorg/graalvm/compiler/graph/Graph;
0 64 2 blocks Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
0 64 3 earlyExits Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
2 18 4 b Lorg/graalvm/compiler/nodes/AbstractBeginNode;
6 17 6 n Lorg/graalvm/compiler/graph/Node;
10 11 8 withState Lorg/graalvm/compiler/nodes/spi/NodeWithState;
14 15 8 phi Lorg/graalvm/compiler/nodes/PhiNode;
21 33 4 earlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
26 33 6 loopExit Lorg/graalvm/compiler/nodes/LoopExitNode;
27 33 7 stateAfter Lorg/graalvm/compiler/nodes/FrameState;
31 32 8 proxy Lorg/graalvm/compiler/nodes/ProxyNode;
35 64 4 nonLoopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
36 64 5 worklist Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;
38 62 6 b Lorg/graalvm/compiler/nodes/AbstractBeginNode;
42 61 8 n Lorg/graalvm/compiler/graph/Node;
45 46 10 obj Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
52 56 10 phi Lorg/graalvm/compiler/nodes/PhiNode;
54 55 12 usage Lorg/graalvm/compiler/graph/Node;
59 60 10 usage Lorg/graalvm/compiler/graph/Node;
Signature: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;Ljava/lang/Iterable<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;)V
MethodParameters:
Name Flags
nodes
graph
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.graph.Node, org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.graph.NodeBitMap);
descriptor: (Ljava/util/Deque;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=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
aload 3
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 0
aload 1
aload 2
invokestatic org.graalvm.compiler.loop.LoopFragment.pushWorkList:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
3: goto 28
4: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopFragment$WorkListEntry
astore 4
start local 4 5: aload 4
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.usages:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 14
6: aload 4
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 5
start local 5 7: aload 5
aload 2
aload 3
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 6
start local 6 8: aload 6
invokevirtual jdk.vm.ci.meta.TriState.isKnown:()Z
ifeq 12
9: aload 6
invokevirtual jdk.vm.ci.meta.TriState.toBoolean:()Z
ifeq 28
10: aload 4
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
11: goto 28
12: StackMap locals: org.graalvm.compiler.loop.LoopFragment$WorkListEntry org.graalvm.compiler.graph.Node jdk.vm.ci.meta.TriState
StackMap stack:
aload 0
aload 5
aload 2
invokestatic org.graalvm.compiler.loop.LoopFragment.pushWorkList:(Ljava/util/Deque;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeBitMap;)V
end local 6 end local 5 13: goto 28
14: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
15: aload 4
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
istore 5
start local 5 16: aload 4
getfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.n:Lorg/graalvm/compiler/graph/Node;
astore 6
start local 6 17: iload 5
ifne 20
aload 6
instanceof org.graalvm.compiler.nodes.GuardNode
ifeq 20
18: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 19
aload 6
checkcast org.graalvm.compiler.nodes.GuardNode
invokevirtual org.graalvm.compiler.nodes.GuardNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
ifeq 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals: int org.graalvm.compiler.graph.Node
StackMap stack:
iconst_1
istore 5
20: StackMap locals:
StackMap stack:
iload 5
ifeq 27
21: aload 2
aload 6
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
22: aload 0
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 8
goto 25
StackMap locals: java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.loop.LoopFragment$WorkListEntry int org.graalvm.compiler.graph.Node top java.util.Iterator
StackMap stack:
23: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopFragment$WorkListEntry
astore 7
start local 7 24: aload 7
iconst_1
putfield org.graalvm.compiler.loop.LoopFragment$WorkListEntry.isLoopNode:Z
end local 7 25: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
26: goto 28
27: StackMap locals: java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.loop.LoopFragment$WorkListEntry int org.graalvm.compiler.graph.Node
StackMap stack:
aload 3
aload 6
invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
end local 6 end local 5 end local 4 28: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 4
29: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 workList Ljava/util/Deque<Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;>;
0 30 1 start Lorg/graalvm/compiler/graph/Node;
0 30 2 loopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 30 3 nonLoopNodes Lorg/graalvm/compiler/graph/NodeBitMap;
5 28 4 currentEntry Lorg/graalvm/compiler/loop/LoopFragment$WorkListEntry;
7 13 5 current Lorg/graalvm/compiler/graph/Node;
8 13 6 result Ljdk/vm/ci/meta/TriState;
16 28 5 isLoopNode Z
17 28 6 current Lorg/graalvm/compiler/graph/Node;
24 25 7 e 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;Lorg/graalvm/compiler/graph/NodeBitMap;)V
MethodParameters:
Name Flags
workList
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
public static org.graalvm.compiler.graph.iterators.NodeIterable<org.graalvm.compiler.nodes.AbstractBeginNode> toHirExits(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$3
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopFragment$3.<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=5, 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.getExits:()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 59
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
checkcast org.graalvm.compiler.nodes.LoopExitNode
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 5
start local 5 6: aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.isDeleted:()Z
ifne 59
aload 0
invokevirtual org.graalvm.compiler.loop.LoopFragment.original:()Lorg/graalvm/compiler/loop/LoopFragment;
aload 4
invokevirtual org.graalvm.compiler.loop.LoopFragment.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifne 8
7: goto 59
8: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 0
aload 4
invokevirtual org.graalvm.compiler.loop.LoopFragment.getDuplicatedNode:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 6
start local 6 9: aload 6
ifnonnull 11
10: goto 59
11: 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 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 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 9
start local 9 14: aload 7
aload 8
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
15: aload 7
aload 9
invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
16: aload 4
aload 8
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
17: aload 6
aload 9
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
18: aload 7
aload 5
invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
19: aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 10
start local 10 20: aload 10
ifnull 27
21: aload 10
astore 11
start local 11 22: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.duplicateWithVirtualState:()Lorg/graalvm/compiler/nodes/FrameState;
astore 10
23: aload 4
aload 10
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
24: aload 7
aload 11
invokevirtual org.graalvm.compiler.nodes.MergeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
25: 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
26: aload 10
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 27: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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 10
astore 11
start local 11 28: aload 4
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.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 13
goto 31
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.FrameState top java.util.Iterator
StackMap stack:
29: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 12
start local 12 30: aload 12
aload 4
aload 7
invokevirtual org.graalvm.compiler.graph.Node.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
end local 12 31: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
32: aload 6
instanceof org.graalvm.compiler.nodes.LoopExitNode
istore 12
start local 12 33: aload 4
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 58
StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.FrameState int top java.util.Iterator
StackMap stack:
34: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ProxyNode
astore 13
start local 13 35: aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.hasNoUsages:()Z
ifeq 37
36: goto 58
37: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.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 41
38: getstatic org.graalvm.compiler.loop.LoopFragment.$assertionsDisabled:Z
ifne 39
aload 13
instanceof org.graalvm.compiler.nodes.GuardProxyNode
ifne 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: StackMap locals:
StackMap stack:
aload 13
aconst_null
invokevirtual org.graalvm.compiler.nodes.ProxyNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
40: goto 58
41: StackMap locals:
StackMap stack:
aload 0
iload 12
ifeq 42
aload 13
goto 43
StackMap locals:
StackMap stack: org.graalvm.compiler.loop.LoopFragment
42: 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.LoopExitNode 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.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator
StackMap stack: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.ValueNode
43: invokevirtual org.graalvm.compiler.loop.LoopFragment.prim:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 44: aload 16
ifnull 56
45: aload 13
instanceof org.graalvm.compiler.nodes.ValueProxyNode
ifeq 48
46: aload 1
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 13
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ProxyNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 17
start local 17 47: goto 52
end local 17 StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.FrameState int org.graalvm.compiler.nodes.ProxyNode java.util.Iterator top org.graalvm.compiler.nodes.ValueNode
StackMap stack:
48: aload 13
instanceof org.graalvm.compiler.nodes.GuardProxyNode
ifeq 51
49: aload 1
new org.graalvm.compiler.nodes.GuardPhiNode
dup
aload 7
invokespecial org.graalvm.compiler.nodes.GuardPhiNode.<init>:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 17
start local 17 50: goto 52
end local 17 51: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
start local 17 52: StackMap locals: org.graalvm.compiler.nodes.PhiNode
StackMap stack:
aload 17
aload 13
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
53: aload 17
aload 16
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
54: aload 17
astore 15
end local 17 start local 15 55: goto 57
end local 15 56: StackMap locals:
StackMap stack:
aload 13
invokevirtual org.graalvm.compiler.nodes.ProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 15
start local 15 57: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.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 7
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 58: StackMap locals: org.graalvm.compiler.loop.LoopFragment org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.AbstractBeginNode java.util.Iterator org.graalvm.compiler.nodes.LoopExitNode 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.FrameState int top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
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 59: 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
60: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/graalvm/compiler/loop/LoopFragment;
2 61 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 59 2 earlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
5 59 4 loopEarlyExit Lorg/graalvm/compiler/nodes/LoopExitNode;
6 59 5 next Lorg/graalvm/compiler/nodes/FixedNode;
9 59 6 newEarlyExit Lorg/graalvm/compiler/nodes/AbstractBeginNode;
12 59 7 merge Lorg/graalvm/compiler/nodes/MergeNode;
13 59 8 originalEnd Lorg/graalvm/compiler/nodes/EndNode;
14 59 9 newEnd Lorg/graalvm/compiler/nodes/EndNode;
20 59 10 exitState Lorg/graalvm/compiler/nodes/FrameState;
22 27 11 originalExitState Lorg/graalvm/compiler/nodes/FrameState;
28 59 11 finalExitState Lorg/graalvm/compiler/nodes/FrameState;
30 31 12 anchored Lorg/graalvm/compiler/graph/Node;
33 59 12 newEarlyExitIsLoopExit Z
35 58 13 vpn Lorg/graalvm/compiler/nodes/ProxyNode;
55 56 15 replaceWith Lorg/graalvm/compiler/nodes/ValueNode;
57 58 15 replaceWith Lorg/graalvm/compiler/nodes/ValueNode;
44 58 16 newVpn Lorg/graalvm/compiler/nodes/ValueNode;
47 48 17 phi Lorg/graalvm/compiler/nodes/PhiNode;
50 51 17 phi Lorg/graalvm/compiler/nodes/PhiNode;
52 55 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$3 org.graalvm.compiler.loop.LoopFragment$3$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
org.graalvm.compiler.loop.LoopFragment$3
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