final class com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor implements com.oracle.truffle.api.nodes.NodeVisitor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
super_class: java.lang.Object
{
com.oracle.truffle.api.nodes.RootNode root;
descriptor: Lcom/oracle/truffle/api/nodes/RootNode;
flags: (0x0000)
com.oracle.truffle.api.source.SourceSection rootSourceSection;
descriptor: Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0000)
java.util.Set<java.lang.Class<?>> providedTags;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;
java.util.Set<?> materializeLimitedTags;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<*>;
boolean firstExecution;
descriptor: Z
flags: (0x0000)
boolean setExecutedRootNodeBit;
descriptor: Z
flags: (0x0000)
int rootBits;
descriptor: I
flags: (0x0000)
int computingRootNodeBits;
descriptor: I
flags: (0x0000)
boolean visitingRetiredNodes;
descriptor: Z
flags: (0x0000)
boolean visitingMaterialized;
descriptor: Z
flags: (0x0000)
private final boolean shouldMaterializeSyntaxNodes;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializeTags;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
private final java.util.List<com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation> operations;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;
private final boolean singleBindingOptimization;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean singleBindingOptimizationPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean onlyAlwaysPerformOperationsActive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.nodes.Node savedParent;
descriptor: Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.source.SourceSection savedParentSourceSection;
descriptor: Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0002) ACC_PRIVATE
final com.oracle.truffle.api.instrumentation.InstrumentationHandler this$0;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
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.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(boolean, java.util.List<com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;ZLjava/util/List;)V
flags: (0x0000)
Code:
stack=3, locals=14, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
2: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
3: aload 0
iload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldMaterializeSyntaxNodes:Z
4: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
5: iconst_0
istore 4
start local 4 6: iconst_0
istore 5
start local 5 7: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 15
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 6
start local 6 9: aload 6
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
ifne 15
10: aload 6
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
ifeq 13
11: iinc 4 1
12: goto 15
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack:
13: aload 6
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpeq 14
aload 6
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpne 15
14: StackMap locals:
StackMap stack:
iinc 5 1
end local 6 15: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
16: aload 0
aload 3
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 17
iload 4
iconst_1
if_icmpeq 19
17: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
iload 4
iconst_1
if_icmpne 18
iload 5
ifeq 19
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
18: iconst_0
goto 20
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
19: iconst_1
20: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
21: aconst_null
astore 6
start local 6 22: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 36
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set top java.util.Iterator
StackMap stack:
23: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 7
start local 7 24: aload 7
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
ifne 36
25: aload 7
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.bindingsAtConstructionTime:[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 35
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
26: aload 12
iload 10
aaload
astore 9
start local 9 27: aload 9
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getLimitedTags:()Ljava/util/Set;
astore 13
start local 13 28: aload 13
ifnonnull 31
29: aconst_null
astore 6
30: goto 37
31: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[] java.util.Set
StackMap stack:
aload 6
ifnonnull 33
32: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
33: StackMap locals:
StackMap stack:
aload 6
aload 13
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
end local 13 end local 9 34: iinc 10 1
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
35: iload 10
iload 11
if_icmplt 26
end local 7 36: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
37: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set
StackMap stack:
aload 0
aload 6
ifnull 38
aload 6
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
goto 39
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
38: aconst_null
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor java.util.Set
39: putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
40: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 41 2 shouldMaterializeSyntaxNodes Z
0 41 3 operations Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;
6 41 4 singleBindingOperations I
7 41 5 multiBindingOriginalTreeOperations I
9 15 6 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
22 41 6 compoundTags Ljava/util/Set<Ljava/lang/Class<*>;>;
24 36 7 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
27 34 9 sourceBinding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
28 34 13 limitedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
Signature: (ZLjava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;)V
MethodParameters:
Name Flags
this$0 final
shouldMaterializeSyntaxNodes
operations
boolean shouldVisit();
descriptor: ()Z
flags: (0x0000)
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
astore 1
start local 1 3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
istore 3
start local 3 5: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 4
start local 4 7: aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
ifne 14
8: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
ifeq 9
aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
ifeq 14
9: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack:
aload 4
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 1
aload 2
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.shouldVisit:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
istore 6
start local 6 10: iload 6
ifeq 14
11: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
ifeq 13
12: aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimizationPass:Z
13: StackMap locals: int
StackMap stack:
iconst_1
ireturn
end local 6 end local 4 14: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
15: aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
16: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 22
StackMap locals:
StackMap stack:
17: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 4
start local 4 18: aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
ifeq 22
19: aload 4
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpeq 22
20: aload 4
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 1
aload 2
iload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.shouldVisit:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
ifeq 22
21: iconst_1
ireturn
end local 4 22: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
23: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
24: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
3 25 1 localRoot Lcom/oracle/truffle/api/nodes/RootNode;
4 25 2 localRootSourceSection Lcom/oracle/truffle/api/source/SourceSection;
5 25 3 localRootBits I
7 14 4 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
10 14 6 pass Z
18 22 4 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
private void computeRootBits(com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
istore 2
start local 2 1: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isUninitialized:(I)Z
ifeq 3
2: return
3: StackMap locals: int
StackMap stack:
aload 1
ifnull 16
4: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isNoSourceSection:(I)Z
ifeq 6
5: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasSourceSection:(I)I
istore 2
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
ifnull 14
7: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isSourceSectionsHierachical:(I)Z
ifeq 11
8: aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
if_icmplt 10
9: aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
if_icmple 11
10: StackMap locals:
StackMap stack:
iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setSourceSectionsUnstructured:(I)I
istore 2
11: StackMap locals:
StackMap stack:
iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isSameSource:(I)Z
ifeq 16
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
aload 1
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
if_acmpeq 16
12: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasDifferentSource:(I)I
istore 2
13: goto 16
14: StackMap locals:
StackMap stack:
iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setSourceSectionsUnstructured:(I)I
istore 2
15: iload 2
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasDifferentSource:(I)I
istore 2
16: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 18 1 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
1 18 2 bits I
MethodParameters:
Name Flags
sourceSection
public boolean visit(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 3
start local 3 2: aload 2
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
istore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: iload 4
ifeq 19
6: aload 0
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computeRootBits:(Lcom/oracle/truffle/api/source/SourceSection;)V
7: aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitPreviouslyRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)Z
istore 7
start local 7 8: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
ifne 14
9: aload 0
aload 2
aload 3
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materialize:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
astore 2
10: aload 0
aload 2
aload 3
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.saveAndVisitNewlyRetiredNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Z
ifeq 12
11: iconst_1
istore 7
12: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
StackMap stack:
iload 7
ifne 14
13: aload 2
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.clearRetiredNodeReference:(Lcom/oracle/truffle/api/nodes/Node;)V
14: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
aload 2
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitInstrumentable:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
15: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
astore 5
16: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
astore 6
17: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
18: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
end local 7 19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
istore 7
start local 7 20: aload 2
aload 1
if_acmpeq 22
21: aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
22: StackMap locals: int
StackMap stack:
aload 2
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
pop
23: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 8
25: aload 0
iload 7
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
26: iload 4
ifeq 29
27: aload 0
aload 5
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
28: aload 0
aload 6
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
29: StackMap locals: java.lang.Throwable
StackMap stack:
aload 8
athrow
30: StackMap locals:
StackMap stack:
aload 0
iload 7
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
31: iload 4
ifeq 34
32: aload 0
aload 5
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
33: aload 0
aload 6
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
34: StackMap locals:
StackMap stack:
iconst_1
ireturn
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 35 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 35 1 originalNode Lcom/oracle/truffle/api/nodes/Node;
1 35 2 node Lcom/oracle/truffle/api/nodes/Node;
2 35 3 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
3 35 4 instrumentable Z
4 35 5 previousParent Lcom/oracle/truffle/api/nodes/Node;
5 35 6 previousParentSourceSection Lcom/oracle/truffle/api/source/SourceSection;
8 19 7 hasRetiredNodes Z
20 35 7 wasVisitingMaterialized Z
Exception table:
from to target type
22 24 24 any
MethodParameters:
Name Flags
originalNode
private com.oracle.truffle.api.nodes.Node materialize(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeSyntaxNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
astore 4
start local 4 1: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
ifeq 2
aload 4
aload 3
if_acmpeq 2
new java.lang.AssertionError
dup
ldc "New tree should be fully materialized!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 3
aload 4
aload 0
aload 4
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeSyntaxNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
if_acmpeq 3
new java.lang.AssertionError
dup
ldc "Node must not be materialized multiple times for the same set of tags!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 4 1 node Lcom/oracle/truffle/api/nodes/Node;
0 4 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 4 3 originalNode Lcom/oracle/truffle/api/nodes/Node;
1 4 4 materializedNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
sourceSection
originalNode
private boolean saveAndVisitNewlyRetiredNode(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
ifne 10
aload 1
aload 3
if_acmpeq 10
1: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
ifnonnull 2
new java.lang.AssertionError
dup
ldc "Materialize tags must not be null when materialization happened."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 4
start local 4 3: aload 4
ifnonnull 5
4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.insertWrapper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
5: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
StackMap stack:
aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 4
6: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 7
aload 4
ifnonnull 7
new java.lang.AssertionError
dup
ldc "Node must have an instrumentation wrapper at this point!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
aload 3
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.setRetiredNode:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;)V
8: aload 0
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)V
9: iconst_1
ireturn
end local 4 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 11 1 node Lcom/oracle/truffle/api/nodes/Node;
0 11 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 11 3 originalNode Lcom/oracle/truffle/api/nodes/Node;
3 10 4 wrapperNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
MethodParameters:
Name Flags
node
sourceSection
originalNode
private boolean visitPreviouslyRetiredNodes(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
ifne 15
1: aload 1
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 2
start local 2 2: aload 2
ifnull 3
aload 2
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getRetiredNodeReference:()Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
goto 4
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
4: astore 3
start local 3 5: aload 3
ifnull 15
6: iconst_0
istore 4
start local 4 7: goto 13
8: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference int
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.getNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 5
start local 5 9: aload 5
ifnull 12
10: iconst_1
istore 4
11: aload 0
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)V
12: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 3
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.next:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
astore 3
end local 5 13: StackMap locals:
StackMap stack:
aload 3
ifnonnull 8
14: iload 4
ireturn
end local 4 end local 3 end local 2 15: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 16 1 node Lcom/oracle/truffle/api/nodes/Node;
2 15 2 wrapperNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
5 15 3 retiredNodeReference Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
7 15 4 hasRetiredNodes Z
9 13 5 nodeRefNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
private void visitRetiredNodes(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
istore 2
start local 2 1: aload 0
iconst_1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
2: aload 1
aload 0
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
pop
3: goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node int
StackMap stack: java.lang.Throwable
4: astore 3
5: aload 0
iload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
6: aload 3
athrow
7: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 9 1 retiredSubtreeRoot Lcom/oracle/truffle/api/nodes/Node;
1 9 2 wasVisitingRetiredNodes Z
Exception table:
from to target type
2 4 4 any
MethodParameters:
Name Flags
retiredSubtreeRoot
private com.oracle.truffle.api.nodes.Node materializeSyntaxNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldMaterializeSyntaxNodes:Z
ifne 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifeq 25
3: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 4
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
ifnonnull 4
new java.lang.AssertionError
dup
ldc "Materialize tags must not be null before materialization."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
astore 3
start local 3 5: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 6
aload 3
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.isInstrumentable:()Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode
StackMap stack:
aload 3
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
astore 4
start local 4 7: aload 3
aload 4
if_acmpeq 25
8: aload 4
instanceof com.oracle.truffle.api.nodes.Node
ifne 10
9: new java.lang.IllegalStateException
dup
ldc "The returned materialized syntax node is not a Truffle Node."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode
StackMap stack:
aload 4
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnull 12
11: new java.lang.IllegalStateException
dup
ldc "The returned materialized syntax node is already adopted."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 4
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 5
start local 5 13: aload 2
aload 5
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 17
14: new java.lang.IllegalStateException
dup
ldc "The source section of the materialized syntax node must match the source section of the original node. %s != %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
15: aload 5
aastore
16: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 3
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 6
start local 6 18: aload 6
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifeq 24
aload 6
aload 1
aload 4
checkcast com.oracle.truffle.api.nodes.Node
invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 24
19: aload 6
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
astore 7
start local 7 20: aload 4
aload 7
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.createWrapper:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
astore 8
start local 8 21: aload 8
aload 4
checkcast com.oracle.truffle.api.nodes.Node
aload 6
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNodeChecked:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
astore 9
start local 9 22: aload 6
aload 9
ldc "Insert instrumentation wrapper node."
invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
pop
23: aload 4
checkcast com.oracle.truffle.api.nodes.Node
areturn
end local 9 end local 8 end local 7 24: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 3
checkcast com.oracle.truffle.api.nodes.Node
aload 4
checkcast com.oracle.truffle.api.nodes.Node
invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
areturn
end local 6 end local 5 end local 4 end local 3 25: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 26 1 instrumentableNode Lcom/oracle/truffle/api/nodes/Node;
0 26 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
5 25 3 currentNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
7 25 4 materializedNode Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
13 25 5 newSourceSection Lcom/oracle/truffle/api/source/SourceSection;
18 25 6 currentParent Lcom/oracle/truffle/api/nodes/Node;
20 24 7 probe Lcom/oracle/truffle/api/instrumentation/ProbeNode;
21 24 8 wrapper Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
22 24 9 wrapperNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
instrumentableNode
sourceSection
void preVisit(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node, boolean);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
1: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
2: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
3: aload 0
aload 1
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
4: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
ifnonnull 5
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
goto 6
StackMap locals:
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
5: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor java.util.Set
6: putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
7: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int top java.util.Iterator
StackMap stack:
8: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 4
start local 4 9: aload 4
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
ifne 10
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
ifne 10
iconst_0
goto 11
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection
10: iconst_1
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int
11: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.preVisit:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;ZLcom/oracle/truffle/api/nodes/Node;)V
end local 4 12: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 14 1 r Lcom/oracle/truffle/api/nodes/RootNode;
0 14 2 visitRoot Lcom/oracle/truffle/api/nodes/Node;
0 14 3 firstExec Z
9 12 4 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
MethodParameters:
Name Flags
r
visitRoot
firstExec
void postVisit();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 1
start local 1 2: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.postVisitCleanup:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 7
StackMap locals:
StackMap stack:
5: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 1
start local 1 6: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.postVisitNotifications:()V
end local 1 7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
2 3 1 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
6 7 1 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
boolean shouldPerformForBinding(com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
flags: (0x0000)
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
ifeq 7
aload 1
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
ifeq 7
1: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimizationPass:Z
ifeq 6
2: aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedLeaf:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifne 5
3: aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
aload 3
aload 4
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedLeaf:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifne 5
4: iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifne 10
8: aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
aload 3
aload 4
aload 5
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifne 10
9: iconst_0
ireturn
StackMap locals:
StackMap stack:
10: iconst_1
ireturn
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 11 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 11 1 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
0 11 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 11 3 parentInstrumentable Lcom/oracle/truffle/api/nodes/Node;
0 11 4 parentSourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 11 5 instrumentableNode Lcom/oracle/truffle/api/nodes/Node;
0 11 6 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
Signature: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
MethodParameters:
Name Flags
operation
binding
parentInstrumentable
parentSourceSection
instrumentableNode
sourceSection
void visitInstrumentable(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0000)
Code:
stack=7, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 27
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.util.Iterator
StackMap stack:
1: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
astore 5
start local 5 2: aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpeq 5
3: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
ifne 4
aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpeq 5
4: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
ifeq 27
aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
if_acmpne 27
5: StackMap locals:
StackMap stack:
aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
ifne 22
6: aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.bindingsAtConstructionTime:[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 20
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
7: aload 10
iload 8
aaload
astore 7
start local 7 8: aload 0
aload 5
aload 7
aload 1
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldPerformForBinding:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
ifeq 17
9: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
ifne 10
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
ifeq 10
new java.lang.AssertionError
dup
ldc "No operation that depends on bindings should be performed here!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 12
11: ldc "hit"
aload 3
aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
12: StackMap locals:
StackMap stack:
aload 5
aload 7
aload 3
aload 4
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
ifne 13
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
ifne 13
iconst_0
goto 14
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
13: iconst_1
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
14: invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.perform:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Z)V
15: aload 5
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.performForEachBinding:Z
ifne 19
16: goto 27
17: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 19
18: ldc "miss"
aload 3
aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
end local 7 19: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
20: iload 8
iload 9
if_icmplt 7
21: goto 27
22: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 24
23: ldc "hit"
aload 3
aload 4
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
24: StackMap locals:
StackMap stack:
aload 5
aconst_null
aload 3
aload 4
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
ifne 25
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
ifne 25
iconst_0
goto 26
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation null com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
25: iconst_1
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation null com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
26: invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.perform:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Z)V
end local 5 27: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
28: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
0 29 1 parentInstrumentable Lcom/oracle/truffle/api/nodes/Node;
0 29 2 parentSourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 29 3 instrumentableNode Lcom/oracle/truffle/api/nodes/Node;
0 29 4 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
2 27 5 operation Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
8 19 7 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
MethodParameters:
Name Flags
parentInstrumentable
parentSourceSection
instrumentableNode
sourceSection
}
SourceFile: "InstrumentationHandler.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentationHandler
InnerClasses:
final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
private abstract VisitOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final Scope = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope of com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
private final Visitor = com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor of com.oracle.truffle.api.instrumentation.InstrumentationHandler
RetiredNodeReference = com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference of com.oracle.truffle.api.instrumentation.ProbeNode