public final class com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition extends com.oracle.truffle.llvm.parser.model.functions.FunctionSymbol implements com.oracle.truffle.llvm.parser.model.symbols.constants.Constant, com.oracle.truffle.llvm.parser.metadata.MetadataAttachmentHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition
  super_class: com.oracle.truffle.llvm.parser.model.functions.FunctionSymbol
{
  public static final com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock[] EMPTY;
    descriptor: [Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.util.List<com.oracle.truffle.llvm.parser.model.functions.FunctionParameter> parameters;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;>;

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

  private java.util.List<com.oracle.truffle.llvm.parser.metadata.MDAttachment> mdAttachments;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/oracle/truffle/llvm/parser/metadata/MDAttachment;>;

  private com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction sourceFunction;
    descriptor: Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock[] blocks;
    descriptor: [Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    flags: (0x0002) ACC_PRIVATE

  private int currentBlock;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            putstatic com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.EMPTY:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(com.oracle.truffle.llvm.runtime.types.FunctionType, java.lang.String, com.oracle.truffle.llvm.parser.model.enums.Linkage, com.oracle.truffle.llvm.parser.model.enums.Visibility, com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry, int);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/lang/String;Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.runtime.types.FunctionType type
        start local 2 // java.lang.String name
        start local 3 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 4 // com.oracle.truffle.llvm.parser.model.enums.Visibility visibility
        start local 5 // com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry paramAttr
        start local 6 // int index
         0: .line 76
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* name */
            aload 3 /* linkage */
            aload 5 /* paramAttr */
            iload 6 /* index */
            invokespecial com.oracle.truffle.llvm.parser.model.functions.FunctionSymbol.<init>:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/lang/String;Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;I)V
         1: .line 66
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.parameters:Ljava/util/List;
         2: .line 69
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
         3: .line 70
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.DEFAULT:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
         4: .line 72
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.EMPTY:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
         5: .line 73
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.currentBlock:I
         6: .line 77
            aload 0 /* this */
            aload 4 /* visibility */
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.visibility:Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;
         7: .line 78
            return
        end local 6 // int index
        end local 5 // com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry paramAttr
        end local 4 // com.oracle.truffle.llvm.parser.model.enums.Visibility visibility
        end local 3 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        end local 2 // java.lang.String name
        end local 1 // com.oracle.truffle.llvm.runtime.types.FunctionType type
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    8     1        type  Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            0    8     2        name  Ljava/lang/String;
            0    8     3     linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0    8     4  visibility  Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;
            0    8     5   paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;
            0    8     6       index  I
    MethodParameters:
            Name  Flags
      type        
      name        
      linkage     
      visibility  
      paramAttr   
      index       

  public void <init>(com.oracle.truffle.llvm.runtime.types.FunctionType, com.oracle.truffle.llvm.parser.model.enums.Linkage, com.oracle.truffle.llvm.parser.model.enums.Visibility, com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry, int);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.runtime.types.FunctionType type
        start local 2 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        start local 3 // com.oracle.truffle.llvm.parser.model.enums.Visibility visibility
        start local 4 // com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry paramAttr
        start local 5 // int index
         0: .line 81
            aload 0 /* this */
            aload 1 /* type */
            ldc "<anon>"
            aload 2 /* linkage */
            aload 3 /* visibility */
            aload 4 /* paramAttr */
            iload 5 /* index */
            invokespecial com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.<init>:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;Ljava/lang/String;Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;I)V
         1: .line 82
            return
        end local 5 // int index
        end local 4 // com.oracle.truffle.llvm.parser.model.attributes.AttributesCodeEntry paramAttr
        end local 3 // com.oracle.truffle.llvm.parser.model.enums.Visibility visibility
        end local 2 // com.oracle.truffle.llvm.parser.model.enums.Linkage linkage
        end local 1 // com.oracle.truffle.llvm.runtime.types.FunctionType type
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1        type  Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            0    2     2     linkage  Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            0    2     3  visibility  Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;
            0    2     4   paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesCodeEntry;
            0    2     5       index  I
    MethodParameters:
            Name  Flags
      type        
      linkage     
      visibility  
      paramAttr   
      index       

  public boolean hasAttachedMetadata();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public java.util.List<com.oracle.truffle.llvm.parser.metadata.MDAttachment> getAttachedMetadata();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 91
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            ifnonnull 2
         1: .line 92
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
         2: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/llvm/parser/metadata/MDAttachment;>;

  public java.lang.String getSourceName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 98
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.getName:()Ljava/lang/String;
            astore 1 /* scopeName */
        start local 1 // java.lang.String scopeName
         1: .line 99
            ldc "<anon>"
            aload 1 /* scopeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 1 /* scopeName */
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // java.lang.String scopeName
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            1    4     1  scopeName  Ljava/lang/String;

  public java.lang.String getDisplayName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 107
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            ifnull 8
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 8
         1: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.metadata.MDAttachment
            astore 1 /* mdAttachment */
        start local 1 // com.oracle.truffle.llvm.parser.metadata.MDAttachment mdAttachment
         3: .line 109
            aload 1 /* mdAttachment */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.MDAttachment.getValue:()Lcom/oracle/truffle/llvm/parser/metadata/MDBaseNode;
            instanceof com.oracle.truffle.llvm.parser.metadata.MDSubprogram
            ifeq 7
         4: .line 110
            aload 1 /* mdAttachment */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.MDAttachment.getValue:()Lcom/oracle/truffle/llvm/parser/metadata/MDBaseNode;
            checkcast com.oracle.truffle.llvm.parser.metadata.MDSubprogram
            astore 3 /* mdSubprogram */
        start local 3 // com.oracle.truffle.llvm.parser.metadata.MDSubprogram mdSubprogram
         5: .line 111
            aload 3 /* mdSubprogram */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.MDSubprogram.getName:()Lcom/oracle/truffle/llvm/parser/metadata/MDBaseNode;
            instanceof com.oracle.truffle.llvm.parser.metadata.MDString
            ifeq 7
         6: .line 112
            aload 3 /* mdSubprogram */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.MDSubprogram.getName:()Lcom/oracle/truffle/llvm/parser/metadata/MDBaseNode;
            checkcast com.oracle.truffle.llvm.parser.metadata.MDString
            invokevirtual com.oracle.truffle.llvm.parser.metadata.MDString.getString:()Ljava/lang/String;
            areturn
        end local 3 // com.oracle.truffle.llvm.parser.metadata.MDSubprogram mdSubprogram
        end local 1 // com.oracle.truffle.llvm.parser.metadata.MDAttachment mdAttachment
         7: .line 108
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 117
      StackMap locals: com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getSourceName:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            3    7     1  mdAttachment  Lcom/oracle/truffle/llvm/parser/metadata/MDAttachment;
            5    7     3  mdSubprogram  Lcom/oracle/truffle/llvm/parser/metadata/MDSubprogram;

  public void replace(com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.model.SymbolImpl);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl oldValue
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl newValue
         0: .line 122
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl newValue
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl oldValue
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    1     1  oldValue  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    1     2  newValue  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
    MethodParameters:
          Name  Flags
      oldValue  
      newValue  

  public void accept(com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/visitors/SymbolVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor visitor
         0: .line 126
            aload 1 /* visitor */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor.visit:(Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;)V
         1: .line 127
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor visitor
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1  visitor  Lcom/oracle/truffle/llvm/parser/model/visitors/SymbolVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  public void accept(com.oracle.truffle.llvm.parser.model.visitors.FunctionVisitor);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/visitors/FunctionVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.parser.model.visitors.FunctionVisitor visitor
         0: .line 130
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition com.oracle.truffle.llvm.parser.model.visitors.FunctionVisitor top int int com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* block */
        start local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         2: .line 131
            aload 1 /* visitor */
            aload 2 /* block */
            invokeinterface com.oracle.truffle.llvm.parser.model.visitors.FunctionVisitor.visit:(Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;)V
        end local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         3: .line 130
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 133
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.visitors.FunctionVisitor visitor
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    6     1  visitor  Lcom/oracle/truffle/llvm/parser/model/visitors/FunctionVisitor;
            2    3     2    block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    MethodParameters:
         Name  Flags
      visitor  

  public void allocateBlocks(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // int count
         0: .line 136
            aload 0 /* this */
            iload 1 /* count */
            anewarray com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
         1: .line 137
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 138
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            iload 2 /* i */
            new com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            dup
            iload 2 /* i */
            invokespecial com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.<init>:(I)V
            aastore
         4: .line 137
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 2 // int i
         6: .line 140
            return
        end local 1 // int count
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    7     1  count  I
            2    6     2      i  I
    MethodParameters:
       Name  Flags
      count  

  public com.oracle.truffle.llvm.parser.model.functions.FunctionParameter createParameter(com.oracle.truffle.llvm.runtime.types.Type);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.runtime.types.Type t
         0: .line 143
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.parameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 2 /* argIndex */
        start local 2 // int argIndex
         1: .line 144
            aload 0 /* this */
            iload 2 /* argIndex */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameterAttributesGroup:(I)Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            astore 3 /* attrGroup */
        start local 3 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup attrGroup
         2: .line 145
            new com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            dup
            aload 1 /* t */
            aload 3 /* attrGroup */
            iload 2 /* argIndex */
            invokespecial com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;I)V
            astore 4 /* parameter */
        start local 4 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
         3: .line 146
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.parameters:Ljava/util/List;
            aload 4 /* parameter */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 147
            aload 4 /* parameter */
            areturn
        end local 4 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter parameter
        end local 3 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup attrGroup
        end local 2 // int argIndex
        end local 1 // com.oracle.truffle.llvm.runtime.types.Type t
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    5     1          t  Lcom/oracle/truffle/llvm/runtime/types/Type;
            1    5     2   argIndex  I
            2    5     3  attrGroup  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            3    5     4  parameter  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
    MethodParameters:
      Name  Flags
      t     

  public com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock generateBlock();
    descriptor: ()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 151
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.currentBlock:I
            dup_x1
            iconst_1
            iadd
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.currentBlock:I
            aaload
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock getBlock(long);
    descriptor: (J)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // long idx
         0: .line 155
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 156
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            lload 1 /* idx */
            l2i
            aaload
            areturn
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1   idx  J
    MethodParameters:
      Name  Flags
      idx   

  public java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock> getBlocks();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 160
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 161
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;

  public java.util.List<com.oracle.truffle.llvm.parser.model.functions.FunctionParameter> getParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 165
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 166
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.parameters:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;>;

  public void nameBlock(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // int index
        start local 2 // java.lang.String argName
         0: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            iload 1 /* index */
            aaload
            aload 2 /* argName */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.setName:(Ljava/lang/String;)V
         1: .line 171
            return
        end local 2 // java.lang.String argName
        end local 1 // int index
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1    index  I
            0    2     2  argName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      index    
      argName  

  public void onAfterParse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 175
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.EMPTY:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.blocks:[Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
         1: .line 176
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.currentBlock:I
         2: .line 177
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.mdAttachments:Ljava/util/List;
         3: .line 178
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.clearLocals:()V
         4: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.parameters:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         5: .line 180
            return
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 184
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 185
            aload 0 /* this */
            invokespecial java.lang.Object.hashCode:()I
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // java.lang.Object obj
         0: .line 190
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 191
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 196
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 197
            ldc "%s %s {...}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getType:()Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation getLexicalScope();
    descriptor: ()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 201
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction.getLexicalScope:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation
         2: areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction getSourceFunction();
    descriptor: ()Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 205
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public void setSourceFunction(com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction sourceFunction
         0: .line 209
            aload 0 /* this */
            aload 1 /* sourceFunction */
            putfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.sourceFunction:Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
         1: .line 210
            return
        end local 1 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceFunction sourceFunction
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1  sourceFunction  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceFunction;
    MethodParameters:
                Name  Flags
      sourceFunction  

  public boolean isExported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 214
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getLinkage:()Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.visibility:Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;
            invokestatic com.oracle.truffle.llvm.parser.model.enums.Linkage.isExported:(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;)Z
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public boolean isOverridable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 219
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getLinkage:()Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.visibility:Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;
            invokestatic com.oracle.truffle.llvm.parser.model.enums.Linkage.isOverridable:(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;Lcom/oracle/truffle/llvm/parser/model/enums/Visibility;)Z
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public boolean isExternal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
         0: .line 224
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getLinkage:()Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;
            invokestatic com.oracle.truffle.llvm.parser.model.enums.Linkage.isExternal:(Lcom/oracle/truffle/llvm/parser/model/enums/Linkage;)Z
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;

  public com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode createNode(com.oracle.truffle.llvm.parser.LLVMParserRuntime, com.oracle.truffle.llvm.runtime.datalayout.DataLayout, com.oracle.truffle.llvm.runtime.GetStackSpaceFactory);
    descriptor: (Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
        start local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
        start local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
        start local 3 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory stackFactory
         0: .line 229
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMParserRuntime.lookupFunction:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            astore 4 /* value */
        start local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction value
         1: .line 230
            aload 4 /* value */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getType:()Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            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;
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction value
        end local 3 // com.oracle.truffle.llvm.runtime.GetStackSpaceFactory stackFactory
        end local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
        end local 1 // com.oracle.truffle.llvm.parser.LLVMParserRuntime runtime
        end local 0 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0    2     1       runtime  Lcom/oracle/truffle/llvm/parser/LLVMParserRuntime;
            0    2     2    dataLayout  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            0    2     3  stackFactory  Lcom/oracle/truffle/llvm/runtime/GetStackSpaceFactory;
            1    2     4         value  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
    MethodParameters:
              Name  Flags
      runtime       
      dataLayout    
      stackFactory  

  public void replace(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.llvm.parser.model.SymbolImpl
            aload 2
            checkcast com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.replace:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void accept(com.oracle.truffle.llvm.parser.ValueList$ValueVisitor);
    descriptor: (Lcom/oracle/truffle/llvm/parser/ValueList$ValueVisitor;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.accept:(Lcom/oracle/truffle/llvm/parser/model/visitors/SymbolVisitor;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "FunctionDefinition.java"
InnerClasses:
  public abstract ValueVisitor = com.oracle.truffle.llvm.parser.ValueList$ValueVisitor of com.oracle.truffle.llvm.parser.ValueList