public class com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl implements com.oracle.truffle.llvm.runtime.LLVMFunctionCode$LazyToTruffleConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl
  super_class: java.lang.Object
{
  private static final java.lang.String LOOP_SUCCESSOR_FRAME_ID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "<loop successor>"

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

  private final com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition method;
    descriptor: Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.source.Source source;
    descriptor: Lcom/oracle/truffle/api/source/Source;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.llvm.parser.model.functions.LazyFunctionParser parser;
    descriptor: Lcom/oracle/truffle/llvm/parser/model/functions/LazyFunctionParser;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.llvm.parser.metadata.debuginfo.DebugInfoFunctionProcessor diProcessor;
    descriptor: Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private com.oracle.truffle.api.RootCallTarget resolved;
    descriptor: Lcom/oracle/truffle/api/RootCallTarget;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 102
            ldc Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            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.llvm.parser.LazyToTruffleConverterImpl.$assertionsDisabled:Z
         3: .line 104
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.llvm.parser.LLVMParserRuntime, com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition, com.oracle.truffle.api.source.Source, com.oracle.truffle.llvm.parser.model.functions.LazyFunctionParser, com.oracle.truffle.llvm.parser.metadata.debuginfo.DebugInfoFunctionProcessor, com.oracle.truffle.llvm.runtime.datalayout.DataLayout);
    descriptor: (Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/llvm/parser/model/functions/LazyFunctionParser;Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
        start local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
        start local 2 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition method
        start local 3 // com.oracle.truffle.api.source.Source source
        start local 4 // com.oracle.truffle.llvm.parser.model.functions.LazyFunctionParser parser
        start local 5 // com.oracle.truffle.llvm.parser.metadata.debuginfo.DebugInfoFunctionProcessor diProcessor
        start local 6 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 117
            aload 0 /* this */
            aload 1 /* runtime */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
         2: .line 118
            aload 0 /* this */
            aload 2 /* method */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
         3: .line 119
            aload 0 /* this */
            aload 3 /* source */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.source:Lcom/oracle/truffle/api/source/Source;
         4: .line 120
            aload 0 /* this */
            aload 4 /* parser */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.parser:Lcom/oracle/truffle/llvm/parser/model/functions/LazyFunctionParser;
         5: .line 121
            aload 0 /* this */
            aload 5 /* diProcessor */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.diProcessor:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;
         6: .line 122
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.resolved:Lcom/oracle/truffle/api/RootCallTarget;
         7: .line 123
            aload 0 /* this */
            aload 6 /* dataLayout */
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
         8: .line 124
            return
        end local 6 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
        end local 5 // com.oracle.truffle.llvm.parser.metadata.debuginfo.DebugInfoFunctionProcessor diProcessor
        end local 4 // com.oracle.truffle.llvm.parser.model.functions.LazyFunctionParser parser
        end local 3 // com.oracle.truffle.api.source.Source source
        end local 2 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition method
        end local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            0    9     1      runtime  Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            0    9     2       method  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    9     3       source  Lcom/oracle/truffle/api/source/Source;
            0    9     4       parser  Lcom/oracle/truffle/llvm/parser/model/functions/LazyFunctionParser;
            0    9     5  diProcessor  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;
            0    9     6   dataLayout  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
    MethodParameters:
             Name  Flags
      runtime      
      method       
      source       
      parser       
      diProcessor  
      dataLayout   

  public com.oracle.truffle.api.RootCallTarget convert();
    descriptor: ()Lcom/oracle/truffle/api/RootCallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
         0: .line 128
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 130
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 131
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.resolved:Lcom/oracle/truffle/api/RootCallTarget;
            ifnonnull 4
         3: .line 132
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.generateCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            putfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.resolved:Lcom/oracle/truffle/api/RootCallTarget;
         4: .line 134
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.resolved:Lcom/oracle/truffle/api/RootCallTarget;
            aload 1
            monitorexit
         5: areturn
         6: .line 130
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         7: athrow
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  private com.oracle.truffle.api.RootCallTarget generateCallTarget();
    descriptor: ()Lcom/oracle/truffle/api/RootCallTarget;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=23, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
         0: .line 139
            invokestatic com.oracle.truffle.llvm.runtime.LLVMLanguage.getContext:()Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            astore 1 /* context */
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
         1: .line 140
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getNodeFactory:()Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            astore 2 /* nodeFactory */
        start local 2 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
         2: .line 141
            aload 1 /* context */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getOptions:()Lorg/graalvm/options/OptionValues;
            astore 3 /* options */
        start local 3 // org.graalvm.options.OptionValues options
         3: .line 143
            aload 3 /* options */
            getstatic com.oracle.truffle.llvm.runtime.options.SulongEngineOption.PRINT_AST:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* printASTOption */
        start local 4 // java.lang.String printASTOption
         4: .line 144
            iconst_0
            istore 5 /* printAST */
        start local 5 // boolean printAST
         5: .line 145
            aload 4 /* printASTOption */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 15
         6: .line 146
            aload 4 /* printASTOption */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* regexes */
        start local 6 // java.lang.String[] regexes
         7: .line 147
            aload 6 /* regexes */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 14
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         8: aload 10
            iload 8
            aaload
            astore 7 /* regex */
        start local 7 // java.lang.String regex
         9: .line 148
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            aload 7 /* regex */
            invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
            ifeq 13
        10: .line 149
            iconst_1
            istore 5 /* printAST */
        11: .line 150
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\n========== "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 151
            goto 15
        end local 7 // java.lang.String regex
        13: .line 147
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        14: iload 8
            iload 9
            if_icmplt 8
        end local 6 // java.lang.String[] regexes
        15: .line 157
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.parser:Lcom/oracle/truffle/llvm/parser/model/functions/LazyFunctionParser;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.diProcessor:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.source:Lcom/oracle/truffle/api/source/Source;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokestatic com.oracle.truffle.llvm.runtime.LLVMLanguage.getContext:()Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.LazyFunctionParser.parse:(Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/DebugInfoFunctionProcessor;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;Lcom/oracle/truffle/llvm/runtime/LLVMContext;)V
        16: .line 160
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokestatic com.oracle.truffle.llvm.parser.LLVMPhiManager.getPhis:(Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;)Ljava/util/Map;
            astore 6 /* phis */
        start local 6 // java.util.Map phis
        17: .line 162
            aload 6 /* phis */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokestatic com.oracle.truffle.llvm.runtime.LLVMLanguage.getContext:()Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.lifetimeAnalysisStream:()Lcom/oracle/truffle/llvm/runtime/options/TargetStream;
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.computeLiveness:(Ljava/util/Map;Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;Ljava/io/PrintStream;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
            astore 7 /* liveness */
        start local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult liveness
        18: .line 165
            new com.oracle.truffle.api.frame.FrameDescriptor
            dup
            invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:()V
            astore 8 /* frame */
        start local 8 // com.oracle.truffle.api.frame.FrameDescriptor frame
        19: .line 166
            new com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion
            dup
            invokespecial com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion.<init>:()V
            astore 9 /* uniquesRegion */
        start local 9 // com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion uniquesRegion
        20: .line 167
            aload 9 /* uniquesRegion */
            aload 8 /* frame */
            invokestatic com.oracle.truffle.llvm.runtime.GetStackSpaceFactory.createGetUniqueStackSpaceFactory:(Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;
            astore 10 /* getStackSpaceFactory */
        start local 10 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory getStackSpaceFactory
        21: .line 168
            new com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            aload 8 /* frame */
            aload 10 /* getStackSpaceFactory */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            aload 3 /* options */
            getstatic com.oracle.truffle.llvm.runtime.options.SulongEngineOption.LL_DEBUG:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.<init>:(Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;Z)V
            astore 11 /* symbols */
        start local 11 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
        22: .line 170
            aload 8 /* frame */
            ldc "<function exception value>"
            aconst_null
            getstatic com.oracle.truffle.api.frame.FrameSlotKind.Object:Lcom/oracle/truffle/api/frame/FrameSlotKind;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameSlotKind;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
        23: .line 172
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 26
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver top java.util.Iterator
      StackMap stack:
        24: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            astore 12 /* parameter */
        start local 12 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
        25: .line 173
            aload 11 /* symbols */
            aload 8 /* frame */
            aload 12 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.findOrAddFrameSlot:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
        end local 12 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
        26: .line 172
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        27: .line 176
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.getDebugValues:()Ljava/util/HashSet;
            astore 12 /* neededForDebug */
        start local 12 // java.util.HashSet neededForDebug
        28: .line 179
            iconst_1
            istore 13 /* initDebugValues */
        start local 13 // boolean initDebugValues
        29: .line 180
            new com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation.<init>:(I)V
            astore 14 /* info */
        start local 14 // com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation info
        30: .line 181
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode
            astore 15 /* blockNodes */
        start local 15 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] blockNodes
        31: .line 182
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 54
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] top java.util.Iterator
      StackMap stack:
        32: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 16 /* block */
        start local 16 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        33: .line 183
            aload 6 /* phis */
            aload 16 /* block */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 18 /* blockPhis */
        start local 18 // java.util.List blockPhis
        34: .line 184
            aload 7 /* liveness */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.getNullableWithinBlock:()[Ljava/util/ArrayList;
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            astore 19 /* blockNullerInfos */
        start local 19 // java.util.ArrayList blockNullerInfos
        35: .line 185
            new com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor
            dup
            aload 8 /* frame */
            aload 9 /* uniquesRegion */
            aload 18 /* blockPhis */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 11 /* symbols */
            aload 1 /* context */
        36: .line 186
            aload 19 /* blockNullerInfos */
            aload 12 /* neededForDebug */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            aload 2 /* nodeFactory */
        37: .line 185
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.<init>:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Ljava/util/List;ILcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;Lcom/oracle/truffle/llvm/runtime/LLVMContext;Ljava/util/ArrayList;Ljava/util/HashSet;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)V
            astore 20 /* visitor */
        start local 20 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor visitor
        38: .line 188
            iload 13 /* initDebugValues */
            ifeq 45
        39: .line 189
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getSourceFunction:()Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.getVariables:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 22
            goto 43
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator java.util.List java.util.ArrayList com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor top java.util.Iterator
      StackMap stack:
        40: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable
            astore 21 /* variable */
        start local 21 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
        41: .line 190
            aload 21 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.hasFragments:()Z
            ifeq 43
        42: .line 191
            aload 20 /* visitor */
            aload 21 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.initializeAggregateLocalVariable:(Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;)V
        end local 21 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
        43: .line 189
      StackMap locals:
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        44: .line 194
            iconst_0
            istore 13 /* initDebugValues */
        45: .line 197
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator java.util.List java.util.ArrayList com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor
      StackMap stack:
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        46: goto 50
        47: .line 198
      StackMap locals: int
      StackMap stack:
            aload 20 /* visitor */
            iload 21 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setInstructionIndex:(I)V
        48: .line 199
            aload 16 /* block */
            iload 21 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstruction:(I)Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            aload 20 /* visitor */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction.accept:(Lcom/oracle/truffle/llvm/parser/ValueList$ValueVisitor;)V
        49: .line 197
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        50: iload 21 /* i */
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructionCount:()I
            if_icmplt 47
        end local 21 // int i
        51: .line 201
            aload 20 /* visitor */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.finish:()[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 21 /* nodes */
        start local 21 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] nodes
        52: .line 202
            aload 14 /* info */
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aload 20 /* visitor */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getDebugInfo:()[Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation$LocalVarDebugInfo;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation.setBlockDebugInfo:(I[Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation$LocalVarDebugInfo;)V
        53: .line 203
            aload 15 /* blockNodes */
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aload 3 /* options */
            aload 21 /* nodes */
            aload 20 /* visitor */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getControlFlowNode:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aload 16 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.createBasicBlockNode:(Lorg/graalvm/options/OptionValues;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;ILjava/lang/String;)Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
            aastore
        end local 21 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] nodes
        end local 20 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor visitor
        end local 19 // java.util.ArrayList blockNullerInfos
        end local 18 // java.util.List blockPhis
        end local 16 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        54: .line 182
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] top java.util.Iterator
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        55: .line 206
            iconst_0
            istore 16 /* j */
        start local 16 // int j
        56: goto 61
        57: .line 207
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] int
      StackMap stack:
            aload 8 /* frame */
            aload 7 /* liveness */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.getNullableBeforeBlock:()[Ljava/util/BitSet;
            iload 16 /* j */
            aaload
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.getNullableFrameSlots:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Ljava/util/BitSet;)[Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 17 /* nullableBeforeBlock */
        start local 17 // com.oracle.truffle.api.frame.FrameSlot[] nullableBeforeBlock
        58: .line 208
            aload 8 /* frame */
            aload 7 /* liveness */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.getNullableAfterBlock:()[Ljava/util/BitSet;
            iload 16 /* j */
            aaload
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.getNullableFrameSlots:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Ljava/util/BitSet;)[Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 18 /* nullableAfterBlock */
        start local 18 // com.oracle.truffle.api.frame.FrameSlot[] nullableAfterBlock
        59: .line 209
            aload 15 /* blockNodes */
            iload 16 /* j */
            aaload
            aload 17 /* nullableBeforeBlock */
            aload 18 /* nullableAfterBlock */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.setNullableFrameSlots:([Lcom/oracle/truffle/api/frame/FrameSlot;[Lcom/oracle/truffle/api/frame/FrameSlot;)V
        end local 18 // com.oracle.truffle.api.frame.FrameSlot[] nullableAfterBlock
        end local 17 // com.oracle.truffle.api.frame.FrameSlot[] nullableBeforeBlock
        60: .line 206
            iinc 16 /* j */ 1
      StackMap locals:
      StackMap stack:
        61: iload 16 /* j */
            aload 15 /* blockNodes */
            arraylength
            if_icmplt 57
        end local 16 // int j
        62: .line 211
            aload 14 /* info */
            aload 15 /* blockNodes */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation.setBlocks:([Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;)V
        63: .line 213
            aconst_null
            astore 16 /* loopSuccessorSlot */
        start local 16 // com.oracle.truffle.api.frame.FrameSlot loopSuccessorSlot
        64: .line 214
            aload 3 /* options */
            getstatic com.oracle.truffle.llvm.runtime.options.SulongEngineOption.ENABLE_OSR:Lorg/graalvm/options/OptionKey;
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 70
        65: .line 215
            new com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            getstatic com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.EMPTY:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock[]
            invokespecial com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph.<init>:([Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;)V
            astore 17 /* cfg */
        start local 17 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph cfg
        66: .line 216
            aload 17 /* cfg */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph.build:()V
        67: .line 218
            aload 17 /* cfg */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph.isReducible:()Z
            ifeq 70
            aload 17 /* cfg */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph.getCFGLoops:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 70
        68: .line 219
            aload 8 /* frame */
            ldc "<loop successor>"
            getstatic com.oracle.truffle.api.frame.FrameSlotKind.Int:Lcom/oracle/truffle/api/frame/FrameSlotKind;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameSlotKind;)Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 16 /* loopSuccessorSlot */
        69: .line 220
            aload 0 /* this */
            aload 15 /* blockNodes */
            aload 17 /* cfg */
            aload 8 /* frame */
            aload 16 /* loopSuccessorSlot */
            aload 14 /* info */
            aload 3 /* options */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.resolveLoops:([Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation;Lorg/graalvm/options/OptionValues;)V
        end local 17 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph cfg
        70: .line 224
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.LLVMContext com.oracle.truffle.llvm.runtime.NodeFactory org.graalvm.options.OptionValues java.lang.String int java.util.Map com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion com.oracle.truffle.llvm.runtime.GetStackSpaceFactory com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver java.util.HashSet int com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getLexicalScope:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            astore 17 /* location */
        start local 17 // com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation location
        71: .line 225
            aload 0 /* this */
            aload 8 /* frame */
            aload 11 /* symbols */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.copyArgumentsToFrame:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;)Ljava/util/List;
            getstatic com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode.NO_STATEMENTS:[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[]
            astore 18 /* copyArgumentsToFrameArray */
        start local 18 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] copyArgumentsToFrameArray
        72: .line 226
            aload 2 /* nodeFactory */
            aload 8 /* frame */
            ldc "<function exception value>"
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 15 /* blockNodes */
            aload 9 /* uniquesRegion */
            aload 18 /* copyArgumentsToFrameArray */
            aload 8 /* frame */
            aload 16 /* loopSuccessorSlot */
            aload 14 /* info */
        73: .line 227
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getSourceName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.source:Lcom/oracle/truffle/api/source/Source;
            aload 17 /* location */
        74: .line 226
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFunction:(Lcom/oracle/truffle/api/frame/FrameSlot;[Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/llvm/runtime/types/symbols/LocalVariableDebugInfo;Ljava/lang/String;Ljava/lang/String;ILcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;)Lcom/oracle/truffle/api/nodes/RootNode;
            astore 19 /* rootNode */
        start local 19 // com.oracle.truffle.api.nodes.RootNode rootNode
        75: .line 228
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.onAfterParse:()V
        76: .line 230
            iload 5 /* printAST */
            ifeq 79
        77: .line 231
            aload 19 /* rootNode */
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.printCompactTree:(Lcom/oracle/truffle/api/nodes/Node;)V
        78: .line 232
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        79: .line 235
      StackMap locals: com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 19 /* rootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 19 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 18 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] copyArgumentsToFrameArray
        end local 17 // com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation location
        end local 16 // com.oracle.truffle.api.frame.FrameSlot loopSuccessorSlot
        end local 15 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] blockNodes
        end local 14 // com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation info
        end local 13 // boolean initDebugValues
        end local 12 // java.util.HashSet neededForDebug
        end local 11 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
        end local 10 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory getStackSpaceFactory
        end local 9 // com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion uniquesRegion
        end local 8 // com.oracle.truffle.api.frame.FrameDescriptor frame
        end local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult liveness
        end local 6 // java.util.Map phis
        end local 5 // boolean printAST
        end local 4 // java.lang.String printASTOption
        end local 3 // org.graalvm.options.OptionValues options
        end local 2 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMContext context
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   80     0                       this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            1   80     1                    context  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            2   80     2                nodeFactory  Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            3   80     3                    options  Lorg/graalvm/options/OptionValues;
            4   80     4             printASTOption  Ljava/lang/String;
            5   80     5                   printAST  Z
            7   15     6                    regexes  [Ljava/lang/String;
            9   13     7                      regex  Ljava/lang/String;
           17   80     6                       phis  Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;
           18   80     7                   liveness  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
           19   80     8                      frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
           20   80     9              uniquesRegion  Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
           21   80    10       getStackSpaceFactory  Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;
           22   80    11                    symbols  Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
           25   26    12                  parameter  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
           28   80    12             neededForDebug  Ljava/util/HashSet<Ljava/lang/Integer;>;
           29   80    13            initDebugValues  Z
           30   80    14                       info  Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation;
           31   80    15                 blockNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
           33   54    16                      block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           34   54    18                  blockPhis  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           35   54    19           blockNullerInfos  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;
           38   54    20                    visitor  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
           41   43    21                   variable  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;
           46   51    21                          i  I
           52   54    21                      nodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           56   62    16                          j  I
           58   60    17        nullableBeforeBlock  [Lcom/oracle/truffle/api/frame/FrameSlot;
           59   60    18         nullableAfterBlock  [Lcom/oracle/truffle/api/frame/FrameSlot;
           64   80    16          loopSuccessorSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
           66   70    17                        cfg  Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph;
           71   80    17                   location  Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
           72   80    18  copyArgumentsToFrameArray  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           75   80    19                   rootNode  Lcom/oracle/truffle/api/nodes/RootNode;

  private java.util.HashSet<java.lang.Integer> getDebugValues();
    descriptor: ()Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
         0: .line 239
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* neededForDebug */
        start local 1 // java.util.HashSet neededForDebug
         1: .line 240
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 2 /* block */
        start local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         3: .line 241
            aload 2 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl java.util.HashSet com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction
            astore 4 /* instruction */
        start local 4 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
         5: .line 243
            aload 4 /* instruction */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction
            ifeq 8
         6: .line 244
            aload 4 /* instruction */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 6 /* value */
        start local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
         7: .line 245
            goto 10
        end local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl java.util.HashSet com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction java.util.Iterator
      StackMap stack:
         8: aload 4 /* instruction */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction
            ifeq 12
         9: .line 246
            aload 4 /* instruction */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 6 /* value */
        start local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        10: .line 250
      StackMap locals: com.oracle.truffle.llvm.parser.model.SymbolImpl
      StackMap stack:
            aload 6 /* value */
            instanceof com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            ifeq 12
        11: .line 251
            aload 1 /* neededForDebug */
            aload 6 /* value */
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getFrameIdentifier:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 4 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        12: .line 241
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl java.util.HashSet com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        13: .line 240
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl java.util.HashSet top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        14: .line 255
            aload 1 /* neededForDebug */
            areturn
        end local 1 // java.util.HashSet neededForDebug
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            1   15     1  neededForDebug  Ljava/util/HashSet<Ljava/lang/Integer;>;
            3   13     2           block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            5   12     4     instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            7    8     6           value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
           10   12     6           value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
    Signature: ()Ljava/util/HashSet<Ljava/lang/Integer;>;

  private static void printCompactTree(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 259
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            aconst_null
            aload 0 /* node */
            aconst_null
            iconst_1
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/NodeInterface;Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/lang/String;I)V
         1: .line 260
            return
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  private static void printCompactTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.NodeInterface, com.oracle.truffle.api.nodes.NodeInterface, java.lang.String, int);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/NodeInterface;Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/lang/String;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=5
        start local 0 // java.io.PrintWriter p
        start local 1 // com.oracle.truffle.api.nodes.NodeInterface parent
        start local 2 // com.oracle.truffle.api.nodes.NodeInterface node
        start local 3 // java.lang.String fieldName
        start local 4 // int level
         0: .line 263
            aload 2 /* node */
            ifnonnull 2
         1: .line 264
            return
         2: .line 266
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 267
      StackMap locals: int
      StackMap stack:
            aload 0 /* p */
            ldc "  "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         5: .line 266
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* level */
            if_icmplt 4
        end local 5 // int i
         7: .line 269
            aload 1 /* parent */
            ifnonnull 10
         8: .line 270
            aload 0 /* p */
            aload 2 /* node */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
         9: .line 271
            goto 13
        10: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 3 /* fieldName */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        11: .line 273
            aload 0 /* p */
            ldc " = "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        12: .line 274
            aload 0 /* p */
            aload 2 /* node */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
        13: .line 277
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 5 /* c */
        start local 5 // java.lang.Class c
        14: goto 44
        15: .line 278
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 5 /* c */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            astore 6 /* fields */
        start local 6 // java.lang.reflect.Field[] fields
        16: .line 279
            aload 6 /* fields */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 42
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.NodeInterface com.oracle.truffle.api.nodes.NodeInterface java.lang.String int java.lang.Class java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
        17: aload 10
            iload 8
            aaload
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        18: .line 280
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 20
        19: .line 281
            goto 41
        20: .line 283
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.NodeInterface com.oracle.truffle.api.nodes.NodeInterface java.lang.String int java.lang.Class java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack:
            ldc Lcom/oracle/truffle/api/nodes/NodeInterface;
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 29
        21: .line 285
            aload 7 /* field */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        22: .line 286
            aload 7 /* field */
            aload 2 /* node */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.NodeInterface
            astore 11 /* value */
        start local 11 // com.oracle.truffle.api.nodes.NodeInterface value
        23: .line 287
            aload 11 /* value */
            ifnull 41
        24: .line 288
            aload 0 /* p */
            aload 2 /* node */
            aload 11 /* value */
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            iload 4 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/NodeInterface;Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/lang/String;I)V
        end local 11 // com.oracle.truffle.api.nodes.NodeInterface value
        25: .line 290
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Exception
        26: astore 11 /* e */
        start local 11 // java.lang.Exception e
        27: .line 291
            aload 11 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 11 // java.lang.Exception e
        28: .line 293
            goto 41
      StackMap locals:
      StackMap stack:
        29: ldc [Lcom/oracle/truffle/api/nodes/NodeInterface;
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 41
        30: .line 295
            aload 7 /* field */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        31: .line 296
            aload 7 /* field */
            aload 2 /* node */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.NodeInterface[]
            astore 11 /* value */
        start local 11 // com.oracle.truffle.api.nodes.NodeInterface[] value
        32: .line 297
            aload 11 /* value */
            ifnull 41
        33: .line 298
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        34: goto 37
        35: .line 299
      StackMap locals: com.oracle.truffle.api.nodes.NodeInterface[] int
      StackMap stack:
            aload 0 /* p */
            aload 2 /* node */
            aload 11 /* value */
            iload 12 /* i */
            aaload
            new java.lang.StringBuilder
            dup
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()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 12 /* i */
            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;
            iload 4 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/NodeInterface;Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/lang/String;I)V
        36: .line 298
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 12 /* i */
            aload 11 /* value */
            arraylength
            if_icmplt 35
        end local 12 // int i
        end local 11 // com.oracle.truffle.api.nodes.NodeInterface[] value
        38: .line 302
            goto 41
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.NodeInterface com.oracle.truffle.api.nodes.NodeInterface java.lang.String int java.lang.Class java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack: java.lang.Exception
        39: astore 11 /* e */
        start local 11 // java.lang.Exception e
        40: .line 303
            aload 11 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 11 // java.lang.Exception e
        end local 7 // java.lang.reflect.Field field
        41: .line 279
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.NodeInterface com.oracle.truffle.api.nodes.NodeInterface java.lang.String int java.lang.Class java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        42: iload 8
            iload 9
            if_icmplt 17
        end local 6 // java.lang.reflect.Field[] fields
        43: .line 277
            aload 5 /* c */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 5 /* c */
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.NodeInterface com.oracle.truffle.api.nodes.NodeInterface java.lang.String int java.lang.Class
      StackMap stack:
        44: aload 5 /* c */
            ldc Ljava/lang/Object;
            if_acmpne 15
        end local 5 // java.lang.Class c
        45: .line 308
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.flush:()V
        46: .line 309
            return
        end local 4 // int level
        end local 3 // java.lang.String fieldName
        end local 2 // com.oracle.truffle.api.nodes.NodeInterface node
        end local 1 // com.oracle.truffle.api.nodes.NodeInterface parent
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   47     0          p  Ljava/io/PrintWriter;
            0   47     1     parent  Lcom/oracle/truffle/api/nodes/NodeInterface;
            0   47     2       node  Lcom/oracle/truffle/api/nodes/NodeInterface;
            0   47     3  fieldName  Ljava/lang/String;
            0   47     4      level  I
            3    7     5          i  I
           14   45     5          c  Ljava/lang/Class<*>;
           16   43     6     fields  [Ljava/lang/reflect/Field;
           18   41     7      field  Ljava/lang/reflect/Field;
           23   25    11      value  Lcom/oracle/truffle/api/nodes/NodeInterface;
           27   28    11          e  Ljava/lang/Exception;
           32   38    11      value  [Lcom/oracle/truffle/api/nodes/NodeInterface;
           34   38    12          i  I
           40   41    11          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          21    25      26  Class java.lang.IllegalArgumentException
          21    25      26  Class java.lang.IllegalAccessException
          30    38      39  Class java.lang.IllegalArgumentException
          30    38      39  Class java.lang.IllegalAccessException
    MethodParameters:
           Name  Flags
      p          
      parent     
      node       
      fieldName  
      level      

  private void resolveLoops(com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[], com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph, com.oracle.truffle.api.frame.FrameDescriptor, com.oracle.truffle.api.frame.FrameSlot, com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation, org.graalvm.options.OptionValues);
    descriptor: ([Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation;Lorg/graalvm/options/OptionValues;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=20, args_size=7
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] nodes
        start local 2 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph cfg
        start local 3 // com.oracle.truffle.api.frame.FrameDescriptor frame
        start local 4 // com.oracle.truffle.api.frame.FrameSlot loopSuccessorSlot
        start local 5 // com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation info
        start local 6 // org.graalvm.options.OptionValues options
         0: .line 314
            aload 1 /* nodes */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[].clone:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[]
            astore 7 /* originalBodyNodes */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] originalBodyNodes
         1: .line 315
            aload 5 /* info */
            aload 7 /* originalBodyNodes */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation.setBlocks:([Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;)V
         2: .line 316
            aload 2 /* cfg */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph.getCFGLoops:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 28
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation org.graalvm.options.OptionValues com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] top java.util.Iterator
      StackMap stack:
         3: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop
            astore 8 /* loop */
        start local 8 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop loop
         4: .line 317
            aload 8 /* loop */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop.getHeader:()Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph$CFGBlock;
            getfield com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock.id:I
            istore 10 /* headerId */
        start local 10 // int headerId
         5: .line 318
            aload 1 /* nodes */
            arraylength
            newarray 10
            astore 11 /* indexMapping */
        start local 11 // int[] indexMapping
         6: .line 319
            aload 11 /* indexMapping */
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
         7: .line 320
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* bodyNodes */
        start local 12 // java.util.List bodyNodes
         8: .line 322
            aload 1 /* nodes */
            iload 10 /* headerId */
            aaload
            astore 13 /* header */
        start local 13 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode header
         9: .line 323
            aload 12 /* bodyNodes */
            aload 13 /* header */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 324
            aload 11 /* indexMapping */
            iload 10 /* headerId */
            iconst_0
            iastore
        11: .line 326
            iconst_1
            istore 14 /* i */
        start local 14 // int i
        12: .line 327
            aload 8 /* loop */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop.getBody:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 16
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation org.graalvm.options.OptionValues com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop java.util.Iterator int int[] java.util.List com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode int top java.util.Iterator
      StackMap stack:
        13: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock
            astore 15 /* block */
        start local 15 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock block
        14: .line 328
            aload 12 /* bodyNodes */
            aload 1 /* nodes */
            aload 15 /* block */
            getfield com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock.id:I
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 329
            aload 11 /* indexMapping */
            aload 15 /* block */
            getfield com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock.id:I
            iload 14 /* i */
            iinc 14 /* i */ 1
            iastore
        end local 15 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock block
        16: .line 327
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        17: .line 331
            aload 8 /* loop */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop.getSuccessorIDs:()[I
            astore 15 /* loopSuccessors */
        start local 15 // int[] loopSuccessors
        18: .line 332
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getNodeFactory:()Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 3 /* frame */
            ldc "<function exception value>"
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 12 /* bodyNodes */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
        19: .line 333
            aload 7 /* originalBodyNodes */
            iload 10 /* headerId */
            aload 11 /* indexMapping */
            aload 15 /* loopSuccessors */
            aload 4 /* loopSuccessorSlot */
        20: .line 332
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLoopDispatchNode:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/util/List;[Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;I[I[ILcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/api/nodes/RepeatingNode;
            astore 16 /* loopBody */
        start local 16 // com.oracle.truffle.api.nodes.RepeatingNode loopBody
        21: .line 334
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getNodeFactory:()Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 16 /* loopBody */
            aload 15 /* loopSuccessors */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLoop:(Lcom/oracle/truffle/api/nodes/RepeatingNode;[I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 17 /* loopNode */
        start local 17 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode loopNode
        22: .line 336
            aload 1 /* nodes */
            iload 10 /* headerId */
            aload 6 /* options */
            iconst_0
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
            aload 17 /* loopNode */
            iload 10 /* headerId */
            new java.lang.StringBuilder
            dup
            ldc "loopAt"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* headerId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.createBasicBlockNode:(Lorg/graalvm/options/OptionValues;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;ILjava/lang/String;)Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
            aastore
        23: .line 337
            aload 1 /* nodes */
            iload 10 /* headerId */
            aaload
            aload 13 /* header */
            getfield com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.nullableBefore:[Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 13 /* header */
            getfield com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.nullableAfter:[Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode.setNullableFrameSlots:([Lcom/oracle/truffle/api/frame/FrameSlot;[Lcom/oracle/truffle/api/frame/FrameSlot;)V
        24: .line 339
            aload 8 /* loop */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop.getInnerLoops:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 19
            goto 27
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation org.graalvm.options.OptionValues com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop java.util.Iterator int int[] java.util.List com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode int int[] com.oracle.truffle.api.nodes.RepeatingNode com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode top java.util.Iterator
      StackMap stack:
        25: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop
            astore 18 /* innerLoop */
        start local 18 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop innerLoop
        26: .line 340
            aload 1 /* nodes */
            aload 18 /* innerLoop */
            invokevirtual com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop.getHeader:()Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph$CFGBlock;
            getfield com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock.id:I
            aconst_null
            aastore
        end local 18 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop innerLoop
        27: .line 339
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 17 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode loopNode
        end local 16 // com.oracle.truffle.api.nodes.RepeatingNode loopBody
        end local 15 // int[] loopSuccessors
        end local 14 // int i
        end local 13 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode header
        end local 12 // java.util.List bodyNodes
        end local 11 // int[] indexMapping
        end local 10 // int headerId
        end local 8 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop loop
        28: .line 316
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation org.graalvm.options.OptionValues com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        29: .line 343
            return
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] originalBodyNodes
        end local 6 // org.graalvm.options.OptionValues options
        end local 5 // com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation info
        end local 4 // com.oracle.truffle.api.frame.FrameSlot loopSuccessorSlot
        end local 3 // com.oracle.truffle.api.frame.FrameDescriptor frame
        end local 2 // com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph cfg
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.base.LLVMBasicBlockNode[] nodes
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   30     0               this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            0   30     1              nodes  [Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
            0   30     2                cfg  Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph;
            0   30     3              frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0   30     4  loopSuccessorSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            0   30     5               info  Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation;
            0   30     6            options  Lorg/graalvm/options/OptionValues;
            1   30     7  originalBodyNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
            4   28     8               loop  Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph$CFGLoop;
            5   28    10           headerId  I
            6   28    11       indexMapping  [I
            8   28    12          bodyNodes  Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;>;
            9   28    13             header  Lcom/oracle/truffle/llvm/runtime/nodes/base/LLVMBasicBlockNode;
           12   28    14                  i  I
           14   16    15              block  Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph$CFGBlock;
           18   28    15     loopSuccessors  [I
           21   28    16           loopBody  Lcom/oracle/truffle/api/nodes/RepeatingNode;
           22   28    17           loopNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
           26   27    18          innerLoop  Lcom/oracle/truffle/llvm/parser/util/LLVMControlFlowGraph$CFGLoop;
    MethodParameters:
                   Name  Flags
      nodes              
      cfg                
      frame              
      loopSuccessorSlot  
      info               
      options            

  public com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceFunctionType getSourceType();
    descriptor: ()Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
         0: .line 347
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.convert:()Lcom/oracle/truffle/api/RootCallTarget;
            pop
         1: .line 348
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getSourceFunction:()Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.getSourceType:()Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;

  private static com.oracle.truffle.api.frame.FrameSlot[] getNullableFrameSlots(com.oracle.truffle.api.frame.FrameDescriptor, java.util.BitSet);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;Ljava/util/BitSet;)[Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.frame.FrameDescriptor frame
        start local 1 // java.util.BitSet nullable
         0: .line 352
            iconst_m1
            istore 2 /* bitIndex */
        start local 2 // int bitIndex
         1: .line 354
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* nullableSlots */
        start local 3 // java.util.ArrayList nullableSlots
         2: .line 355
            goto 5
         3: .line 356
      StackMap locals: int java.util.ArrayList
      StackMap stack:
            iload 2 /* bitIndex */
            istore 4 /* frameIdentifier */
        start local 4 // int frameIdentifier
         4: .line 357
            aload 3 /* nullableSlots */
            aload 0 /* frame */
            iload 4 /* frameIdentifier */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.findFrameSlot:(Lcom/oracle/truffle/api/frame/FrameDescriptor;I)Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int frameIdentifier
         5: .line 355
      StackMap locals:
      StackMap stack:
            aload 1 /* nullable */
            iload 2 /* bitIndex */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            dup
            istore 2 /* bitIndex */
            ifge 3
         6: .line 359
            aload 3 /* nullableSlots */
            invokevirtual java.util.ArrayList.size:()I
            ifle 8
         7: .line 360
            aload 3 /* nullableSlots */
            aload 3 /* nullableSlots */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.api.frame.FrameSlot
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot[]
            areturn
         8: .line 362
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.ArrayList nullableSlots
        end local 2 // int bitIndex
        end local 1 // java.util.BitSet nullable
        end local 0 // com.oracle.truffle.api.frame.FrameDescriptor frame
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0            frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0    9     1         nullable  Ljava/util/BitSet;
            1    9     2         bitIndex  I
            2    9     3    nullableSlots  Ljava/util/ArrayList<Lcom/oracle/truffle/api/frame/FrameSlot;>;
            4    5     4  frameIdentifier  I
    MethodParameters:
          Name  Flags
      frame     
      nullable  

  private static boolean functionParameterHasByValueAttribute(com.oracle.truffle.llvm.parser.model.functions.FunctionParameter);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
         0: .line 374
            aload 0 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getParameterAttribute:()Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            ifnull 6
         1: .line 375
            aload 0 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getParameterAttribute:()Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup.getAttributes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: com.oracle.truffle.llvm.parser.model.functions.FunctionParameter top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.attributes.Attribute
            astore 1 /* a */
        start local 1 // com.oracle.truffle.llvm.parser.model.attributes.Attribute a
         3: .line 376
            aload 1 /* a */
            instanceof com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownAttribute
            ifeq 5
            aload 1 /* a */
            checkcast com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownAttribute
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownAttribute.getAttr:()Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute$Kind;
            getstatic com.oracle.truffle.llvm.parser.model.attributes.Attribute$Kind.BYVAL:Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute$Kind;
            if_acmpne 5
         4: .line 377
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.llvm.parser.model.attributes.Attribute a
         5: .line 375
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 381
      StackMap locals: com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  parameter  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
            3    5     1          a  Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute;
    MethodParameters:
           Name  Flags
      parameter  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode getTargetAddress(com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.runtime.types.Type, java.util.ArrayDeque<java.lang.Long>);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Ljava/util/ArrayDeque;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode baseAddress
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type sourceType
        start local 3 // java.util.ArrayDeque indices
         0: .line 395
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getNodeFactory:()Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            astore 4 /* nf */
        start local 4 // com.oracle.truffle.llvm.runtime.NodeFactory nf
         1: .line 397
            aload 3 /* indices */
            invokevirtual java.util.ArrayDeque.size:()I
            istore 5 /* indicesSize */
        start local 5 // int indicesSize
         2: .line 398
            iload 5 /* indicesSize */
            anewarray java.lang.Long
            astore 6 /* indicesArr */
        start local 6 // java.lang.Long[] indicesArr
         3: .line 399
            iload 5 /* indicesSize */
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 7 /* indexNodes */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] indexNodes
         4: .line 401
            iload 5 /* indicesSize */
            iconst_1
            isub
            istore 8 /* i */
        start local 8 // int i
         5: .line 402
            aload 3 /* indices */
            invokevirtual java.util.ArrayDeque.iterator:()Ljava/util/Iterator;
            astore 10
            goto 10
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type java.util.ArrayDeque com.oracle.truffle.llvm.runtime.NodeFactory int java.lang.Long[] com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] int top java.util.Iterator
      StackMap stack:
         6: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Long
            astore 9 /* idx */
        start local 9 // java.lang.Long idx
         7: .line 403
            aload 6 /* indicesArr */
            iload 8 /* i */
            aload 9 /* idx */
            aastore
         8: .line 404
            aload 7 /* indexNodes */
            iload 8 /* i */
            aload 9 /* idx */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType.I64:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType;
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createLiteral:(Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         9: .line 405
            iinc 8 /* i */ -1
        end local 9 // java.lang.Long idx
        10: .line 402
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 407
            getstatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.$assertionsDisabled:Z
            ifne 12
            iload 8 /* i */
            iconst_m1
            if_icmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 409
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type java.util.ArrayDeque com.oracle.truffle.llvm.runtime.NodeFactory int java.lang.Long[] com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] int
      StackMap stack:
            iload 5 /* indicesSize */
            anewarray com.oracle.truffle.llvm.runtime.types.PrimitiveType
            astore 9 /* indexTypes */
        start local 9 // com.oracle.truffle.llvm.runtime.types.PrimitiveType[] indexTypes
        13: .line 410
            aload 9 /* indexTypes */
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType.I64:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType;
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 413
            aload 4 /* nf */
        15: .line 414
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
        16: .line 415
            aload 7 /* indexNodes */
        17: .line 416
            aload 6 /* indicesArr */
        18: .line 417
            aload 9 /* indexTypes */
        19: .line 418
            aload 1 /* baseAddress */
        20: .line 419
            aload 2 /* sourceType */
        21: .line 412
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createNestedElementPointerNode:(Lcom/oracle/truffle/llvm/runtime/NodeFactory;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Ljava/lang/Long;[Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 10 /* nestedGEPs */
        start local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode nestedGEPs
        22: .line 421
            aload 10 /* nestedGEPs */
            areturn
        end local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode nestedGEPs
        end local 9 // com.oracle.truffle.llvm.runtime.types.PrimitiveType[] indexTypes
        end local 8 // int i
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] indexNodes
        end local 6 // java.lang.Long[] indicesArr
        end local 5 // int indicesSize
        end local 4 // com.oracle.truffle.llvm.runtime.NodeFactory nf
        end local 3 // java.util.ArrayDeque indices
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type sourceType
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode baseAddress
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            0   23     1  baseAddress  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0   23     2   sourceType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            0   23     3      indices  Ljava/util/ArrayDeque<Ljava/lang/Long;>;
            1   23     4           nf  Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            2   23     5  indicesSize  I
            3   23     6   indicesArr  [Ljava/lang/Long;
            4   23     7   indexNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5   23     8            i  I
            7   10     9          idx  Ljava/lang/Long;
           13   23     9   indexTypes  [Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType;
           22   23    10   nestedGEPs  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    Signature: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Ljava/util/ArrayDeque<Ljava/lang/Long;>;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
             Name  Flags
      baseAddress  
      sourceType   
      indices      

  private void copyStructArgumentsToFrame(java.util.List<com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode>, com.oracle.truffle.llvm.runtime.NodeFactory, com.oracle.truffle.api.frame.FrameSlot, int, com.oracle.truffle.llvm.runtime.types.PointerType, com.oracle.truffle.llvm.runtime.types.Type, java.util.ArrayDeque<java.lang.Long>);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/NodeFactory;Lcom/oracle/truffle/api/frame/FrameSlot;ILcom/oracle/truffle/llvm/runtime/types/PointerType;Lcom/oracle/truffle/llvm/runtime/types/Type;Ljava/util/ArrayDeque;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=8
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
         0: .line 457
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tLLVMUnpackVarargsNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;>;Lcom/oracle/truffle/llvm/runtime/NodeFactory;Lcom/oracle/truffle/api/frame/FrameSlot;ILcom/oracle/truffle/llvm/runtime/types/PointerType;Lcom/oracle/truffle/llvm/runtime/types/Type;Ljava/util/ArrayDeque<Ljava/lang/Long;>;)V
    MethodParameters:
                     Name  Flags
      initializers         
      nodeFactory          
      slot                 
      argIndex             
      topLevelPointerType  
      currentType          
      indices              

  private java.util.List<com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode> copyArgumentsToFrame(com.oracle.truffle.api.frame.FrameDescriptor, com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=15, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor frame
        start local 2 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
         0: .line 470
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.runtime:Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.getNodeFactory:()Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            astore 3 /* nodeFactory */
        start local 3 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
         1: .line 471
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            astore 4 /* parameters */
        start local 4 // java.util.List parameters
         2: .line 472
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* formalParamInits */
        start local 5 // java.util.List formalParamInits
         3: .line 475
            iconst_1
            istore 6 /* argIndex */
        start local 6 // int argIndex
         4: .line 476
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.method:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getType:()Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            invokevirtual com.oracle.truffle.llvm.runtime.types.FunctionType.getReturnType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifeq 6
         5: .line 477
            iinc 6 /* argIndex */ 1
         6: .line 480
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.NodeFactory java.util.List java.util.List int
      StackMap stack:
            aload 4 /* parameters */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 20
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.NodeFactory java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            astore 7 /* parameter */
        start local 7 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
         8: .line 481
            aload 2 /* symbols */
            aload 1 /* frame */
            aload 7 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.findOrAddFrameSlot:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 9 /* slot */
        start local 9 // com.oracle.truffle.api.frame.FrameSlot slot
         9: .line 483
            aload 7 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.PointerType
            ifeq 18
            aload 7 /* parameter */
            invokestatic com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.functionParameterHasByValueAttribute:(Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;)Z
            ifeq 18
        10: .line 486
            aload 7 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            checkcast com.oracle.truffle.llvm.runtime.types.PointerType
            astore 10 /* pointerType */
        start local 10 // com.oracle.truffle.llvm.runtime.types.PointerType pointerType
        11: .line 487
            aload 10 /* pointerType */
            invokevirtual com.oracle.truffle.llvm.runtime.types.PointerType.getPointeeType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 11 /* pointeeType */
        start local 11 // com.oracle.truffle.llvm.runtime.types.Type pointeeType
        12: .line 488
            invokestatic com.oracle.truffle.llvm.runtime.GetStackSpaceFactory.createAllocaFactory:()Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;
            astore 12 /* allocaFactory */
        start local 12 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory allocaFactory
        13: .line 489
            aload 12 /* allocaFactory */
            aload 3 /* nodeFactory */
            aload 11 /* pointeeType */
            invokeinterface com.oracle.truffle.llvm.runtime.GetStackSpaceFactory.createGetStackSpace:(Lcom/oracle/truffle/llvm/runtime/NodeFactory;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 13 /* allocation */
        start local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode allocation
        14: .line 491
            aload 5 /* formalParamInits */
            aload 3 /* nodeFactory */
            aload 10 /* pointerType */
            aload 13 /* allocation */
            aload 9 /* slot */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 493
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 14 /* indices */
        start local 14 // java.util.ArrayDeque indices
        16: .line 494
            aload 0 /* this */
            aload 5 /* formalParamInits */
            aload 3 /* nodeFactory */
            aload 9 /* slot */
            iload 6 /* argIndex */
            iinc 6 /* argIndex */ 1
            aload 10 /* pointerType */
            aload 11 /* pointeeType */
            aload 14 /* indices */
            invokevirtual com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl.copyStructArgumentsToFrame:(Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/NodeFactory;Lcom/oracle/truffle/api/frame/FrameSlot;ILcom/oracle/truffle/llvm/runtime/types/PointerType;Lcom/oracle/truffle/llvm/runtime/types/Type;Ljava/util/ArrayDeque;)V
        end local 14 // java.util.ArrayDeque indices
        end local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode allocation
        end local 12 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory allocaFactory
        end local 11 // com.oracle.truffle.llvm.runtime.types.Type pointeeType
        end local 10 // com.oracle.truffle.llvm.runtime.types.PointerType pointerType
        17: .line 495
            goto 20
        18: .line 496
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.NodeFactory java.util.List java.util.List int com.oracle.truffle.llvm.parser.model.functions.FunctionParameter java.util.Iterator com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 3 /* nodeFactory */
            iload 6 /* argIndex */
            iinc 6 /* argIndex */ 1
            aload 7 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFunctionArgNode:(ILcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 10 /* parameterNode */
        start local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode parameterNode
        19: .line 497
            aload 5 /* formalParamInits */
            aload 3 /* nodeFactory */
            aload 7 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 10 /* parameterNode */
            aload 9 /* slot */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode parameterNode
        end local 9 // com.oracle.truffle.api.frame.FrameSlot slot
        end local 7 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
        20: .line 480
      StackMap locals: com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.NodeFactory java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        21: .line 501
            aload 5 /* formalParamInits */
            areturn
        end local 6 // int argIndex
        end local 5 // java.util.List formalParamInits
        end local 4 // java.util.List parameters
        end local 3 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
        end local 2 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor frame
        end local 0 // com.oracle.truffle.llvm.parser.LazyToTruffleConverterImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lcom/oracle/truffle/llvm/parser/LazyToTruffleConverterImpl;
            0   22     1             frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0   22     2           symbols  Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            1   22     3       nodeFactory  Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            2   22     4        parameters  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;>;
            3   22     5  formalParamInits  Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;>;
            4   22     6          argIndex  I
            8   20     7         parameter  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
            9   20     9              slot  Lcom/oracle/truffle/api/frame/FrameSlot;
           11   17    10       pointerType  Lcom/oracle/truffle/llvm/runtime/types/PointerType;
           12   17    11       pointeeType  Lcom/oracle/truffle/llvm/runtime/types/Type;
           13   17    12     allocaFactory  Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;
           14   17    13        allocation  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           16   17    14           indices  Ljava/util/ArrayDeque<Ljava/lang/Long;>;
           19   20    10     parameterNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    Signature: (Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;)Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;>;
    MethodParameters:
         Name  Flags
      frame    
      symbols  
}
SourceFile: "LazyToTruffleConverterImpl.java"
InnerClasses:
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public LLVMLivenessAnalysisResult = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  public final NullerInformation = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  public final Phi = com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi of com.oracle.truffle.llvm.parser.LLVMPhiManager
  public abstract ValueVisitor = com.oracle.truffle.llvm.parser.ValueList$ValueVisitor of com.oracle.truffle.llvm.parser.ValueList
  public final Kind = com.oracle.truffle.llvm.parser.model.attributes.Attribute$Kind of com.oracle.truffle.llvm.parser.model.attributes.Attribute
  public KnownAttribute = com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownAttribute of com.oracle.truffle.llvm.parser.model.attributes.Attribute
  public final CFGBlock = com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGBlock of com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph
  public final CFGLoop = com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph$CFGLoop of com.oracle.truffle.llvm.parser.util.LLVMControlFlowGraph
  public abstract LazyToTruffleConverter = com.oracle.truffle.llvm.runtime.LLVMFunctionCode$LazyToTruffleConverter of com.oracle.truffle.llvm.runtime.LLVMFunctionCode
  public final UniquesRegion = com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion of com.oracle.truffle.llvm.runtime.memory.LLVMStack
  abstract LocalVarDebugInfo = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation