class org.graalvm.compiler.nodes.GraphEncoder$NodeOrder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder
super_class: java.lang.Object
{
protected final org.graalvm.compiler.graph.NodeMap<java.lang.Integer> orderIds;
descriptor: Lorg/graalvm/compiler/graph/NodeMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeMap<Ljava/lang/Integer;>;
protected int nextOrderId;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int maxFixedNodeOrderId;
descriptor: I
flags: (0x0004) ACC_PROTECTED
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: .line 315
ldc Lorg/graalvm/compiler/nodes/GraphEncoder;
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.nodes.GraphEncoder$NodeOrder.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=2
start local 0 // org.graalvm.compiler.nodes.GraphEncoder$NodeOrder this
start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
0: .line 320
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 321
aload 0 /* this */
new org.graalvm.compiler.graph.NodeMap
dup
aload 1 /* graph */
invokespecial org.graalvm.compiler.graph.NodeMap.<init>:(Lorg/graalvm/compiler/graph/Graph;)V
putfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
2: .line 322
aload 0 /* this */
iconst_1
putfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
3: .line 325
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 2 /* nodeQueue */
start local 2 // java.util.Deque nodeQueue
4: .line 326
aload 1 /* graph */
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
astore 3 /* current */
start local 3 // org.graalvm.compiler.nodes.FixedNode current
5: .line 328
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 0 /* this */
aload 3 /* current */
invokevirtual org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.add:(Lorg/graalvm/compiler/graph/Node;)V
6: .line 329
aload 3 /* current */
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifeq 8
7: .line 330
aload 0 /* this */
aload 3 /* current */
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.add:(Lorg/graalvm/compiler/graph/Node;)V
8: .line 333
StackMap locals:
StackMap stack:
aload 3 /* current */
instanceof org.graalvm.compiler.nodes.FixedWithNextNode
ifeq 11
9: .line 334
aload 3 /* current */
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
getfield org.graalvm.compiler.nodes.FixedWithNextNode.next:Lorg/graalvm/compiler/nodes/FixedNode;
astore 3 /* current */
10: .line 335
goto 31
11: .line 336
StackMap locals:
StackMap stack:
aload 3 /* current */
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifeq 18
12: .line 337
aload 3 /* current */
invokevirtual org.graalvm.compiler.nodes.FixedNode.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode top java.util.Iterator
StackMap stack:
13: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 4 /* successor */
start local 4 // org.graalvm.compiler.graph.Node successor
14: .line 338
aload 4 /* successor */
ifnull 16
15: .line 339
aload 2 /* nodeQueue */
aload 4 /* successor */
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
end local 4 // org.graalvm.compiler.graph.Node successor
16: .line 337
StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
17: .line 342
goto 30
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode
StackMap stack:
18: aload 3 /* current */
instanceof org.graalvm.compiler.nodes.EndNode
ifeq 30
19: .line 343
aload 3 /* current */
checkcast org.graalvm.compiler.nodes.AbstractEndNode
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
astore 4 /* merge */
start local 4 // org.graalvm.compiler.nodes.AbstractMergeNode merge
20: .line 344
iconst_1
istore 5 /* allForwardEndsVisited */
start local 5 // boolean allForwardEndsVisited
21: .line 345
iconst_0
istore 6 /* i */
start local 6 // int i
22: goto 27
23: .line 346
StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode int int
StackMap stack:
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 4 /* merge */
iload 6 /* i */
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndAt:(I)Lorg/graalvm/compiler/nodes/EndNode;
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
ifnonnull 26
24: .line 347
iconst_0
istore 5 /* allForwardEndsVisited */
25: .line 348
goto 28
26: .line 345
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
27: iload 6 /* i */
aload 4 /* merge */
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
if_icmplt 23
end local 6 // int i
28: .line 351
StackMap locals:
StackMap stack:
iload 5 /* allForwardEndsVisited */
ifeq 30
29: .line 352
aload 2 /* nodeQueue */
aload 4 /* merge */
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
end local 5 // boolean allForwardEndsVisited
end local 4 // org.graalvm.compiler.nodes.AbstractMergeNode merge
30: .line 355
StackMap locals:
StackMap stack:
aload 2 /* nodeQueue */
invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedNode
astore 3 /* current */
31: .line 357
StackMap locals:
StackMap stack:
aload 3 /* current */
ifnonnull 5
32: .line 359
aload 0 /* this */
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
iconst_1
isub
putfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.maxFixedNodeOrderId:I
33: .line 369
aload 1 /* graph */
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
aload 1 /* graph */
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isStatic:()Z
ifeq 34
iconst_0
goto 35
StackMap locals:
StackMap stack: jdk.vm.ci.meta.Signature
34: iconst_1
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode
StackMap stack: jdk.vm.ci.meta.Signature int
35: invokeinterface jdk.vm.ci.meta.Signature.getParameterCount:(Z)I
istore 4 /* parameterCount */
start local 4 // int parameterCount
36: .line 370
aload 1 /* graph */
getstatic org.graalvm.compiler.nodes.ParameterNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 6
goto 41
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int top java.util.Iterator
StackMap stack:
37: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ParameterNode
astore 5 /* node */
start local 5 // org.graalvm.compiler.nodes.ParameterNode node
38: .line 371
getstatic org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.$assertionsDisabled:Z
ifne 39
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 5 /* node */
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
ifnull 39
new java.lang.AssertionError
dup
ldc "Parameter node must not be ordered yet"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
39: .line 372
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.ParameterNode java.util.Iterator
StackMap stack:
getstatic org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.$assertionsDisabled:Z
ifne 40
aload 5 /* node */
invokevirtual org.graalvm.compiler.nodes.ParameterNode.index:()I
iload 4 /* parameterCount */
if_icmplt 40
new java.lang.AssertionError
dup
ldc "Parameter index out of range"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
40: .line 373
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 5 /* node */
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
aload 5 /* node */
invokevirtual org.graalvm.compiler.nodes.ParameterNode.index:()I
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.graph.NodeMap.set:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
end local 5 // org.graalvm.compiler.nodes.ParameterNode node
41: .line 370
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
42: .line 375
aload 0 /* this */
dup
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
iload 4 /* parameterCount */
iadd
putfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
43: .line 377
aload 1 /* graph */
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 6
goto 51
StackMap locals:
StackMap stack:
44: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 5 /* node */
start local 5 // org.graalvm.compiler.graph.Node node
45: .line 378
getstatic org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.$assertionsDisabled:Z
ifne 50
aload 5 /* node */
instanceof org.graalvm.compiler.nodes.FixedNode
ifne 46
aload 5 /* node */
instanceof org.graalvm.compiler.nodes.ParameterNode
ifne 46
iconst_0
goto 47
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
46: iconst_1
StackMap locals:
StackMap stack: int
47: aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 5 /* node */
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
ifnull 48
iconst_1
goto 49
StackMap locals:
StackMap stack: int
48: iconst_0
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack: int int
49: if_icmpeq 50
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "all fixed nodes and ParameterNodes must be ordered: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5 /* node */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
50: .line 379
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 5 /* node */
invokevirtual org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.add:(Lorg/graalvm/compiler/graph/Node;)V
end local 5 // org.graalvm.compiler.graph.Node node
51: .line 377
StackMap locals: org.graalvm.compiler.nodes.GraphEncoder$NodeOrder org.graalvm.compiler.nodes.StructuredGraph java.util.Deque org.graalvm.compiler.nodes.FixedNode int top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 44
52: .line 381
return
end local 4 // int parameterCount
end local 3 // org.graalvm.compiler.nodes.FixedNode current
end local 2 // java.util.Deque nodeQueue
end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
end local 0 // org.graalvm.compiler.nodes.GraphEncoder$NodeOrder this
LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lorg/graalvm/compiler/nodes/GraphEncoder$NodeOrder;
0 53 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 53 2 nodeQueue Ljava/util/Deque<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
5 53 3 current Lorg/graalvm/compiler/nodes/FixedNode;
14 16 4 successor Lorg/graalvm/compiler/graph/Node;
20 30 4 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
21 30 5 allForwardEndsVisited Z
22 28 6 i I
36 53 4 parameterCount I
38 41 5 node Lorg/graalvm/compiler/nodes/ParameterNode;
45 51 5 node Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
graph
private void add(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // org.graalvm.compiler.nodes.GraphEncoder$NodeOrder this
start local 1 // org.graalvm.compiler.graph.Node node
0: .line 384
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 1 /* node */
invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
ifnonnull 3
1: .line 385
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.orderIds:Lorg/graalvm/compiler/graph/NodeMap;
aload 1 /* node */
aload 0 /* this */
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.graph.NodeMap.set:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
2: .line 386
aload 0 /* this */
dup
getfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
iconst_1
iadd
putfield org.graalvm.compiler.nodes.GraphEncoder$NodeOrder.nextOrderId:I
3: .line 388
StackMap locals:
StackMap stack:
return
end local 1 // org.graalvm.compiler.graph.Node node
end local 0 // org.graalvm.compiler.nodes.GraphEncoder$NodeOrder this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/nodes/GraphEncoder$NodeOrder;
0 4 1 node Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
node
}
SourceFile: "GraphEncoder.java"
NestHost: org.graalvm.compiler.nodes.GraphEncoder
InnerClasses:
NodeOrder = org.graalvm.compiler.nodes.GraphEncoder$NodeOrder of org.graalvm.compiler.nodes.GraphEncoder