class com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode extends com.oracle.truffle.api.nodes.RootNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode
super_class: com.oracle.truffle.api.nodes.RootNode
{
com.oracle.truffle.llvm.runtime.memory.LLVMMemoryOpNode freeRo;
descriptor: Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.llvm.runtime.memory.LLVMMemoryOpNode freeRw;
descriptor: Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
final com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.llvm.runtime.LLVMContext> ctx;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
flags: (0x0010) ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/llvm/runtime/LLVMContext;>;
void <init>(com.oracle.truffle.llvm.runtime.LLVMLanguage, com.oracle.truffle.llvm.runtime.NodeFactory);
descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode this
start local 1 // com.oracle.truffle.llvm.runtime.LLVMLanguage language
start local 2 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
0: .line 357
aload 0 /* this */
aload 1 /* language */
invokespecial com.oracle.truffle.api.nodes.RootNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;)V
1: .line 358
aload 0 /* this */
aload 0 /* this */
ldc Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
invokevirtual com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.lookupContextReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
putfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.ctx:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
2: .line 359
aload 0 /* this */
aload 2 /* nodeFactory */
iconst_1
invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFreeGlobalsBlock:(Z)Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
putfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.freeRo:Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
3: .line 360
aload 0 /* this */
aload 2 /* nodeFactory */
iconst_0
invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFreeGlobalsBlock:(Z)Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
putfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.freeRw:Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
4: .line 361
return
end local 2 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
end local 1 // com.oracle.truffle.llvm.runtime.LLVMLanguage language
end local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/llvm/runtime/LLVMLanguage$FreeGlobalsNode;
0 5 1 language Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
0 5 2 nodeFactory Lcom/oracle/truffle/llvm/runtime/NodeFactory;
MethodParameters:
Name Flags
language
nodeFactory
public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 366
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.ctx:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.llvm.runtime.LLVMContext
astore 2 /* context */
start local 2 // com.oracle.truffle.llvm.runtime.LLVMContext context
1: .line 367
aload 2 /* context */
getfield com.oracle.truffle.llvm.runtime.LLVMContext.globalsReadOnlyStore:Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.getValues:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.llvm.runtime.LLVMContext top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.llvm.runtime.pointer.LLVMPointer
astore 3 /* store */
start local 3 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer store
3: .line 368
aload 3 /* store */
ifnull 5
4: .line 369
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.freeRo:Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
aload 3 /* store */
invokeinterface com.oracle.truffle.llvm.runtime.memory.LLVMMemoryOpNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;)V
end local 3 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer store
5: .line 367
StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: .line 372
iconst_0
istore 3 /* i */
start local 3 // int i
7: goto 12
8: .line 373
StackMap locals: com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.llvm.runtime.LLVMContext int
StackMap stack:
aload 2 /* context */
getfield com.oracle.truffle.llvm.runtime.LLVMContext.globalsNonPointerStore:Ljava/util/ArrayList;
iload 3 /* i */
invokestatic com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.getElement:(Ljava/util/ArrayList;I)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
astore 4 /* store */
start local 4 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer store
9: .line 374
aload 4 /* store */
ifnull 11
10: .line 375
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode.freeRw:Lcom/oracle/truffle/llvm/runtime/memory/LLVMMemoryOpNode;
aload 4 /* store */
invokeinterface com.oracle.truffle.llvm.runtime.memory.LLVMMemoryOpNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;)V
end local 4 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer store
11: .line 372
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 3 /* i */
aload 2 /* context */
getfield com.oracle.truffle.llvm.runtime.LLVMContext.globalsNonPointerStore:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 8
end local 3 // int i
13: .line 378
aconst_null
areturn
end local 2 // com.oracle.truffle.llvm.runtime.LLVMContext context
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/llvm/runtime/LLVMLanguage$FreeGlobalsNode;
0 14 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 14 2 context Lcom/oracle/truffle/llvm/runtime/LLVMContext;
3 5 3 store Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
7 13 3 i I
9 11 4 store Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
MethodParameters:
Name Flags
frame
private static com.oracle.truffle.llvm.runtime.pointer.LLVMPointer getElement(java.util.ArrayList<com.oracle.truffle.llvm.runtime.pointer.LLVMPointer>, int);
descriptor: (Ljava/util/ArrayList;I)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.util.ArrayList list
start local 1 // int idx
0: .line 383
aload 0 /* list */
iload 1 /* idx */
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.llvm.runtime.pointer.LLVMPointer
areturn
end local 1 // int idx
end local 0 // java.util.ArrayList list
LocalVariableTable:
Start End Slot Name Signature
0 1 0 list Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;>;
0 1 1 idx I
Signature: (Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;>;I)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(allowInlining = true)
MethodParameters:
Name Flags
list
idx
}
SourceFile: "LLVMLanguage.java"
NestHost: com.oracle.truffle.llvm.runtime.LLVMLanguage
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
FreeGlobalsNode = com.oracle.truffle.llvm.runtime.LLVMLanguage$FreeGlobalsNode of com.oracle.truffle.llvm.runtime.LLVMLanguage