public final class com.oracle.truffle.llvm.initialization.InitializeScopeNode extends com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.initialization.InitializeScopeNode
  super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
{
  private final com.oracle.truffle.llvm.runtime.LLVMSymbol[] allocScopes;
    descriptor: [Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)

  private final com.oracle.truffle.llvm.runtime.LLVMScope fileScope;
    descriptor: Lcom/oracle/truffle/llvm/runtime/LLVMScope;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.oracle.truffle.llvm.parser.LLVMParserRuntime);
    descriptor: (Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.initialization.InitializeScopeNode this
        start local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
         0: .line 56
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode.<init>:()V
         1: .line 57
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getFileScope:()Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            putfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.fileScope:Lcom/oracle/truffle/llvm/runtime/LLVMScope;
         2: .line 58
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* allocScopesList */
        start local 2 // java.util.ArrayList allocScopesList
         3: .line 59
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.fileScope:Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMScope.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.oracle.truffle.llvm.initialization.InitializeScopeNode com.oracle.truffle.llvm.parser.LLVMParserRuntime java.util.ArrayList top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.LLVMSymbol
            astore 3 /* symbol */
        start local 3 // com.oracle.truffle.llvm.runtime.LLVMSymbol symbol
         5: .line 61
            aload 3 /* symbol */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMSymbol.isExported:()Z
            ifeq 7
         6: .line 62
            aload 2 /* allocScopesList */
            aload 3 /* symbol */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.oracle.truffle.llvm.runtime.LLVMSymbol symbol
         7: .line 59
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 65
            aload 0 /* this */
            aload 2 /* allocScopesList */
            getstatic com.oracle.truffle.llvm.runtime.LLVMSymbol.EMPTY:[Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.LLVMSymbol[]
            putfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.allocScopes:[Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
         9: .line 66
            return
        end local 2 // java.util.ArrayList allocScopesList
        end local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
        end local 0 // com.oracle.truffle.llvm.initialization.InitializeScopeNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/llvm/initialization/InitializeScopeNode;
            0   10     1          runtime  Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            3   10     2  allocScopesList  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;>;
            5    7     3           symbol  Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
    MethodParameters:
         Name  Flags
      runtime  

  public void execute(com.oracle.truffle.llvm.runtime.LLVMContext, com.oracle.truffle.llvm.runtime.LLVMLocalScope);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/llvm/runtime/LLVMLocalScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.initialization.InitializeScopeNode this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMLocalScope localScope
         0: .line 69
            aload 2 /* localScope */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.fileScope:Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMLocalScope.addMissingLinkageName:(Lcom/oracle/truffle/llvm/runtime/LLVMScope;)V
         1: .line 70
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 71
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.allocScopes:[Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            iload 3 /* i */
            aaload
            aload 1 /* context */
            aload 2 /* localScope */
            invokestatic com.oracle.truffle.llvm.initialization.InitializeScopeNode.allocateScope:(Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/llvm/runtime/LLVMLocalScope;)V
         4: .line 70
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.initialization.InitializeScopeNode.allocScopes:[Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 73
            return
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMLocalScope localScope
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
        end local 0 // com.oracle.truffle.llvm.initialization.InitializeScopeNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/llvm/initialization/InitializeScopeNode;
            0    7     1     context  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            0    7     2  localScope  Lcom/oracle/truffle/llvm/runtime/LLVMLocalScope;
            2    6     3           i  I
    MethodParameters:
            Name  Flags
      context     
      localScope  

  static void allocateScope(com.oracle.truffle.llvm.runtime.LLVMSymbol, com.oracle.truffle.llvm.runtime.LLVMContext, com.oracle.truffle.llvm.runtime.LLVMLocalScope);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/llvm/runtime/LLVMLocalScope;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMSymbol symbol
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMLocalScope localScope
         0: .line 79
            aload 1 /* context */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getGlobalScope:()Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            astore 3 /* globalScope */
        start local 3 // com.oracle.truffle.llvm.runtime.LLVMScope globalScope
         1: .line 80
            aload 3 /* globalScope */
            aload 0 /* symbol */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMSymbol.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMScope.get:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            astore 4 /* exportedSymbol */
        start local 4 // com.oracle.truffle.llvm.runtime.LLVMSymbol exportedSymbol
         2: .line 81
            aload 4 /* exportedSymbol */
            ifnonnull 4
         3: .line 82
            aload 3 /* globalScope */
            aload 0 /* symbol */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMScope.register:(Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;)V
         4: .line 84
      StackMap locals: com.oracle.truffle.llvm.runtime.LLVMScope com.oracle.truffle.llvm.runtime.LLVMSymbol
      StackMap stack:
            aload 2 /* localScope */
            aload 0 /* symbol */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMSymbol.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMLocalScope.get:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            astore 5 /* exportedSymbolFromLocal */
        start local 5 // com.oracle.truffle.llvm.runtime.LLVMSymbol exportedSymbolFromLocal
         5: .line 85
            aload 5 /* exportedSymbolFromLocal */
            ifnonnull 7
         6: .line 86
            aload 2 /* localScope */
            aload 0 /* symbol */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMLocalScope.register:(Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;)V
         7: .line 88
      StackMap locals: com.oracle.truffle.llvm.runtime.LLVMSymbol
      StackMap stack:
            return
        end local 5 // com.oracle.truffle.llvm.runtime.LLVMSymbol exportedSymbolFromLocal
        end local 4 // com.oracle.truffle.llvm.runtime.LLVMSymbol exportedSymbol
        end local 3 // com.oracle.truffle.llvm.runtime.LLVMScope globalScope
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMLocalScope localScope
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMSymbol symbol
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                   symbol  Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            0    8     1                  context  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            0    8     2               localScope  Lcom/oracle/truffle/llvm/runtime/LLVMLocalScope;
            1    8     3              globalScope  Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            2    8     4           exportedSymbol  Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
            5    8     5  exportedSymbolFromLocal  Lcom/oracle/truffle/llvm/runtime/LLVMSymbol;
    MethodParameters:
            Name  Flags
      symbol      
      context     
      localScope  
}
SourceFile: "InitializeScopeNode.java"
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives