public final class com.oracle.truffle.api.nodes.NodeUtil
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.nodes.NodeUtil
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/nodes/NodeUtil;
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 com.oracle.truffle.api.nodes.NodeUtil.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/nodes/NodeUtil;
public static <T extends com.oracle.truffle.api.nodes.Node> T cloneNode();
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 orig TT;
Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;)TT;
MethodParameters:
Name Flags
orig
static com.oracle.truffle.api.nodes.Node deepCopyImpl(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=11, args_size=1
start local 0 0: ldc "do not call Node.deepCopyImpl from compiled code"
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
1: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.copy:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 3: aload 1
aconst_null
invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
4: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 38
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
5: aload 6
iload 4
aaload
astore 3
start local 3 6: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 13
7: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 7
start local 7 8: aload 7
ifnull 37
9: aload 7
invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
astore 8
start local 8 10: aload 8
aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
11: aload 2
aload 3
aload 1
aload 8
invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
end local 8 end local 7 12: goto 37
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
13: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 30
14: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 7
start local 7 15: aload 7
ifnull 37
16: aload 7
arraylength
ifle 27
17: aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aload 7
arraylength
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 8
start local 8 18: iconst_0
istore 9
start local 9 19: goto 25
20: StackMap locals: java.lang.Object[] java.lang.Object[] int
StackMap stack:
aload 7
iload 9
aaload
ifnull 24
21: aload 7
iload 9
aaload
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
astore 10
start local 10 22: aload 10
aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
23: aload 8
iload 9
aload 10
aastore
end local 10 24: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
25: iload 9
aload 7
arraylength
if_icmplt 20
end local 9 26: goto 28
end local 8 27: StackMap locals:
StackMap stack:
aload 7
astore 8
start local 8 28: StackMap locals: java.lang.Object[]
StackMap stack:
aload 2
aload 3
aload 1
aload 8
invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
end local 8 end local 7 29: goto 37
StackMap locals:
StackMap stack:
30: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isCloneableField:(Ljava/lang/Object;)Z
ifeq 35
31: aload 2
aload 3
aload 1
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 32: aload 7
ifnull 37
aload 7
aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
if_acmpne 37
33: aload 2
aload 3
aload 1
aload 7
checkcast com.oracle.truffle.api.nodes.NodeCloneable
invokevirtual com.oracle.truffle.api.nodes.NodeCloneable.clone:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
end local 7 34: goto 37
StackMap locals:
StackMap stack:
35: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 37
36: goto 39
end local 3 37: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
38: iload 4
iload 5
if_icmplt 5
39: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 orig Lcom/oracle/truffle/api/nodes/Node;
2 40 1 clone Lcom/oracle/truffle/api/nodes/Node;
3 40 2 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
6 37 3 field Ljava/lang/Object;
8 12 7 child Lcom/oracle/truffle/api/nodes/Node;
10 12 8 clonedChild Lcom/oracle/truffle/api/nodes/Node;
15 29 7 children [Ljava/lang/Object;
18 27 8 clonedChildren [Ljava/lang/Object;
28 29 8 clonedChildren [Ljava/lang/Object;
19 26 9 i I
22 24 10 clonedChild Lcom/oracle/truffle/api/nodes/Node;
32 34 7 cloneable Ljava/lang/Object;
MethodParameters:
Name Flags
orig
public static java.util.List<com.oracle.truffle.api.nodes.Node> findNodeChildren(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=12, args_size=1
start local 0 0: ldc "do not call Node.findNodeChildren from compiled code"
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 2: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 3: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 23
StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 10
6: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 7: aload 7
ifnull 22
8: aload 1
aload 7
checkcast com.oracle.truffle.api.nodes.Node
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 9: goto 22
StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
10: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 20
11: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 7
start local 7 12: aload 7
ifnull 22
13: aload 7
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 18
StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] top int int java.lang.Object[]
StackMap stack:
14: aload 11
iload 9
aaload
astore 8
start local 8 15: aload 8
ifnull 17
16: aload 1
aload 8
checkcast com.oracle.truffle.api.nodes.Node
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 17: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
18: iload 9
iload 10
if_icmplt 14
end local 7 19: goto 22
StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
20: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 22
21: goto 24
end local 3 22: StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
iload 5
if_icmplt 4
24: StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 node Lcom/oracle/truffle/api/nodes/Node;
2 25 1 nodes Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
3 25 2 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
5 22 3 nodeField Ljava/lang/Object;
7 9 7 child Ljava/lang/Object;
12 19 7 children [Ljava/lang/Object;
15 17 8 child Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
MethodParameters:
Name Flags
node
public static <T extends com.oracle.truffle.api.nodes.Node> T nonAtomicReplace(com.oracle.truffle.api.nodes.Node, T, java.lang.CharSequence);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.replaceHelper:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
1: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 oldNode Lcom/oracle/truffle/api/nodes/Node;
0 2 1 newNode TT;
0 2 2 reason Ljava/lang/CharSequence;
Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(Lcom/oracle/truffle/api/nodes/Node;TT;Ljava/lang/CharSequence;)TT;
MethodParameters:
Name Flags
oldNode
newNode
reason
public static boolean replaceChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Z)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 1 1 oldChild Lcom/oracle/truffle/api/nodes/Node;
0 1 2 newChild Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
parent
oldChild
newChild
public static com.oracle.truffle.api.nodes.Node getCurrentEncapsulatingNode();
descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.get:()Lcom/oracle/truffle/api/nodes/Node;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
java.lang.Deprecated()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public static com.oracle.truffle.api.nodes.Node pushEncapsulatingNode(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
aload 0
invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.set:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 node Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
node
public static void popEncapsulatingNode(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
aload 0
invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.set:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 prev Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
prev
static void adoptChildrenHelper(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=11, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 28
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 1
aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 10
4: aload 1
aload 2
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 6
start local 6 5: aload 6
ifnull 27
6: aload 6
checkcast com.oracle.truffle.api.nodes.Node
astore 7
start local 7 7: aload 7
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
aload 0
if_acmpeq 27
8: aload 0
aload 7
invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
end local 7 end local 6 9: goto 27
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
10: aload 1
aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 25
11: aload 1
aload 2
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 6
start local 6 12: aload 6
ifnonnull 14
13: goto 27
14: StackMap locals: java.lang.Object
StackMap stack:
aload 6
checkcast java.lang.Object[]
astore 7
start local 7 15: iconst_0
istore 8
start local 8 16: goto 23
17: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 7
iload 8
aaload
astore 9
start local 9 18: aload 9
ifnull 22
19: aload 9
checkcast com.oracle.truffle.api.nodes.Node
astore 10
start local 10 20: aload 10
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
aload 0
if_acmpeq 22
21: aload 0
aload 10
invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
end local 10 end local 9 22: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
23: iload 8
aload 7
arraylength
if_icmplt 17
end local 8 end local 7 end local 6 24: goto 27
StackMap locals:
StackMap stack:
25: aload 1
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 27
26: goto 29
end local 2 27: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
28: iload 3
iload 4
if_icmplt 2
29: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 currentNode Lcom/oracle/truffle/api/nodes/Node;
1 30 1 clazz Lcom/oracle/truffle/api/nodes/NodeClass;
3 27 2 field Ljava/lang/Object;
5 9 6 child Ljava/lang/Object;
7 9 7 node Lcom/oracle/truffle/api/nodes/Node;
12 24 6 arrayObject Ljava/lang/Object;
15 24 7 array [Ljava/lang/Object;
16 24 8 i I
18 22 9 child Ljava/lang/Object;
20 22 10 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
currentNode
static int adoptChildrenAndCountHelper(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=12, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 27
StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 10
5: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 6: aload 7
ifnull 26
7: aload 7
checkcast com.oracle.truffle.api.nodes.Node
astore 8
start local 8 8: iload 1
aload 0
aload 8
invokevirtual com.oracle.truffle.api.nodes.Node.adoptAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
iadd
istore 1
end local 8 end local 7 9: goto 26
StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
10: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 24
11: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 12: aload 7
ifnonnull 14
13: goto 26
14: StackMap locals: java.lang.Object
StackMap stack:
aload 7
checkcast java.lang.Object[]
astore 8
start local 8 15: iconst_0
istore 9
start local 9 16: goto 22
17: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 8
iload 9
aaload
astore 10
start local 10 18: aload 10
ifnull 21
19: aload 10
checkcast com.oracle.truffle.api.nodes.Node
astore 11
start local 11 20: iload 1
aload 0
aload 11
invokevirtual com.oracle.truffle.api.nodes.Node.adoptAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
iadd
istore 1
end local 11 end local 10 21: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
22: iload 9
aload 8
arraylength
if_icmplt 17
end local 9 end local 8 end local 7 23: goto 26
StackMap locals:
StackMap stack:
24: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 26
25: goto 28
end local 3 26: StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
27: iload 4
iload 5
if_icmplt 3
28: StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 currentNode Lcom/oracle/truffle/api/nodes/Node;
1 29 1 count I
2 29 2 clazz Lcom/oracle/truffle/api/nodes/NodeClass;
4 26 3 field Ljava/lang/Object;
6 9 7 child Ljava/lang/Object;
8 9 8 node Lcom/oracle/truffle/api/nodes/Node;
12 23 7 arrayObject Ljava/lang/Object;
15 23 8 array [Ljava/lang/Object;
16 23 9 i I
18 21 10 child Ljava/lang/Object;
20 21 11 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
currentNode
static boolean replaceChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, boolean);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Z)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "do not replace Node child from compiled code"
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
1: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 4
start local 4 2: aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 30
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
3: aload 8
iload 6
aaload
astore 5
start local 5 4: aload 4
aload 5
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 10
5: aload 4
aload 5
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
aload 1
if_acmpne 29
6: iload 3
ifeq 8
7: aload 0
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
8: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 4
aload 5
aload 0
aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 4
aload 5
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 27
11: aload 4
aload 5
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 9
start local 9 12: aload 9
ifnull 29
13: aload 9
checkcast java.lang.Object[]
astore 10
start local 10 14: iconst_0
istore 11
start local 11 15: goto 25
16: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
aload 10
iload 11
aaload
aload 1
if_acmpne 24
17: iload 3
ifeq 19
18: aload 0
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
19: StackMap locals:
StackMap stack:
aload 10
iload 11
aload 2
aastore
20: goto 23
StackMap locals:
StackMap stack: java.lang.ArrayStoreException
21: pop
22: aload 5
aload 10
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChildIllegalArgumentException:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
athrow
23: StackMap locals:
StackMap stack:
iconst_1
ireturn
24: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
25: iload 11
aload 10
arraylength
if_icmplt 16
end local 11 end local 10 end local 9 26: goto 29
StackMap locals:
StackMap stack:
27: aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 29
28: goto 31
end local 5 29: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
30: iload 6
iload 7
if_icmplt 3
31: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 32 1 oldChild Lcom/oracle/truffle/api/nodes/Node;
0 32 2 newChild Lcom/oracle/truffle/api/nodes/Node;
0 32 3 adopt Z
2 32 4 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
4 29 5 nodeField Ljava/lang/Object;
12 26 9 arrayObject Ljava/lang/Object;
14 26 10 array [Ljava/lang/Object;
15 26 11 i I
Exception table:
from to target type
19 20 21 Class java.lang.ArrayStoreException
MethodParameters:
Name Flags
parent
oldChild
newChild
adopt
private static java.lang.IllegalArgumentException replaceChildIllegalArgumentException(, java.lang.Class<?>, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Cannot set element of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " field "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
ifnonnull 1
ldc "null"
goto 2
StackMap locals: java.lang.Object java.lang.Class com.oracle.truffle.api.nodes.Node
StackMap stack: new 0 new 0 java.lang.StringBuilder
1: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
StackMap locals: java.lang.Object java.lang.Class com.oracle.truffle.api.nodes.Node
StackMap stack: new 0 new 0 java.lang.StringBuilder java.lang.String
2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 nodeField Ljava/lang/Object;
0 3 1 fieldType Ljava/lang/Class<*>;
0 3 2 newChild Lcom/oracle/truffle/api/nodes/Node;
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
MethodParameters:
Name Flags
nodeField
fieldType
newChild
public static com.oracle.truffle.api.nodes.NodeFieldAccessor findChildField(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=10, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.nodes.NodeUtil.$assertionsDisabled:Z
ifne 1
aload 1
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFields:()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 18
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILD:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
if_acmpne 7
5: aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
aload 1
if_acmpne 17
6: aload 3
areturn
7: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass com.oracle.truffle.api.nodes.NodeFieldAccessor int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILDREN:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
if_acmpne 17
8: aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 9: aload 7
ifnull 17
10: aload 7
checkcast java.lang.Object[]
astore 8
start local 8 11: iconst_0
istore 9
start local 9 12: goto 16
13: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
aload 8
iload 9
aaload
aload 1
if_acmpne 15
14: aload 3
areturn
15: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
16: iload 9
aload 8
arraylength
if_icmplt 13
end local 9 end local 8 end local 7 end local 3 17: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
iload 5
if_icmplt 3
19: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 20 1 child Lcom/oracle/truffle/api/nodes/Node;
2 20 2 parentNodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
4 17 3 field Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
9 17 7 arrayObject Ljava/lang/Object;
11 17 8 array [Ljava/lang/Object;
12 17 9 i I
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
parent
child
public static boolean isReplacementSafe(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 25
1: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 3
start local 3 4: aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 23
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 9
7: aload 3
aload 4
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
aload 1
if_acmpne 22
8: aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ireturn
9: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 20
10: aload 3
aload 4
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 8
start local 8 11: aload 8
ifnull 22
12: aload 8
checkcast java.lang.Object[]
astore 9
start local 9 13: iconst_0
istore 10
start local 10 14: goto 18
15: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
aload 9
iload 10
aaload
aload 1
if_acmpne 17
16: aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ireturn
17: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
18: iload 10
aload 9
arraylength
if_icmplt 15
end local 10 end local 9 end local 8 19: goto 22
StackMap locals:
StackMap stack:
20: aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 22
21: goto 24
end local 4 22: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
iload 6
if_icmplt 5
24: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
iconst_1
ireturn
end local 3 25: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 26 1 oldChild Lcom/oracle/truffle/api/nodes/Node;
0 26 2 newChild Lcom/oracle/truffle/api/nodes/Node;
4 25 3 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
6 22 4 field Ljava/lang/Object;
11 19 8 arrayObject Ljava/lang/Object;
13 19 9 array [Ljava/lang/Object;
14 19 10 i I
MethodParameters:
Name Flags
parent
oldChild
newChild
public static boolean forEachChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: ldc "do not iterate over Node children from compiled code"
invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 3: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 26
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 10
6: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 7: aload 7
ifnull 25
8: aload 1
aload 7
checkcast com.oracle.truffle.api.nodes.Node
invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 25
9: iconst_0
ireturn
end local 7 10: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 23
11: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 12: aload 7
ifnull 25
13: aload 7
checkcast java.lang.Object[]
astore 8
start local 8 14: iconst_0
istore 9
start local 9 15: goto 21
16: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
aload 8
iload 9
aaload
astore 10
start local 10 17: aload 10
ifnull 20
18: aload 1
aload 10
checkcast com.oracle.truffle.api.nodes.Node
invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 20
19: iconst_0
ireturn
end local 10 20: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
21: iload 9
aload 8
arraylength
if_icmplt 16
end local 9 end local 8 end local 7 22: goto 25
StackMap locals:
StackMap stack:
23: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 25
24: goto 27
end local 3 25: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
26: iload 4
iload 5
if_icmplt 4
27: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 28 1 visitor Lcom/oracle/truffle/api/nodes/NodeVisitor;
3 28 2 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
5 25 3 field Ljava/lang/Object;
7 10 7 child Ljava/lang/Object;
12 22 7 arrayObject Ljava/lang/Object;
14 22 8 array [Ljava/lang/Object;
15 22 9 i I
17 20 10 child Ljava/lang/Object;
MethodParameters:
Name Flags
parent
visitor
static boolean forEachChildRecursive(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 21
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 6
4: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.visitChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
ifne 20
5: iconst_0
ireturn
6: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 2
aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 18
7: aload 2
aload 3
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 7
start local 7 8: aload 7
ifnonnull 10
9: goto 20
10: StackMap locals: java.lang.Object
StackMap stack:
aload 7
checkcast java.lang.Object[]
astore 8
start local 8 11: iconst_0
istore 9
start local 9 12: goto 16
13: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 8
iload 9
aaload
checkcast com.oracle.truffle.api.nodes.Node
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.visitChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
ifne 15
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
16: iload 9
aload 8
arraylength
if_icmplt 13
end local 9 end local 8 end local 7 17: goto 20
StackMap locals:
StackMap stack:
18: aload 2
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 20
19: goto 22
end local 3 20: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
iload 5
if_icmplt 2
22: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 23 1 visitor Lcom/oracle/truffle/api/nodes/NodeVisitor;
1 23 2 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
3 20 3 field Ljava/lang/Object;
8 17 7 arrayObject Ljava/lang/Object;
11 17 8 array [Ljava/lang/Object;
12 17 9 i I
MethodParameters:
Name Flags
parent
visitor
private static boolean visitChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChildRecursive:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 child Lcom/oracle/truffle/api/nodes/Node;
0 7 1 visitor Lcom/oracle/truffle/api/nodes/NodeVisitor;
MethodParameters:
Name Flags
child
visitor
public static <T> T[] concat(T[], );
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 0
arraylength
aload 1
arraylength
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 2
start local 2 1: aload 1
iconst_0
aload 2
aload 0
arraylength
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 first [Ljava/lang/Object;
0 3 1 second [Ljava/lang/Object;
1 3 2 result [Ljava/lang/Object;
Signature: <T:Ljava/lang/Object;>([TT;[TT;)[TT;
MethodParameters:
Name Flags
first
second
public static com.oracle.truffle.api.nodes.Node getNthParent(com.oracle.truffle.api.nodes.Node, int);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;I)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 7
3: StackMap locals: com.oracle.truffle.api.nodes.Node int
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
4: aload 2
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 1
if_icmplt 3
end local 3 8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 node Lcom/oracle/truffle/api/nodes/Node;
0 9 1 n I
1 9 2 parent Lcom/oracle/truffle/api/nodes/Node;
2 8 3 i I
MethodParameters:
Name Flags
node
n
public static <T extends java.lang.annotation.Annotation> T findAnnotation(java.lang.Class<?>, java.lang.Class<T>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 2
1: aload 0
aload 1
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifne 9
3: aload 0
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: java.lang.Class java.lang.Class top int int java.lang.Class[]
StackMap stack:
4: aload 5
iload 3
aaload
astore 2
start local 2 5: aload 2
aload 1
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 7
6: aload 2
aload 1
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
areturn
end local 2 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 4
9: StackMap locals: java.lang.Class java.lang.Class
StackMap stack:
aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
ifnull 11
10: aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findAnnotation:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
areturn
11: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 clazz Ljava/lang/Class<*>;
0 12 1 annotationClass Ljava/lang/Class<TT;>;
5 7 2 intf Ljava/lang/Class<*>;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<*>;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
clazz
annotationClass
public static <T> T findParent(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 5
4: aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 start Lcom/oracle/truffle/api/nodes/Node;
0 6 1 clazz Ljava/lang/Class<TT;>;
1 6 2 parent Lcom/oracle/truffle/api/nodes/Node;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
start
clazz
public static <T> java.util.List<T> findAllParents(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
astore 3
start local 3 2: goto 5
3: StackMap locals: java.util.List java.lang.Object
StackMap stack:
aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 3
checkcast com.oracle.truffle.api.nodes.Node
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
astore 3
5: StackMap locals:
StackMap stack:
aload 3
ifnonnull 3
6: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 start Lcom/oracle/truffle/api/nodes/Node;
0 7 1 clazz Ljava/lang/Class<TT;>;
1 7 2 parents Ljava/util/List<TT;>;
2 7 3 parent TT;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
start
clazz
public static java.util.List<com.oracle.truffle.api.nodes.Node> collectNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 1
astore 3
start local 3 2: goto 7
3: StackMap locals: java.util.List com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 3
aload 0
if_acmpne 6
5: aload 2
areturn
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
7: StackMap locals:
StackMap stack:
aload 3
ifnonnull 3
8: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Node "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not a parent of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 9 1 child Lcom/oracle/truffle/api/nodes/Node;
1 9 2 nodes Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
2 9 3 current Lcom/oracle/truffle/api/nodes/Node;
Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
MethodParameters:
Name Flags
parent
child
public static <T> T findFirstNodeInstance(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 2
1: aload 1
aload 0
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Class top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 2
start local 2 4: aload 2
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findFirstNodeInstance:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
astore 4
start local 4 5: aload 4
ifnull 7
6: aload 4
areturn
end local 4 end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 root Lcom/oracle/truffle/api/nodes/Node;
0 9 1 clazz Ljava/lang/Class<TT;>;
4 7 2 child Lcom/oracle/truffle/api/nodes/Node;
5 7 4 node TT;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
root
clazz
public static <T> java.util.List<T> findAllNodeInstances(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
new com.oracle.truffle.api.nodes.NodeUtil$1
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.nodes.NodeUtil$1.<init>:(Ljava/lang/Class;Ljava/util/List;)V
invokevirtual com.oracle.truffle.api.nodes.Node.accept:(Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 root Lcom/oracle/truffle/api/nodes/Node;
0 3 1 clazz Ljava/lang/Class<TT;>;
1 3 2 nodeList Ljava/util/List<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
root final
clazz final
public static int countNodes(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter.NO_FILTER:Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 root Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
root
public static int countNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.nodes.NodeUtil$NodeCounter
dup
aload 1
invokespecial com.oracle.truffle.api.nodes.NodeUtil$NodeCounter.<init>:(Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)V
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.accept:(Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
2: aload 2
getfield com.oracle.truffle.api.nodes.NodeUtil$NodeCounter.count:I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 root Lcom/oracle/truffle/api/nodes/Node;
0 3 1 filter Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;
1 3 2 counter Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCounter;
MethodParameters:
Name Flags
root
filter
public static java.lang.String printCompactTreeToString(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 1
start local 1 1: new java.io.PrintWriter
dup
aload 1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
aconst_null
aload 0
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
2: aload 1
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lcom/oracle/truffle/api/nodes/Node;
1 3 1 out Ljava/io/StringWriter;
MethodParameters:
Name Flags
node
public static void printCompactTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.io.PrintWriter
dup
aload 0
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
aconst_null
aload 1
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 out Ljava/io/OutputStream;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
out
node
private static void printCompactTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, int);
descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 3
if_icmplt 4
end local 4 7: aload 1
ifnonnull 10
8: aload 0
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
9: goto 13
10: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
ldc "unknownField"
invokestatic com.oracle.truffle.api.nodes.NodeUtil.getNodeFieldName:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
11: aload 0
ldc " = "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
12: aload 0
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int top java.util.Iterator
StackMap stack:
14: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 4
start local 4 15: aload 0
aload 2
aload 4
iload 3
iconst_1
iadd
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
end local 4 16: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: aload 0
invokevirtual java.io.PrintWriter.flush:()V
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 p Ljava/io/PrintWriter;
0 19 1 parent Lcom/oracle/truffle/api/nodes/Node;
0 19 2 node Lcom/oracle/truffle/api/nodes/Node;
0 19 3 level I
3 7 4 i I
15 16 4 child Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
p
parent
node
level
public static java.lang.String printSourceAttributionTree(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 1
start local 1 1: new java.io.PrintWriter
dup
aload 1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
aconst_null
aload 0
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
2: aload 1
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lcom/oracle/truffle/api/nodes/Node;
1 3 1 out Ljava/io/StringWriter;
MethodParameters:
Name Flags
node
public static void printSourceAttributionTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.io.PrintWriter
dup
aload 0
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
aconst_null
aload 1
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 out Ljava/io/OutputStream;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
out
node
public static void printSourceAttributionTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aload 1
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 out Ljava/io/PrintWriter;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
out
node
private static void printSourceAttributionTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, int);
descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
3: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 4
start local 4 4: aload 4
ifnull 8
5: aload 4
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
astore 5
start local 5 6: aload 0
new java.lang.StringBuilder
dup
ldc "Full source len=("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") ___"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "___"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
7: aload 0
ldc "AST source attribution:"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 5 end local 4 8: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 9: iconst_0
istore 5
start local 5 10: goto 13
11: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 4
ldc "| "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: iinc 5 1
StackMap locals:
StackMap stack:
13: iload 5
iload 3
if_icmplt 11
end local 5 14: aload 1
ifnull 16
15: aload 4
aload 1
aload 2
ldc ""
invokestatic com.oracle.truffle.api.nodes.NodeUtil.getNodeFieldName:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
aload 4
new java.lang.StringBuilder
dup
ldc " ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 4
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSyntaxTags:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 4
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.displaySourceAttribution:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 0
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
20: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 23
StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
21: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 5
start local 5 22: aload 0
aload 2
aload 5
iload 3
iconst_1
iadd
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
end local 5 23: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: aload 0
invokevirtual java.io.PrintWriter.flush:()V
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 p Ljava/io/PrintWriter;
0 26 1 parent Lcom/oracle/truffle/api/nodes/Node;
0 26 2 node Lcom/oracle/truffle/api/nodes/Node;
0 26 3 level I
4 8 4 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
6 8 5 txt Ljava/lang/String;
9 26 4 sb Ljava/lang/StringBuilder;
10 14 5 i I
22 23 5 child Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
p
parent
node
level
private static java.lang.String getNodeFieldName(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
astore 3
start local 3 1: aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 21
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 6
4: aload 3
aload 4
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
aload 1
if_acmpne 20
5: aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
areturn
6: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 18
7: aload 3
aload 4
aload 0
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 8
start local 8 8: aload 8
ifnull 20
9: iconst_0
istore 9
start local 9 10: aload 8
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 16
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int top int int java.lang.Object[]
StackMap stack:
11: aload 13
iload 11
aaload
astore 10
start local 10 12: aload 10
aload 1
if_acmpne 14
13: new java.lang.StringBuilder
dup
aload 3
aload 4
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
14: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int java.lang.Object int int java.lang.Object[]
StackMap stack:
iinc 9 1
end local 10 15: iinc 11 1
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int top int int java.lang.Object[]
StackMap stack:
16: iload 11
iload 12
if_icmplt 11
end local 9 end local 8 17: goto 20
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
18: aload 3
invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
ifeq 20
19: goto 22
end local 4 20: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
iload 6
if_icmplt 2
22: StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 parent Lcom/oracle/truffle/api/nodes/Node;
0 23 1 node Lcom/oracle/truffle/api/nodes/Node;
0 23 2 defaultName Ljava/lang/String;
1 23 3 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
3 20 4 field Ljava/lang/Object;
8 17 8 arrayNodes [Ljava/lang/Object;
10 17 9 index I
12 15 10 arrayNode Ljava/lang/Object;
MethodParameters:
Name Flags
parent
node
defaultName
public static java.lang.String printSyntaxTags(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.api.nodes.Node
ifeq 2
aload 0
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
ifnull 2
1: aload 0
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
ldc ""
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Ljava/lang/Object;
MethodParameters:
Name Flags
node final
public static void printTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.io.PrintWriter
dup
aload 0
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 out Ljava/io/OutputStream;
0 2 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
out
node
public static java.lang.String printTreeToString(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 1
start local 1 1: new java.io.PrintWriter
dup
aload 1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
2: aload 1
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lcom/oracle/truffle/api/nodes/Node;
1 3 1 out Ljava/io/StringWriter;
MethodParameters:
Name Flags
node
public static void printTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
1: aload 0
invokevirtual java.io.PrintWriter.println:()V
2: aload 0
invokevirtual java.io.PrintWriter.flush:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 p Ljava/io/PrintWriter;
0 4 1 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
p
node
private static void printTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, int);
descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 3
1: aload 0
ldc "null"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: ldc ""
astore 4
start local 4 6: aload 0
ldc "("
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
7: aload 1
invokestatic com.oracle.truffle.api.nodes.NodeClass.get:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/NodeClass;
astore 5
start local 5 8: aload 5
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 19
StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
9: aload 9
iload 7
aaload
astore 6
start local 6 10: aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifne 11
aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 13
11: StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
StackMap stack:
aload 3
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: goto 18
13: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
14: ldc ", "
astore 4
15: aload 0
aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
16: aload 0
ldc " = "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
17: aload 0
aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldValue:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/Object;)V
end local 6 18: StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
19: iload 7
iload 8
if_icmplt 9
20: aload 0
ldc ")"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
21: aload 3
invokevirtual java.util.ArrayList.size:()I
ifeq 41
22: aload 0
ldc " {"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
23: aload 5
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 38
StackMap locals:
StackMap stack:
24: aload 9
iload 7
aaload
astore 6
start local 6 25: aload 0
iload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printNewLine:(Ljava/io/PrintWriter;I)V
26: aload 0
aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
27: aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldValue:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 10
start local 10 28: aload 10
ifnonnull 31
29: aload 0
ldc " = null "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
30: goto 37
StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object
StackMap stack:
31: aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
ifeq 35
32: aload 0
ldc " = "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
33: aload 0
aload 10
checkcast com.oracle.truffle.api.nodes.Node
iload 2
iconst_1
iadd
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
34: goto 37
StackMap locals:
StackMap stack:
35: aload 5
aload 6
invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
ifeq 37
36: aload 0
iload 2
aload 10
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printChildren:(Ljava/io/PrintWriter;ILjava/lang/Object;)V
end local 10 end local 6 37: StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
38: iload 7
iload 8
if_icmplt 24
39: aload 0
iload 2
iconst_1
isub
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printNewLine:(Ljava/io/PrintWriter;I)V
40: aload 0
ldc "}"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
41: StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass
StackMap stack:
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 42 0 p Ljava/io/PrintWriter;
0 42 1 node Lcom/oracle/truffle/api/nodes/Node;
0 42 2 level I
5 42 3 childFields Ljava/util/ArrayList<Ljava/lang/Object;>;
6 42 4 sep Ljava/lang/String;
8 42 5 nodeClass Lcom/oracle/truffle/api/nodes/NodeClass;
10 18 6 field Ljava/lang/Object;
25 37 6 field Ljava/lang/Object;
28 37 10 value Ljava/lang/Object;
MethodParameters:
Name Flags
p
node
level
private static void printChildren(java.io.PrintWriter, int, java.lang.Object);
descriptor: (Ljava/io/PrintWriter;ILjava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast java.lang.Object[]
astore 4
start local 4 1: aload 0
ldc " = ["
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
2: ldc ""
astore 3
start local 3 3: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 9
StackMap locals: java.io.PrintWriter int java.lang.Object java.lang.String java.lang.Object[] top int int java.lang.Object[]
StackMap stack:
4: aload 8
iload 6
aaload
astore 5
start local 5 5: aload 0
aload 3
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
6: ldc ", "
astore 3
7: aload 0
aload 5
checkcast com.oracle.truffle.api.nodes.Node
iload 1
iconst_1
iadd
invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
end local 5 8: iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
iload 7
if_icmplt 4
10: aload 0
ldc "]"
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
11: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 p Ljava/io/PrintWriter;
0 12 1 level I
0 12 2 value Ljava/lang/Object;
3 12 3 sep Ljava/lang/String;
1 12 4 children [Ljava/lang/Object;
5 8 5 child Ljava/lang/Object;
MethodParameters:
Name Flags
p
level
value
private static void printNewLine(java.io.PrintWriter, int);
descriptor: (Ljava/io/PrintWriter;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.io.PrintWriter.println:()V
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 1
if_icmplt 3
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 p Ljava/io/PrintWriter;
0 7 1 level I
2 6 2 i I
MethodParameters:
Name Flags
p
level
private static java.lang.String nodeName(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.className:(Ljava/lang/Class;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 node Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
static java.lang.String className(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 clazz Ljava/lang/Class<*>;
1 2 1 name Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz
private static java.lang.String displaySourceAttribution(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: ldc ""
areturn
3: StackMap locals: com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
ifnonnull 5
4: ldc "source: <unknown>"
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
astore 2
start local 2 6: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 7: aload 3
ldc "source:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 3
new java.lang.StringBuilder
dup
ldc " ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 3
new java.lang.StringBuilder
dup
ldc " line="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 3
new java.lang.StringBuilder
dup
ldc " len="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 3
new java.lang.StringBuilder
dup
ldc " text=\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 node Lcom/oracle/truffle/api/nodes/Node;
1 13 1 section Lcom/oracle/truffle/api/source/SourceSection;
6 13 2 srcText Ljava/lang/String;
7 13 3 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
node
public static boolean verify(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
astore 1
start local 1 1: aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.Node
astore 2
start local 2 3: aload 2
ifnull 7
4: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
aload 0
if_acmpeq 6
5: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": actual parent="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " expected parent="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
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
6: StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable com.oracle.truffle.api.nodes.Node java.util.Iterator
StackMap stack:
aload 2
invokestatic com.oracle.truffle.api.nodes.NodeUtil.verify:(Lcom/oracle/truffle/api/nodes/Node;)Z
pop
end local 2 7: StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 root Lcom/oracle/truffle/api/nodes/Node;
1 9 1 children Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/Node;>;
3 7 2 child Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
root
private static java.lang.String toStringWithClass(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
ldc "null"
goto 2
StackMap locals:
StackMap stack:
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
static void traceRewrite(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, java.lang.CharSequence);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterFromCost:Lcom/oracle/truffle/api/nodes/NodeCost;
ifnull 3
1: aload 0
getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterFromCost:Lcom/oracle/truffle/api/nodes/NodeCost;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByKind:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterToCost:Lcom/oracle/truffle/api/nodes/NodeCost;
ifnull 6
4: aload 1
getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterToCost:Lcom/oracle/truffle/api/nodes/NodeCost;
invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByKind:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
ifeq 6
5: return
6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterClass:Ljava/lang/String;
astore 3
start local 3 7: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 4
start local 4 8: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 5
start local 5 9: aload 3
ifnull 11
aload 4
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByContainsClassName:(Ljava/lang/Class;Ljava/lang/String;)Z
ifne 10
aload 5
aload 3
invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByContainsClassName:(Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 11
10: StackMap locals: java.lang.String java.lang.Class java.lang.Class
StackMap stack:
return
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 6
start local 6 12: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 7
start local 7 13: aload 7
ldc "[truffle] rewrite %-50s |From %-40s |To %-40s |Reason %s %s%n"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatNodeInfo:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
aastore
dup
iconst_2
aload 1
invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatNodeInfo:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
aastore
dup
iconst_3
14: aload 2
ifnull 15
aload 2
invokeinterface java.lang.CharSequence.length:()I
ifle 15
aload 2
goto 16
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.CharSequence java.lang.String java.lang.Class java.lang.Class com.oracle.truffle.api.source.SourceSection java.io.PrintStream
StackMap stack: java.io.PrintStream java.lang.String java.lang.Object[] java.lang.Object[] int
15: ldc "unknown"
StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.CharSequence java.lang.String java.lang.Class java.lang.Class com.oracle.truffle.api.source.SourceSection java.io.PrintStream
StackMap stack: java.io.PrintStream java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.CharSequence
16: aastore
dup
iconst_4
aload 6
invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatLocation:(Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
aastore
17: invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
18: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 oldNode Lcom/oracle/truffle/api/nodes/Node;
0 19 1 newNode Lcom/oracle/truffle/api/nodes/Node;
0 19 2 reason Ljava/lang/CharSequence;
7 19 3 filter Ljava/lang/String;
8 19 4 from Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
9 19 5 to Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
12 19 6 reportedSourceSection Lcom/oracle/truffle/api/source/SourceSection;
13 19 7 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
oldNode
newNode
reason
private static java.lang.String formatLocation(com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: ldc ""
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
ifnonnull 4
3: ldc "at <Unknown>"
areturn
4: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "%s:%d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
aastore
dup
iconst_1
5: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
sourceSection
private static java.lang.String formatNodeInfo(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: ldc "?"
astore 1
start local 1 1: invokestatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:()[I
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getCost:()Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 2
2: 10
3: 4
4: 6
5: 8
default: 10
}
2: StackMap locals: java.lang.String
StackMap stack:
ldc "G"
astore 1
3: goto 11
4: StackMap locals:
StackMap stack:
ldc "M"
astore 1
5: goto 11
6: StackMap locals:
StackMap stack:
ldc "P"
astore 1
7: goto 11
8: StackMap locals:
StackMap stack:
ldc "G"
astore 1
9: goto 11
10: StackMap locals:
StackMap stack:
ldc "?"
astore 1
11: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
12: aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 node Lcom/oracle/truffle/api/nodes/Node;
1 13 1 cost Ljava/lang/String;
MethodParameters:
Name Flags
node
private static boolean filterByKind(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeCost);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getCost:()Lcom/oracle/truffle/api/nodes/NodeCost;
aload 1
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 node Lcom/oracle/truffle/api/nodes/Node;
0 2 1 cost Lcom/oracle/truffle/api/nodes/NodeCost;
MethodParameters:
Name Flags
node
cost
private static boolean filterByContainsClassName(java.lang.Class<? extends com.oracle.truffle.api.nodes.Node>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: goto 5
2: StackMap locals: java.lang.Class
StackMap stack:
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 from Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
0 7 1 filter Ljava/lang/String;
1 7 2 currentFrom Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;Ljava/lang/String;)Z
MethodParameters:
Name Flags
from
filter
static int[] $SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.truffle.api.nodes.NodeCost.values:()[Lcom/oracle/truffle/api/nodes/NodeCost;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.truffle.api.nodes.NodeCost.MEGAMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iconst_5
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.truffle.api.nodes.NodeCost.MONOMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.truffle.api.nodes.NodeCost.NONE:Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.oracle.truffle.api.nodes.NodeCost.POLYMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.oracle.truffle.api.nodes.NodeCost.UNINITIALIZED:Lcom/oracle/truffle/api/nodes/NodeCost;
invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
iconst_2
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
}
SourceFile: "NodeUtil.java"
NestMembers:
com.oracle.truffle.api.nodes.NodeUtil$1 com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter$1 com.oracle.truffle.api.nodes.NodeUtil$NodeCounter
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final NodeFieldKind = com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind of com.oracle.truffle.api.nodes.NodeFieldAccessor
com.oracle.truffle.api.nodes.NodeUtil$1
public abstract NodeCountFilter = com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter of com.oracle.truffle.api.nodes.NodeUtil
private final NodeCounter = com.oracle.truffle.api.nodes.NodeUtil$NodeCounter of com.oracle.truffle.api.nodes.NodeUtil