public final class com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor implements com.oracle.truffle.llvm.parser.model.visitors.SymbolVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor
  super_class: java.lang.Object
{
  private final com.oracle.truffle.llvm.runtime.LLVMContext context;
    descriptor: Lcom/oracle/truffle/llvm/runtime/LLVMContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final java.util.List<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi> blockPhis;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;

  private final int argCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.ArrayList<com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation> nullerInfos;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;

  private final com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion uniquesRegion;
    descriptor: Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
    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 final java.util.HashSet<java.lang.Integer> neededForDebug;
    descriptor: Ljava/util/HashSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashSet<Ljava/lang/Integer;>;

  private final java.util.ArrayList<com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode> instructionNodes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;>;

  private final java.util.ArrayList<com.oracle.truffle.llvm.runtime.types.symbols.SSAValue> instructionTargets;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;>;

  private final java.util.ArrayList<com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo> debugInfo;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation$LocalVarDebugInfo;>;

  private com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] nullerInfo;
    descriptor: [Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode controlFlowNode;
    descriptor: Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation lastLocation;
    descriptor: Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
    flags: (0x0002) ACC_PRIVATE

  private boolean optimizeFrameSlots;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$llvm$parser$model$enums$ReadModifyWriteOperator;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$llvm$runtime$types$PrimitiveType$PrimitiveKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$llvm$parser$nodes$LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

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

  public void <init>(com.oracle.truffle.api.frame.FrameDescriptor, com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion, java.util.List<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi>, int, com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver, com.oracle.truffle.llvm.runtime.LLVMContext, java.util.ArrayList<com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation>, java.util.HashSet<java.lang.Integer>, com.oracle.truffle.llvm.runtime.datalayout.DataLayout, com.oracle.truffle.llvm.runtime.NodeFactory);
    descriptor: (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
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=11
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor frame
        start local 2 // com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion uniquesRegion
        start local 3 // java.util.List blockPhis
        start local 4 // int argCount
        start local 5 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
        start local 6 // com.oracle.truffle.llvm.runtime.LLVMContext context
        start local 7 // java.util.ArrayList nullerInfos
        start local 8 // java.util.HashSet neededForDebug
        start local 9 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
        start local 10 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
         0: .line 163
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 166
            aload 0 /* this */
            aload 6 /* context */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.context:Lcom/oracle/truffle/llvm/runtime/LLVMContext;
         2: .line 167
            aload 0 /* this */
            aload 8 /* neededForDebug */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.neededForDebug:Ljava/util/HashSet;
         3: .line 168
            aload 0 /* this */
            aload 10 /* nodeFactory */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
         4: .line 169
            aload 0 /* this */
            aload 1 /* frame */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
         5: .line 170
            aload 0 /* this */
            aload 3 /* blockPhis */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
         6: .line 171
            aload 0 /* this */
            iload 4 /* argCount */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.argCount:I
         7: .line 172
            aload 0 /* this */
            aload 5 /* symbols */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
         8: .line 173
            aload 0 /* this */
            aload 7 /* nullerInfos */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
         9: .line 174
            aload 0 /* this */
            aload 2 /* uniquesRegion */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.uniquesRegion:Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
        10: .line 175
            aload 0 /* this */
            aload 9 /* dataLayout */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
        11: .line 177
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
        12: .line 178
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
        13: .line 179
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
        14: .line 181
            aload 0 /* this */
            aload 6 /* 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;
            getstatic com.oracle.truffle.llvm.runtime.options.SulongEngineOption.OPTIMIZE_FRAME_SLOTS: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 15
            aload 6 /* 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;
            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
            ifne 15
            iconst_1
            goto 16
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion java.util.List int com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.LLVMContext java.util.ArrayList java.util.HashSet com.oracle.truffle.llvm.runtime.datalayout.DataLayout com.oracle.truffle.llvm.runtime.NodeFactory
      StackMap stack: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor
        15: iconst_0
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion java.util.List int com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver com.oracle.truffle.llvm.runtime.LLVMContext java.util.ArrayList java.util.HashSet com.oracle.truffle.llvm.runtime.datalayout.DataLayout com.oracle.truffle.llvm.runtime.NodeFactory
      StackMap stack: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor int
        16: putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.optimizeFrameSlots:Z
        17: .line 182
            return
        end local 10 // com.oracle.truffle.llvm.runtime.NodeFactory nodeFactory
        end local 9 // com.oracle.truffle.llvm.runtime.datalayout.DataLayout dataLayout
        end local 8 // java.util.HashSet neededForDebug
        end local 7 // java.util.ArrayList nullerInfos
        end local 6 // com.oracle.truffle.llvm.runtime.LLVMContext context
        end local 5 // com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver symbols
        end local 4 // int argCount
        end local 3 // java.util.List blockPhis
        end local 2 // com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion uniquesRegion
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor frame
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   18     1           frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0   18     2   uniquesRegion  Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
            0   18     3       blockPhis  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
            0   18     4        argCount  I
            0   18     5         symbols  Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            0   18     6         context  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            0   18     7     nullerInfos  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;
            0   18     8  neededForDebug  Ljava/util/HashSet<Ljava/lang/Integer;>;
            0   18     9      dataLayout  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            0   18    10     nodeFactory  Lcom/oracle/truffle/llvm/runtime/NodeFactory;
    Signature: (Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;ILcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;Lcom/oracle/truffle/llvm/runtime/LLVMContext;Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;Ljava/util/HashSet<Ljava/lang/Integer;>;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)V
    MethodParameters:
                Name  Flags
      frame           
      uniquesRegion   
      blockPhis       
      argCount        
      symbols         
      context         
      nullerInfos     
      neededForDebug  
      dataLayout      
      nodeFactory     

  public com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode getControlFlowNode();
    descriptor: ()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 185
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.controlFlowNode:Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;

  public void setInstructionIndex(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // int instructionIndex
         0: .line 189
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 17
         2: .line 193
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.getInstructionIndex:()I
            iload 1 /* instructionIndex */
            if_icmpge 3
            new java.lang.AssertionError
            dup
            ldc "we either missed an instruction or the nuller information is not sorted correctly"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* last */
        start local 2 // int last
         4: .line 195
            goto 6
         5: .line 196
      StackMap locals: int
      StackMap stack:
            iinc 2 /* last */ -1
         6: .line 195
      StackMap locals:
      StackMap stack:
            iload 2 /* last */
            ifle 7
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            iload 2 /* last */
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.getInstructionIndex:()I
            iload 1 /* instructionIndex */
            if_icmpeq 5
         7: .line 198
      StackMap locals:
      StackMap stack:
            iload 2 /* last */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmpge 17
         8: .line 199
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iload 2 /* last */
            isub
            anewarray com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            astore 3 /* slots */
        start local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] slots
         9: .line 200
            aload 3 /* slots */
            arraylength
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
        10: goto 14
        11: .line 201
      StackMap locals: com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] int
      StackMap stack:
            aload 3 /* slots */
            iload 4 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            iload 2 /* last */
            iload 4 /* i */
            iadd
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.getIdentifier:()Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            aastore
        12: .line 202
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfos:Ljava/util/ArrayList;
            iload 2 /* last */
            iload 4 /* i */
            iadd
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        13: .line 200
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            ifge 11
        end local 4 // int i
        15: .line 204
            aload 0 /* this */
            aload 3 /* slots */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
        16: .line 205
            return
        end local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] slots
        end local 2 // int last
        17: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
        18: .line 209
            return
        end local 1 // int instructionIndex
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   19     1  instructionIndex  I
            4   17     2              last  I
            9   17     3             slots  [Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
           10   15     4                 i  I
    MethodParameters:
                  Name  Flags
      instructionIndex  

  public com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] finish();
    descriptor: ()[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 212
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 9
         2: .line 213
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
            astore 2 /* node */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode node
         3: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            astore 3 /* target */
        start local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue target
         4: .line 215
            aload 3 /* target */
            ifnonnull 6
         5: .line 216
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 8
            aload 2 /* node */
            instanceof com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 218
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 7
            aload 2 /* node */
            instanceof com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            iload 1 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 3 /* target */
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 2 /* node */
            checkcast com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 3 /* target */
            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;
            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;
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue target
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode node
         8: .line 212
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 1 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
        10: .line 222
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            getstatic com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode.NO_STATEMENTS:[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[]
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            1   10     1       i  I
            3    8     2    node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;
            4    8     3  target  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;

  public com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo[] getDebugInfo();
    descriptor: ()[Lcom/oracle/truffle/llvm/parser/nodes/LLVMRuntimeDebugInformation$LocalVarDebugInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 226
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo[]
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;

  private com.oracle.truffle.api.frame.FrameSlot[] createNullerSlots(com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[]);
    descriptor: ([Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)[Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] stackValues
         0: .line 230
            aload 1 /* stackValues */
            ifnull 18
         1: .line 231
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: .line 232
            aload 1 /* stackValues */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] int top int int com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* value */
        start local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
         4: .line 233
            aload 3 /* value */
            ifnull 6
         5: .line 234
            iinc 2 /* count */ 1
        end local 3 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
         6: .line 232
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 3
         8: .line 237
            iload 2 /* count */
            ifle 18
         9: .line 238
            iconst_0
            istore 3 /* pos */
        start local 3 // int pos
        10: .line 239
            iload 2 /* count */
            anewarray com.oracle.truffle.api.frame.FrameSlot
            astore 4 /* result */
        start local 4 // com.oracle.truffle.api.frame.FrameSlot[] result
        11: .line 240
            aload 1 /* stackValues */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 16
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] int int com.oracle.truffle.api.frame.FrameSlot[] top int int com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[]
      StackMap stack:
        12: aload 8
            iload 6
            aaload
            astore 5 /* value */
        start local 5 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
        13: .line 241
            aload 5 /* value */
            ifnull 15
        14: .line 242
            aload 4 /* result */
            iload 3 /* pos */
            iinc 3 /* pos */ 1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 5 /* value */
            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;
            aastore
        end local 5 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
        15: .line 240
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        16: iload 6
            iload 7
            if_icmplt 12
        17: .line 245
            aload 4 /* result */
            areturn
        end local 4 // com.oracle.truffle.api.frame.FrameSlot[] result
        end local 3 // int pos
        end local 2 // int count
        18: .line 248
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[]
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] stackValues
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   19     1  stackValues  [Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            2   18     2        count  I
            4    6     3        value  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
           10   18     3          pos  I
           11   18     4       result  [Lcom/oracle/truffle/api/frame/FrameSlot;
           13   15     5        value  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
    MethodParameters:
             Name  Flags
      stackValues  

  public static com.oracle.truffle.api.frame.FrameSlot findFrameSlot(com.oracle.truffle.api.frame.FrameDescriptor, int);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;I)Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.frame.FrameDescriptor frame
        start local 1 // int frameIdentifier
         0: .line 252
            aload 0 /* frame */
            iload 1 /* frameIdentifier */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 1 // int frameIdentifier
        end local 0 // com.oracle.truffle.api.frame.FrameDescriptor frame
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0            frame  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0    1     1  frameIdentifier  I
    MethodParameters:
                 Name  Flags
      frame            
      frameIdentifier  

  public void defaultAction(com.oracle.truffle.llvm.parser.model.SymbolImpl);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
         0: .line 257
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Instruction not implemented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* symbol */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    1     1  symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
    MethodParameters:
        Name  Flags
      symbol  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode resolveOptimized(com.oracle.truffle.llvm.parser.model.SymbolImpl, int, com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.model.SymbolImpl[]);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        start local 2 // int excludeOtherIndex
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl other
        start local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl[] others
         0: .line 270
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.optimizeFrameSlots:Z
            ifeq 21
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            ifnull 21
         1: .line 271
            aload 1 /* symbol */
            instanceof com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            ifeq 21
         2: .line 272
            aload 1 /* symbol */
            aload 3 /* other */
            if_acmpeq 3
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.neededForDebug:Ljava/util/HashSet;
            aload 1 /* symbol */
            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.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* symbol */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         4: .line 275
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 10
         6: .line 276
      StackMap locals: int
      StackMap stack:
            aload 4 /* others */
            iload 5 /* i */
            aaload
            astore 6 /* o */
        start local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl o
         7: .line 277
            iload 5 /* i */
            iload 2 /* excludeOtherIndex */
            if_icmpeq 9
            aload 1 /* symbol */
            aload 6 /* o */
            if_acmpne 9
         8: .line 279
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* symbol */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl o
         9: .line 275
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 4 /* others */
            arraylength
            if_icmplt 6
        end local 5 // int i
        11: .line 282
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        12: goto 20
        13: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 5 /* i */
            aaload
            aload 1 /* symbol */
            if_acmpne 19
        14: .line 285
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 5 /* i */
            aaload
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getFrameIdentifier:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 21
        15: .line 287
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.extractNulledValue:(Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* node */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode node
        16: .line 288
            aload 6 /* node */
            ifnull 21
        17: .line 289
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 5 /* i */
            aconst_null
            aastore
        18: .line 290
            aload 6 /* node */
            areturn
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode node
        19: .line 282
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nullerInfo:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            arraylength
            if_icmplt 13
        end local 5 // int i
        21: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* symbol */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl[] others
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl other
        end local 2 // int excludeOtherIndex
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   22     1             symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0   22     2  excludeOtherIndex  I
            0   22     3              other  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0   22     4             others  [Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            5   11     5                  i  I
            7    9     6                  o  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
           12   21     5                  i  I
           16   19     6               node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
                   Name  Flags
      symbol             
      excludeOtherIndex  
      other              
      others             

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode resolveOptimized(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;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl[] other
         0: .line 302
            aload 0 /* this */
            aload 1 /* symbol */
            iconst_m1
            aconst_null
            aload 2 /* other */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl[] other
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    1     1  symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    1     2   other  [Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
    MethodParameters:
        Name  Flags
      symbol  
      other   

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode extractNulledValue(com.oracle.truffle.llvm.runtime.types.symbols.SSAValue);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue slot
         0: .line 306
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 1
            aload 1 /* slot */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 3
         2: .line 308
            aconst_null
            areturn
         3: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            astore 2 /* target */
        start local 2 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue target
         4: .line 311
            aload 2 /* target */
            aload 1 /* slot */
            if_acmpne 9
         5: .line 312
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 3 /* expression */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode expression
         6: .line 313
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         7: .line 314
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         8: .line 315
            aload 3 /* expression */
            areturn
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode expression
         9: .line 317
      StackMap locals: com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue target
        end local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue slot
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   10     1        slot  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            4   10     2      target  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            6    9     3  expression  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      slot  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/AllocateInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction allocate
         0: .line 322
            aload 1 /* allocate */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction.getPointeeType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 2 /* type */
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type type
         1: .line 324
            aload 1 /* allocate */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction.getAlign:()I
            ifne 4
         2: .line 325
            aload 2 /* type */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type.getAlignment:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)I
            istore 3 /* alignment */
        start local 3 // int alignment
         3: .line 326
            goto 5
        end local 3 // int alignment
         4: .line 327
      StackMap locals: com.oracle.truffle.llvm.runtime.types.Type
      StackMap stack:
            iconst_1
            aload 1 /* allocate */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction.getAlign:()I
            iconst_1
            isub
            ishl
            istore 3 /* alignment */
        start local 3 // int alignment
         5: .line 329
      StackMap locals: int
      StackMap stack:
            iload 3 /* alignment */
            ifne 7
         6: .line 330
            iconst_1
            istore 3 /* alignment */
         7: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* allocate */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction.getCount:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 4 /* count */
        start local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl count
         8: .line 335
            aload 4 /* count */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.NullConstant
            ifeq 11
         9: .line 336
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* type */
            iload 3 /* alignment */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createAlloca:(Lcom/oracle/truffle/llvm/runtime/types/Type;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* result */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        10: .line 337
            goto 21
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
      StackMap locals: com.oracle.truffle.llvm.parser.model.SymbolImpl
      StackMap stack:
        11: aload 4 /* count */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.integer.IntegerConstant
            ifeq 19
        12: .line 338
            aload 4 /* count */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.constants.integer.IntegerConstant
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.integer.IntegerConstant.getValue:()J
            lstore 6 /* numElements */
        start local 6 // long numElements
        13: .line 339
            lload 6 /* numElements */
            lconst_1
            lcmp
            ifne 16
        14: .line 340
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* type */
            iload 3 /* alignment */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createAlloca:(Lcom/oracle/truffle/llvm/runtime/types/Type;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* result */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        15: .line 341
            goto 21
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        16: .line 342
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.parser.model.SymbolImpl top long
      StackMap stack:
            new com.oracle.truffle.llvm.runtime.types.ArrayType
            dup
            aload 2 /* type */
            lload 6 /* numElements */
            invokespecial com.oracle.truffle.llvm.runtime.types.ArrayType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;J)V
            astore 8 /* arrayType */
        start local 8 // com.oracle.truffle.llvm.runtime.types.ArrayType arrayType
        17: .line 343
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 8 /* arrayType */
            iload 3 /* alignment */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createAlloca:(Lcom/oracle/truffle/llvm/runtime/types/Type;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* result */
        end local 8 // com.oracle.truffle.llvm.runtime.types.ArrayType arrayType
        end local 6 // long numElements
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        18: .line 345
            goto 21
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        19: .line 346
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.parser.model.SymbolImpl
      StackMap stack:
            aload 0 /* this */
            aload 4 /* count */
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* num */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode num
        20: .line 347
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* type */
            aload 6 /* num */
            iload 3 /* alignment */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createAllocaArray:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* result */
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode num
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        21: .line 352
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.context:Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            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;
            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
            ifeq 24
        22: .line 353
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 6 /* intention */
        start local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        23: .line 354
            goto 25
        end local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        24: .line 355
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.DISABLED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 6 /* intention */
        start local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        25: .line 357
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy
      StackMap stack:
            aload 0 /* this */
            aload 5 /* result */
            aload 1 /* allocate */
            aload 6 /* intention */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        26: .line 358
            return
        end local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl count
        end local 3 // int alignment
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction allocate
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   27     1     allocate  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/AllocateInstruction;
            1   27     2         type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            3    4     3    alignment  I
            5   27     3    alignment  I
            8   27     4        count  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
           10   11     5       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           15   16     5       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           18   19     5       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           21   27     5       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           13   18     6  numElements  J
           17   18     8    arrayType  Lcom/oracle/truffle/llvm/runtime/types/ArrayType;
           20   21     6          num  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           23   24     6    intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
           25   27     6    intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
    MethodParameters:
          Name  Flags
      allocate  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/BinaryOperationInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction operation
         0: .line 362
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction.getRHS:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* rhs */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl rhs
         1: .line 363
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction.getLHS:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* lhs */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl lhs
         2: .line 364
            aload 0 /* this */
            aload 2 /* rhs */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* lhs */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* rhsNode */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode rhsNode
         3: .line 365
            aload 0 /* this */
            aload 3 /* lhs */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* rhs */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* lhsNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode lhsNode
         4: .line 366
            aload 5 /* lhsNode */
            aload 4 /* rhsNode */
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction.getOperator:()Lcom/oracle/truffle/llvm/parser/model/enums/BinaryOperator;
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokestatic com.oracle.truffle.llvm.parser.util.LLVMBitcodeTypeHelper.createArithmeticInstruction:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/enums/BinaryOperator;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* result */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         5: .line 367
            aload 0 /* this */
            aload 6 /* result */
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         6: .line 368
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode lhsNode
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode rhsNode
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl lhs
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl rhs
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.BinaryOperationInstruction operation
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1  operation  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/BinaryOperationInstruction;
            1    7     2        rhs  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    7     3        lhs  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    7     4    rhsNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    7     5    lhsNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    7     6     result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
           Name  Flags
      operation  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/UnaryOperationInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction operation
         0: .line 372
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction.getOperand:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* operand */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl operand
         1: .line 373
            aload 0 /* this */
            aload 2 /* operand */
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* operandNode */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode operandNode
         2: .line 374
            aload 3 /* operandNode */
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction.getOperator:()Lcom/oracle/truffle/llvm/parser/model/enums/UnaryOperator;
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokestatic com.oracle.truffle.llvm.parser.util.LLVMBitcodeTypeHelper.createUnaryInstruction:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/enums/UnaryOperator;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* result */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         3: .line 375
            aload 0 /* this */
            aload 4 /* result */
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         4: .line 376
            return
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode operandNode
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl operand
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.UnaryOperationInstruction operation
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    5     1    operation  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/UnaryOperationInstruction;
            1    5     2      operand  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    5     3  operandNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            3    5     4       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
           Name  Flags
      operation  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.BranchInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/BranchInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.BranchInstruction branch
         0: .line 380
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.BranchInstruction.getSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
         1: .line 381
            aload 0 /* this */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            iconst_0
            aaload
         2: .line 380
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createUnconditionalBranch:(ILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* unconditionalBranchNode */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode unconditionalBranchNode
         3: .line 382
            aload 0 /* this */
            aload 2 /* unconditionalBranchNode */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         4: .line 383
            return
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode unconditionalBranchNode
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.BranchInstruction branch
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0                     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    5     1                   branch  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/BranchInstruction;
            3    5     2  unconditionalBranchNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
        Name  Flags
      branch  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CallInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction call
         0: .line 387
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 2 /* targetType */
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type targetType
         1: .line 388
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getArgumentCount:()I
            aload 2 /* targetType */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getArgumentCount:(ILcom/oracle/truffle/llvm/runtime/types/Type;)I
            istore 3 /* argumentCount */
        start local 3 // int argumentCount
         2: .line 389
            iload 3 /* argumentCount */
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 4 /* argNodes */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
         3: .line 390
            new com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder
            dup
            iload 3 /* argumentCount */
            invokespecial com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.<init>:(I)V
            astore 5 /* argTypes */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
         4: .line 391
            iconst_0
            istore 6 /* argIndex */
        start local 6 // int argIndex
         5: .line 393
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetStackFromFrame:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         6: .line 394
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aconst_null
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
         7: .line 395
            iinc 6 /* argIndex */ 1
         8: .line 397
            aload 2 /* targetType */
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifeq 12
         9: .line 398
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aload 2 /* targetType */
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        10: .line 399
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* targetType */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.uniquesRegion:Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetUniqueStackSpace:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        11: .line 400
            iinc 6 /* argIndex */ 1
        12: .line 402
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int
      StackMap stack:
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getCallTarget:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
        13: .line 403
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getArgumentCount:()I
            iconst_1
            isub
            istore 8 /* i */
        start local 8 // int i
        14: goto 21
        15: .line 404
      StackMap locals: com.oracle.truffle.llvm.parser.model.SymbolImpl int
      StackMap stack:
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 0 /* this */
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iload 8 /* i */
            aload 7 /* target */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getArguments:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        16: .line 405
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        17: .line 406
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction.getParameterAttributesGroup:(I)Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            astore 9 /* paramAttr */
        start local 9 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        18: .line 407
            aload 9 /* paramAttr */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.isByValue:(Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Z
            ifeq 20
        19: .line 408
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 0 /* this */
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aaload
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.get:(I)Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 9 /* paramAttr */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.capsuleAddressByValue:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        end local 9 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        20: .line 403
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ -1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            ifge 15
        end local 8 // int i
        22: .line 412
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 7 /* target */
            aload 4 /* argNodes */
            aload 5 /* argTypes */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.argCount:I
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLLVMBuiltin:(Lcom/oracle/truffle/llvm/runtime/types/symbols/Symbol;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        23: .line 413
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 9 /* intent */
        start local 9 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intent
        24: .line 414
            aload 8 /* result */
            ifnonnull 32
        25: .line 415
            aload 7 /* target */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant
            ifeq 29
        26: .line 416
            aload 7 /* target */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant
            astore 10 /* inlineAsmConstant */
        start local 10 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        27: .line 417
            aload 0 /* this */
            aload 10 /* inlineAsmConstant */
            aload 4 /* argNodes */
            aload 5 /* argTypes */
            aload 2 /* targetType */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createInlineAssemblerNode:(Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        end local 10 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        28: .line 418
            goto 32
        29: .line 419
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 7 /* target */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 10 /* function */
        start local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        30: .line 420
            aload 10 /* function */
            aload 4 /* argNodes */
            new com.oracle.truffle.llvm.runtime.types.FunctionType
            dup
            aload 2 /* targetType */
            aload 5 /* argTypes */
            iconst_0
            invokespecial com.oracle.truffle.llvm.runtime.types.FunctionType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Z)V
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createFunctionCall:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        31: .line 425
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 9 /* intent */
        end local 10 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        32: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* call */
            aload 9 /* intent */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        33: .line 431
            return
        end local 9 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intent
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 7 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
        end local 6 // int argIndex
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
        end local 3 // int argumentCount
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type targetType
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction call
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   34     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   34     1               call  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CallInstruction;
            1   34     2         targetType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            2   34     3      argumentCount  I
            3   34     4           argNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4   34     5           argTypes  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;
            5   34     6           argIndex  I
           13   34     7             target  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
           14   22     8                  i  I
           18   20     9          paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
           23   34     8             result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           24   34     9             intent  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
           27   28    10  inlineAsmConstant  Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;
           30   32    10           function  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      call  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/LandingpadInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction landingpadInstruction
         0: .line 435
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 2 /* type */
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type type
         1: .line 436
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* type */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.uniquesRegion:Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetUniqueStackSpace:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* allocateLandingPadValue */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode allocateLandingPadValue
         2: .line 437
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction.getClauseSymbols:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            arraylength
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 4 /* entries */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] entries
         3: .line 438
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 440
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] int
      StackMap stack:
            aload 4 /* entries */
            iload 5 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction.getClauseSymbols:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         6: .line 438
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 4 /* entries */
            arraylength
            if_icmplt 5
        end local 5 // int i
         8: .line 442
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetStackFromFrame:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* getStack */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode getStack
         9: .line 443
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 3 /* allocateLandingPadValue */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getExceptionSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction.isCleanup:()Z
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction.getClauseTypes:()[J
        10: .line 444
            aload 4 /* entries */
            aload 5 /* getStack */
        11: .line 443
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLandingPad:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/api/frame/FrameSlot;Z[J[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* landingPad */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode landingPad
        12: .line 445
            aload 0 /* this */
            aload 6 /* landingPad */
            aload 1 /* landingpadInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
        13: .line 446
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode landingPad
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode getStack
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] entries
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode allocateLandingPadValue
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.LandingpadInstruction landingpadInstruction
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   14     0                     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   14     1    landingpadInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/LandingpadInstruction;
            1   14     2                     type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            2   14     3  allocateLandingPadValue  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            3   14     4                  entries  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    8     5                        i  I
            9   14     5                 getStack  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           12   14     6               landingPad  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
                       Name  Flags
      landingpadInstruction  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ResumeInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ResumeInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ResumeInstruction resumeInstruction
         0: .line 450
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getExceptionSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createResumeInstruction:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* resume */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode resume
         1: .line 451
            aload 0 /* this */
            aload 2 /* resume */
            aload 1 /* resumeInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         2: .line 452
            return
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode resume
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ResumeInstruction resumeInstruction
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1  resumeInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ResumeInstruction;
            1    3     2             resume  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
                   Name  Flags
      resumeInstruction  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CompareExchangeInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction cmpxchg
         0: .line 456
            aload 1 /* cmpxchg */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction.getPtr:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* ptr */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl ptr
         1: .line 457
            aload 1 /* cmpxchg */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction.getCmp:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* cmp */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl cmp
         2: .line 458
            aload 1 /* cmpxchg */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction.getReplace:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 4 /* replace */
        start local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl replace
         3: .line 459
            aload 0 /* this */
            aload 4 /* replace */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* ptr */
            aastore
            dup
            iconst_1
            aload 3 /* cmp */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* newNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode newNode
         4: .line 460
            aload 0 /* this */
            aload 3 /* cmp */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* ptr */
            aastore
            dup
            iconst_1
            aload 4 /* replace */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* cmpNode */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cmpNode
         5: .line 461
            aload 0 /* this */
            aload 2 /* ptr */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* cmp */
            aastore
            dup
            iconst_1
            aload 4 /* replace */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* ptrNode */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode ptrNode
         6: .line 463
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* cmpxchg */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction.getAggregateType:()Lcom/oracle/truffle/llvm/runtime/types/AggregateType;
            aload 3 /* cmp */
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 7 /* ptrNode */
            aload 6 /* cmpNode */
            aload 5 /* newNode */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createCompareExchangeInstruction:(Lcom/oracle/truffle/llvm/runtime/types/AggregateType;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         7: .line 464
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* cmpxchg */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         8: .line 465
            return
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode ptrNode
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cmpNode
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode newNode
        end local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl replace
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl cmp
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl ptr
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareExchangeInstruction cmpxchg
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    9     1  cmpxchg  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CompareExchangeInstruction;
            1    9     2      ptr  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    9     3      cmp  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    9     4  replace  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            4    9     5  newNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    9     6  cmpNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            6    9     7  ptrNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            7    9     8   result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
         Name  Flags
      cmpxchg  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.VaArgInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VaArgInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VaArgInstruction vaArgInst
         0: .line 469
            aload 0 /* this */
            aload 1 /* vaArgInst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VaArgInstruction.getSource:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode source
         1: .line 470
            aload 1 /* vaArgInst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VaArgInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 2 /* source */
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createVaArg:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* result */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         2: .line 472
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* vaArgInst */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         3: .line 473
            return
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode source
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VaArgInstruction vaArgInst
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1  vaArgInst  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VaArgInstruction;
            1    4     2     source  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    4     3     result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
           Name  Flags
      vaArgInst  

  public void initializeAggregateLocalVariable(com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable);
    descriptor: (Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
         0: .line 476
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            new com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$InitAggreateLocalVariable
            dup
            iconst_0
            aload 1 /* variable */
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$InitAggreateLocalVariable.<init>:(ILcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 478
            return
        end local 1 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1  variable  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;
    MethodParameters:
          Name  Flags
      variable  

  private void handleDebugIntrinsic(com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable, com.oracle.truffle.llvm.parser.metadata.MDExpression, long, boolean);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=14, args_size=6
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        start local 2 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
        start local 3 // com.oracle.truffle.llvm.parser.metadata.MDExpression expression
        start local 4 // long index
        start local 6 // boolean isDeclaration
         0: .line 481
            lload 4 /* index */
            lconst_0
            lcmp
            ifeq 2
         1: .line 483
            return
         2: .line 486
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 7 /* valueFrameIdentifier */
        start local 7 // int valueFrameIdentifier
         3: .line 487
            aconst_null
            astore 8 /* valueObject */
        start local 8 // java.lang.Object valueObject
         4: .line 489
            aload 1 /* value */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.UndefinedConstant
            ifeq 7
         5: .line 490
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            new com.oracle.truffle.llvm.parser.model.symbols.constants.NullConstant
            dup
            getstatic com.oracle.truffle.llvm.runtime.types.MetaType.DEBUG:Lcom/oracle/truffle/llvm/runtime/types/MetaType;
            invokespecial com.oracle.truffle.llvm.parser.model.symbols.constants.NullConstant.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* valueObject */
         6: .line 491
            goto 17
      StackMap locals: int java.lang.Object
      StackMap stack:
         7: aload 1 /* value */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.AbstractConstant
            ifeq 10
         8: .line 492
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* valueObject */
         9: .line 493
            goto 17
      StackMap locals:
      StackMap stack:
        10: aload 1 /* value */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.globals.GlobalValueSymbol
            ifeq 13
        11: .line 494
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* valueObject */
        12: .line 495
            goto 17
      StackMap locals:
      StackMap stack:
        13: aload 1 /* value */
            instanceof com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            ifeq 16
        14: .line 496
            aload 1 /* value */
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getFrameIdentifier:()I
            istore 7 /* valueFrameIdentifier */
        15: .line 497
            goto 17
        16: .line 498
      StackMap locals:
      StackMap stack:
            return
        17: .line 501
      StackMap locals:
      StackMap stack:
            aload 8 /* valueObject */
            ifnonnull 19
            iload 7 /* valueFrameIdentifier */
            iconst_m1
            if_icmpne 19
        18: .line 502
            return
        19: .line 505
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 9 /* partIndex */
        start local 9 // int partIndex
        20: .line 506
            aconst_null
            astore 10 /* clearParts */
        start local 10 // int[] clearParts
        21: .line 508
            aload 3 /* expression */
            invokestatic com.oracle.truffle.llvm.parser.metadata.debuginfo.ValueFragment.describesFragment:(Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;)Z
            ifeq 28
        22: .line 509
            aload 3 /* expression */
            invokestatic com.oracle.truffle.llvm.parser.metadata.debuginfo.ValueFragment.parse:(Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;)Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/ValueFragment;
            astore 11 /* fragment */
        start local 11 // com.oracle.truffle.llvm.parser.metadata.debuginfo.ValueFragment fragment
        23: .line 510
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getFragments:()Ljava/util/List;
            astore 12 /* siblings */
        start local 12 // java.util.List siblings
        24: .line 511
            new java.util.ArrayList
            dup
            aload 12 /* siblings */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 13 /* clearSiblings */
        start local 13 // java.util.List clearSiblings
        25: .line 512
            aload 11 /* fragment */
            aload 12 /* siblings */
            aload 13 /* clearSiblings */
            invokestatic com.oracle.truffle.llvm.parser.metadata.debuginfo.ValueFragment.getPartIndex:(Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/ValueFragment;Ljava/util/List;Ljava/util/List;)I
            istore 9 /* partIndex */
        26: .line 513
            aload 13 /* clearSiblings */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 28
        27: .line 514
            aload 13 /* clearSiblings */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)I
                  java/lang/Integer.intValue()I (5)
                  (Ljava/lang/Integer;)I
            invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
            invokeinterface java.util.stream.IntStream.toArray:()[I
            astore 10 /* clearParts */
        end local 13 // java.util.List clearSiblings
        end local 12 // java.util.List siblings
        end local 11 // com.oracle.truffle.llvm.parser.metadata.debuginfo.ValueFragment fragment
        28: .line 518
      StackMap locals: int int[]
      StackMap stack:
            iload 9 /* partIndex */
            ifge 43
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.hasFragments:()Z
            ifeq 43
        29: .line 519
            aload 2 /* variable */
            iconst_0
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getSymbol:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;
            invokevirtual com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceSymbol.getType:()Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceType;
            invokevirtual com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceType.getSize:()J
            l2i
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getFragmentIndex:(II)I
            istore 9 /* partIndex */
        30: .line 520
            iload 9 /* partIndex */
            ifge 32
        31: .line 521
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            ldc "Cannot find index of value fragment!"
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 524
      StackMap locals:
      StackMap stack:
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getFragments:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            newarray 10
            astore 10 /* clearParts */
        33: .line 525
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        34: goto 37
        35: .line 526
      StackMap locals: int
      StackMap stack:
            aload 10 /* clearParts */
            iload 11 /* i */
            iload 11 /* i */
            iastore
        36: .line 525
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 11 /* i */
            iload 9 /* partIndex */
            if_icmplt 35
        end local 11 // int i
        38: .line 528
            iload 9 /* partIndex */
            istore 11 /* i */
        start local 11 // int i
        39: goto 42
        40: .line 529
      StackMap locals:
      StackMap stack:
            aload 10 /* clearParts */
            iload 11 /* i */
            iload 11 /* i */
            iconst_1
            iadd
            iastore
        41: .line 528
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 11 /* i */
            aload 10 /* clearParts */
            arraylength
            if_icmplt 40
        end local 11 // int i
        43: .line 533
      StackMap locals:
      StackMap stack:
            iload 6 /* isDeclaration */
            ifne 44
            aload 3 /* expression */
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getSourceType:()Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceType;
            aload 1 /* value */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.mustDereferenceValue:(Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceType;Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Z
            ifne 44
            iconst_0
            goto 45
      StackMap locals:
      StackMap stack:
        44: iconst_1
      StackMap locals:
      StackMap stack: int
        45: istore 11 /* mustDereference */
        start local 11 // boolean mustDereference
        46: .line 534
            aload 10 /* clearParts */
            ifnull 48
            aload 10 /* clearParts */
            arraylength
            ifeq 48
        47: .line 535
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            new com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$ClearLocalVariableParts
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getSymbol:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;
            aload 10 /* clearParts */
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$ClearLocalVariableParts.<init>:(ILcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;[I)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        48: .line 538
      StackMap locals: int
      StackMap stack:
            iload 9 /* partIndex */
            ifge 51
            aload 10 /* clearParts */
            ifnonnull 51
        49: .line 539
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            new com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SimpleLocalVariable
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iload 11 /* mustDereference */
            aload 8 /* valueObject */
            iload 7 /* valueFrameIdentifier */
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getSymbol:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SimpleLocalVariable.<init>:(IZLjava/lang/Object;ILcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        50: .line 540
            goto 53
      StackMap locals:
      StackMap stack:
        51: iload 9 /* partIndex */
            iflt 53
        52: .line 541
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.debugInfo:Ljava/util/ArrayList;
            new com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SetLocalVariablePart
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iload 11 /* mustDereference */
            aload 8 /* valueObject */
            iload 7 /* valueFrameIdentifier */
            aload 2 /* variable */
            invokevirtual com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable.getSymbol:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;
            iload 9 /* partIndex */
            invokespecial com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SetLocalVariablePart.<init>:(IZLjava/lang/Object;ILcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceSymbol;I)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        53: .line 543
      StackMap locals:
      StackMap stack:
            return
        end local 11 // boolean mustDereference
        end local 10 // int[] clearParts
        end local 9 // int partIndex
        end local 8 // java.lang.Object valueObject
        end local 7 // int valueFrameIdentifier
        end local 6 // boolean isDeclaration
        end local 4 // long index
        end local 3 // com.oracle.truffle.llvm.parser.metadata.MDExpression expression
        end local 2 // com.oracle.truffle.llvm.parser.metadata.debuginfo.SourceVariable variable
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   54     0                  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   54     1                 value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0   54     2              variable  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;
            0   54     3            expression  Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;
            0   54     4                 index  J
            0   54     6         isDeclaration  Z
            3   54     7  valueFrameIdentifier  I
            4   54     8           valueObject  Ljava/lang/Object;
           20   54     9             partIndex  I
           21   54    10            clearParts  [I
           23   28    11              fragment  Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/ValueFragment;
           24   28    12              siblings  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/ValueFragment;>;
           25   28    13         clearSiblings  Ljava/util/List<Ljava/lang/Integer;>;
           34   38    11                     i  I
           39   43    11                     i  I
           46   54    11       mustDereference  Z
    MethodParameters:
               Name  Flags
      value          
      variable       
      expression     
      index          
      isDeclaration  

  private static boolean mustDereferenceValue(com.oracle.truffle.llvm.parser.metadata.MDExpression, com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceType, com.oracle.truffle.llvm.parser.model.SymbolImpl);
    descriptor: (Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceType;Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.metadata.MDExpression expr
        start local 1 // com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceType type
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
         0: .line 548
            aload 0 /* expr */
            invokestatic com.oracle.truffle.llvm.parser.metadata.DwarfOpcode.isDeref:(Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;)Z
            ifne 2
            aload 1 /* type */
            ifnull 1
            aload 1 /* type */
            invokevirtual com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceType.isPointer:()Z
            ifne 1
            aload 2 /* value */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.AllocateInstruction
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 1 // com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceType type
        end local 0 // com.oracle.truffle.llvm.parser.metadata.MDExpression expr
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   expr  Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;
            0    3     1   type  Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceType;
            0    3     2  value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
    MethodParameters:
       Name  Flags
      expr   
      type   
      value  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DbgDeclareInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction inst
         0: .line 553
            aload 0 /* this */
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction.getVariable:()Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction.getExpression:()Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;
            lconst_0
            iconst_1
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleDebugIntrinsic:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;JZ)V
         1: .line 554
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleNullerInfo:()V
         2: .line 555
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgDeclareInstruction inst
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1  inst  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DbgDeclareInstruction;
    MethodParameters:
      Name  Flags
      inst  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DbgValueInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction inst
         0: .line 559
            aload 0 /* this */
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction.getVariable:()Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction.getExpression:()Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;
            aload 1 /* inst */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction.getIndex:()J
            iconst_0
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleDebugIntrinsic:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/metadata/debuginfo/SourceVariable;Lcom/oracle/truffle/llvm/parser/metadata/MDExpression;JZ)V
         1: .line 560
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleNullerInfo:()V
         2: .line 561
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DbgValueInstruction inst
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1  inst  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DbgValueInstruction;
    MethodParameters:
      Name  Flags
      inst  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.DebugTrapInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DebugTrapInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DebugTrapInstruction inst
         0: .line 565
            aload 0 /* this */
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createDebugTrap:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            aload 1 /* inst */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addStatement:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 566
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.DebugTrapInstruction inst
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1  inst  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/DebugTrapInstruction;
    MethodParameters:
      Name  Flags
      inst  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VoidCallInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction call
         0: .line 570
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArgumentCount:()I
            iconst_1
            iadd
            istore 2 /* argumentCount */
        start local 2 // int argumentCount
         1: .line 571
            iload 2 /* argumentCount */
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 3 /* argNodes */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
         2: .line 572
            new com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder
            dup
            iload 2 /* argumentCount */
            invokespecial com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.<init>:(I)V
            astore 4 /* argTypes */
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
         3: .line 574
            iconst_0
            istore 5 /* argIndex */
        start local 5 // int argIndex
         4: .line 575
            aload 3 /* argNodes */
            iload 5 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetStackFromFrame:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         5: .line 576
            aload 4 /* argTypes */
            iload 5 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aconst_null
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
         6: .line 577
            iinc 5 /* argIndex */ 1
         7: .line 579
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getCallTarget:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 6 /* target */
        start local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
         8: .line 581
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArgumentCount:()I
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         9: goto 16
        10: .line 582
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl int
      StackMap stack:
            aload 3 /* argNodes */
            iload 5 /* argIndex */
            iload 7 /* i */
            iadd
            aload 0 /* this */
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iload 7 /* i */
            aload 6 /* target */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArguments:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        11: .line 583
            aload 4 /* argTypes */
            iload 5 /* argIndex */
            iload 7 /* i */
            iadd
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        12: .line 584
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getParameterAttributesGroup:(I)Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            astore 8 /* paramAttr */
        start local 8 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        13: .line 585
            aload 8 /* paramAttr */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.isByValue:(Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Z
            ifeq 15
        14: .line 586
            aload 3 /* argNodes */
            iload 5 /* argIndex */
            iload 7 /* i */
            iadd
            aload 0 /* this */
            aload 3 /* argNodes */
            iload 5 /* argIndex */
            iload 7 /* i */
            iadd
            aaload
            aload 4 /* argTypes */
            iload 5 /* argIndex */
            iload 7 /* i */
            iadd
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.get:(I)Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 8 /* paramAttr */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.capsuleAddressByValue:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        end local 8 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        15: .line 581
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            ifge 10
        end local 7 // int i
        17: .line 590
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 6 /* target */
            aload 3 /* argNodes */
            aload 4 /* argTypes */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.argCount:I
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLLVMBuiltin:(Lcom/oracle/truffle/llvm/runtime/types/symbols/Symbol;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;I)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* result */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        18: .line 591
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 8 /* intent */
        start local 8 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intent
        19: .line 592
            aload 7 /* result */
            ifnonnull 29
        20: .line 593
            aload 6 /* target */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant
            ifeq 25
        21: .line 594
            aload 6 /* target */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant
            astore 9 /* inlineAsmConstant */
        start local 9 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        22: .line 595
            aload 0 /* this */
            aload 9 /* inlineAsmConstant */
            aload 3 /* argNodes */
            aload 4 /* argTypes */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createInlineAssemblerNode:(Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* result */
        23: .line 596
            aload 0 /* this */
            aload 7 /* result */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.assignSourceLocation:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
        end local 9 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        24: .line 597
            goto 29
        25: .line 598
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy
      StackMap stack:
            aload 0 /* this */
            aload 6 /* target */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getArguments:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 9 /* function */
        start local 9 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        26: .line 599
            new com.oracle.truffle.llvm.runtime.types.FunctionType
            dup
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 4 /* argTypes */
            iconst_0
            invokespecial com.oracle.truffle.llvm.runtime.types.FunctionType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Z)V
            astore 10 /* functionType */
        start local 10 // com.oracle.truffle.llvm.runtime.types.FunctionType functionType
        27: .line 600
            aload 9 /* function */
            aload 3 /* argNodes */
            aload 10 /* functionType */
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createFunctionCall:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* result */
        28: .line 605
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 8 /* intent */
        end local 10 // com.oracle.truffle.llvm.runtime.types.FunctionType functionType
        end local 9 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        29: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* result */
            aload 1 /* call */
            aload 8 /* intent */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addStatement:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        30: .line 610
            return
        end local 8 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intent
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 6 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
        end local 5 // int argIndex
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
        end local 2 // int argumentCount
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidCallInstruction call
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   31     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   31     1               call  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VoidCallInstruction;
            1   31     2      argumentCount  I
            2   31     3           argNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            3   31     4           argTypes  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;
            4   31     5           argIndex  I
            8   31     6             target  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            9   17     7                  i  I
           13   15     8          paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
           18   31     7             result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           19   31     8             intent  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
           22   24     9  inlineAsmConstant  Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;
           26   29     9           function  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           27   29    10       functionType  Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
    MethodParameters:
      Name  Flags
      call  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InvokeInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=16, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction call
         0: .line 614
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 2 /* targetType */
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type targetType
         1: .line 615
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getArgumentCount:()I
            aload 2 /* targetType */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getArgumentCount:(ILcom/oracle/truffle/llvm/runtime/types/Type;)I
            istore 3 /* argumentCount */
        start local 3 // int argumentCount
         2: .line 616
            iload 3 /* argumentCount */
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 4 /* argNodes */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
         3: .line 617
            new com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder
            dup
            iload 3 /* argumentCount */
            invokespecial com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.<init>:(I)V
            astore 5 /* argTypes */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
         4: .line 618
            iconst_0
            istore 6 /* argIndex */
        start local 6 // int argIndex
         5: .line 619
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetStackFromFrame:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         6: .line 620
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aconst_null
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
         7: .line 621
            iinc 6 /* argIndex */ 1
         8: .line 622
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getCallTarget:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
         9: .line 623
            aload 2 /* targetType */
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifeq 13
        10: .line 624
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aload 2 /* targetType */
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        11: .line 625
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* targetType */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.uniquesRegion:Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetUniqueStackSpace:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        12: .line 626
            iinc 6 /* argIndex */ 1
        13: .line 628
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl
      StackMap stack:
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getArgumentCount:()I
            iconst_1
            isub
            istore 8 /* i */
        start local 8 // int i
        14: goto 21
        15: .line 629
      StackMap locals: int
      StackMap stack:
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 0 /* this */
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iload 8 /* i */
            aload 7 /* target */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getArguments:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        16: .line 630
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        17: .line 631
            aload 1 /* call */
            iload 8 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.getParameterAttributesGroup:(I)Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            astore 9 /* paramAttr */
        start local 9 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        18: .line 632
            aload 9 /* paramAttr */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.isByValue:(Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Z
            ifeq 20
        19: .line 633
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aload 0 /* this */
            aload 4 /* argNodes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            aaload
            aload 5 /* argTypes */
            iload 6 /* argIndex */
            iload 8 /* i */
            iadd
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.get:(I)Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 9 /* paramAttr */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.capsuleAddressByValue:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        end local 9 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        20: .line 628
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ -1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            ifge 15
        end local 8 // int i
        22: .line 637
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.normalSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 8 /* regularIndex */
        start local 8 // int regularIndex
        23: .line 638
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.unwindSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 9 /* unwindIndex */
        start local 9 // int unwindIndex
        24: .line 640
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* normalTo */
        start local 10 // java.util.ArrayList normalTo
        25: .line 641
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* unwindTo */
        start local 11 // java.util.ArrayList unwindTo
        26: .line 642
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            ifnull 34
        27: .line 643
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 33
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl int int java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
        28: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 12 /* phi */
        start local 12 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        29: .line 644
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction.normalSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            aload 12 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getBlock:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            if_acmpne 32
        30: .line 645
            aload 10 /* normalTo */
            aload 12 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        31: .line 646
            goto 33
        32: .line 647
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl int int java.util.ArrayList java.util.ArrayList com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi java.util.Iterator
      StackMap stack:
            aload 11 /* unwindTo */
            aload 12 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        33: .line 643
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl int int java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        34: .line 651
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int com.oracle.truffle.llvm.parser.model.SymbolImpl int int java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            aload 10 /* normalTo */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:(Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 12 /* normalPhi */
        start local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode normalPhi
        35: .line 652
            aload 0 /* this */
            aload 11 /* unwindTo */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:(Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 13 /* unwindPhi */
        start local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode unwindPhi
        36: .line 655
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 7 /* target */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 14 /* function */
        start local 14 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        37: .line 656
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* targetType */
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 1 /* call */
            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;
            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;
            aload 14 /* function */
            aload 4 /* argNodes */
        38: .line 657
            new com.oracle.truffle.llvm.runtime.types.FunctionType
            dup
            aload 2 /* targetType */
            aload 5 /* argTypes */
            iconst_0
            invokespecial com.oracle.truffle.llvm.runtime.types.FunctionType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Z)V
        39: .line 658
            iload 8 /* regularIndex */
            iload 9 /* unwindIndex */
            aload 12 /* normalPhi */
            aload 13 /* unwindPhi */
        40: .line 656
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFunctionInvoke:(Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/FunctionType;IILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 15 /* result */
        start local 15 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode result
        41: .line 660
            aload 0 /* this */
            aload 15 /* result */
            aload 1 /* call */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        42: .line 661
            return
        end local 15 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode result
        end local 14 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        end local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode unwindPhi
        end local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode normalPhi
        end local 11 // java.util.ArrayList unwindTo
        end local 10 // java.util.ArrayList normalTo
        end local 9 // int unwindIndex
        end local 8 // int regularIndex
        end local 7 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
        end local 6 // int argIndex
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argTypes
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
        end local 3 // int argumentCount
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type targetType
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction call
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   43     0           this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   43     1           call  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InvokeInstruction;
            1   43     2     targetType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            2   43     3  argumentCount  I
            3   43     4       argNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4   43     5       argTypes  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;
            5   43     6       argIndex  I
            9   43     7         target  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
           14   22     8              i  I
           18   20     9      paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
           23   43     8   regularIndex  I
           24   43     9    unwindIndex  I
           25   43    10       normalTo  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           26   43    11       unwindTo  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           29   33    12            phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           35   43    12      normalPhi  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           36   43    13      unwindPhi  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           37   43    14       function  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           41   43    15         result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
      Name  Flags
      call  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VoidInvokeInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=15, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction call
         0: .line 665
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getCallTarget:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* target */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
         1: .line 667
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getArgumentCount:()I
            iconst_1
            iadd
            istore 3 /* argumentCount */
        start local 3 // int argumentCount
         2: .line 668
            iload 3 /* argumentCount */
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 4 /* args */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] args
         3: .line 669
            new com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder
            dup
            iload 3 /* argumentCount */
            invokespecial com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.<init>:(I)V
            astore 5 /* argsType */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argsType
         4: .line 671
            iconst_0
            istore 6 /* argIndex */
        start local 6 // int argIndex
         5: .line 672
            aload 4 /* args */
            iload 6 /* argIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetStackFromFrame:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
         6: .line 673
            aload 5 /* argsType */
            iload 6 /* argIndex */
            new com.oracle.truffle.llvm.runtime.types.PointerType
            dup
            aconst_null
            invokespecial com.oracle.truffle.llvm.runtime.types.PointerType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;)V
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
         7: .line 674
            iinc 6 /* argIndex */ 1
         8: .line 676
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getArgumentCount:()I
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         9: goto 16
        10: .line 677
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int int
      StackMap stack:
            aload 4 /* args */
            iload 6 /* argIndex */
            iload 7 /* i */
            iadd
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        11: .line 678
            aload 5 /* argsType */
            iload 6 /* argIndex */
            iload 7 /* i */
            iadd
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getArgument:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.set:(ILcom/oracle/truffle/llvm/runtime/types/Type;)V
        12: .line 679
            aload 1 /* call */
            iload 7 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getParameterAttributesGroup:(I)Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            astore 8 /* paramAttr */
        start local 8 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        13: .line 680
            aload 8 /* paramAttr */
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.isByValue:(Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Z
            ifeq 15
        14: .line 681
            aload 4 /* args */
            iload 6 /* argIndex */
            iload 7 /* i */
            iadd
            aload 0 /* this */
            aload 4 /* args */
            iload 6 /* argIndex */
            iload 7 /* i */
            iadd
            aaload
            aload 5 /* argsType */
            iload 6 /* argIndex */
            iload 7 /* i */
            iadd
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder.get:(I)Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 8 /* paramAttr */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.capsuleAddressByValue:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        end local 8 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        15: .line 676
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            ifge 10
        end local 7 // int i
        17: .line 685
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.normalSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 7 /* regularIndex */
        start local 7 // int regularIndex
        18: .line 686
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.unwindSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 8 /* unwindIndex */
        start local 8 // int unwindIndex
        19: .line 688
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* normalTo */
        start local 9 // java.util.ArrayList normalTo
        20: .line 689
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* unwindTo */
        start local 10 // java.util.ArrayList unwindTo
        21: .line 690
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            ifnull 29
        22: .line 691
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 28
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int int int java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
        23: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 11 /* phi */
        start local 11 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        24: .line 692
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.normalSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            aload 11 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getBlock:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            if_acmpne 27
        25: .line 693
            aload 9 /* normalTo */
            aload 11 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        26: .line 694
            goto 28
        27: .line 695
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int int int java.util.ArrayList java.util.ArrayList com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi java.util.Iterator
      StackMap stack:
            aload 10 /* unwindTo */
            aload 11 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        28: .line 691
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int int int java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        29: .line 699
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder int int int java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            aload 9 /* normalTo */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:(Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 11 /* normalPhi */
        start local 11 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode normalPhi
        30: .line 700
            aload 0 /* this */
            aload 10 /* unwindTo */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:(Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 12 /* unwindPhi */
        start local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode unwindPhi
        31: .line 703
            aload 0 /* this */
            aload 2 /* target */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getArguments:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 13 /* function */
        start local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        32: .line 704
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aconst_null
            aload 13 /* function */
            aload 4 /* args */
            new com.oracle.truffle.llvm.runtime.types.FunctionType
            dup
            aload 1 /* call */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 5 /* argsType */
            iconst_0
            invokespecial com.oracle.truffle.llvm.runtime.types.FunctionType.<init>:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Z)V
        33: .line 705
            iload 7 /* regularIndex */
            iload 8 /* unwindIndex */
            aload 11 /* normalPhi */
            aload 12 /* unwindPhi */
        34: .line 704
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFunctionInvoke:(Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/FunctionType;IILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 14 /* result */
        start local 14 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode result
        35: .line 707
            aload 0 /* this */
            aload 14 /* result */
            aload 1 /* call */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        36: .line 708
            return
        end local 14 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode result
        end local 13 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode function
        end local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode unwindPhi
        end local 11 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode normalPhi
        end local 10 // java.util.ArrayList unwindTo
        end local 9 // java.util.ArrayList normalTo
        end local 8 // int unwindIndex
        end local 7 // int regularIndex
        end local 6 // int argIndex
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argsType
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] args
        end local 3 // int argumentCount
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl target
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.VoidInvokeInstruction call
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   37     1           call  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/VoidInvokeInstruction;
            1   37     2         target  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2   37     3  argumentCount  I
            3   37     4           args  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4   37     5       argsType  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;
            5   37     6       argIndex  I
            9   17     7              i  I
           13   15     8      paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
           18   37     7   regularIndex  I
           19   37     8    unwindIndex  I
           20   37     9       normalTo  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           21   37    10       unwindTo  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           24   28    11            phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           30   37    11      normalPhi  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           31   37    12      unwindPhi  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
           32   37    13       function  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           35   37    14         result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
      Name  Flags
      call  

  private static int getArgumentCount(int, com.oracle.truffle.llvm.runtime.types.Type);
    descriptor: (ILcom/oracle/truffle/llvm/runtime/types/Type;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // int argumentCount
        start local 1 // com.oracle.truffle.llvm.runtime.types.Type targetType
         0: .line 711
            iload 0 /* argumentCount */
            istore 2 /* count */
        start local 2 // int count
         1: .line 712
            aload 1 /* targetType */
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifeq 3
         2: .line 713
            iinc 2 /* count */ 1
         3: .line 715
      StackMap locals: int
      StackMap stack:
            iinc 2 /* count */ 1
         4: .line 716
            iload 2 /* count */
            ireturn
        end local 2 // int count
        end local 1 // com.oracle.truffle.llvm.runtime.types.Type targetType
        end local 0 // int argumentCount
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0  argumentCount  I
            0    5     1     targetType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            1    5     2          count  I
    MethodParameters:
               Name  Flags
      argumentCount  
      targetType     final

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CastInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction cast
         0: .line 721
            aload 0 /* this */
            aload 1 /* cast */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* fromNode */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode fromNode
         1: .line 722
            aload 1 /* cast */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 3 /* from */
        start local 3 // com.oracle.truffle.llvm.runtime.types.Type from
         2: .line 723
            aload 1 /* cast */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 4 /* to */
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type to
         3: .line 725
            aload 2 /* fromNode */
            aload 4 /* to */
            aload 3 /* from */
            aload 1 /* cast */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction.getOperator:()Lcom/oracle/truffle/llvm/parser/model/enums/CastOperator;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokestatic com.oracle.truffle.llvm.parser.util.LLVMBitcodeTypeHelper.createCast:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/enums/CastOperator;Lcom/oracle/truffle/llvm/runtime/NodeFactory;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* result */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         4: .line 726
            aload 0 /* this */
            aload 5 /* result */
            aload 1 /* cast */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         5: .line 727
            return
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type to
        end local 3 // com.oracle.truffle.llvm.runtime.types.Type from
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode fromNode
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CastInstruction cast
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    6     1      cast  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CastInstruction;
            1    6     2  fromNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    6     3      from  Lcom/oracle/truffle/llvm/runtime/types/Type;
            3    6     4        to  Lcom/oracle/truffle/llvm/runtime/types/Type;
            4    6     5    result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      cast  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CompareInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction compare
         0: .line 731
            aload 1 /* compare */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction.getRHS:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* rhs */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl rhs
         1: .line 732
            aload 1 /* compare */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction.getLHS:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* lhs */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl lhs
         2: .line 733
            aload 0 /* this */
            aload 2 /* rhs */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* lhs */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* rhsNode */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode rhsNode
         3: .line 734
            aload 0 /* this */
            aload 3 /* lhs */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* rhs */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* lhsNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode lhsNode
         4: .line 736
            aload 1 /* compare */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction.getOperator:()Lcom/oracle/truffle/llvm/runtime/CompareOperator;
            aload 3 /* lhs */
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 5 /* lhsNode */
            aload 4 /* rhsNode */
            invokestatic com.oracle.truffle.llvm.runtime.CommonNodeFactory.createComparison:(Lcom/oracle/truffle/llvm/runtime/CompareOperator;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* result */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         5: .line 738
            aload 0 /* this */
            aload 6 /* result */
            aload 1 /* compare */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         6: .line 739
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode lhsNode
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode rhsNode
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl lhs
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl rhs
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.CompareInstruction compare
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1  compare  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/CompareInstruction;
            1    7     2      rhs  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    7     3      lhs  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    7     4  rhsNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    7     5  lhsNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    7     6   result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
         Name  Flags
      compare  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ConditionalBranchInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction branch
         0: .line 743
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* conditionNode */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode conditionNode
         1: .line 744
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction.getTrueSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 3 /* trueIndex */
        start local 3 // int trueIndex
         2: .line 745
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction.getFalseSuccessor:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            istore 4 /* falseIndex */
        start local 4 // int falseIndex
         3: .line 747
            aload 0 /* this */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 5 /* phiWriteNodes */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] phiWriteNodes
         4: .line 748
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            iload 3 /* trueIndex */
            iload 4 /* falseIndex */
            aload 2 /* conditionNode */
            aload 5 /* phiWriteNodes */
            iconst_0
            aaload
            aload 5 /* phiWriteNodes */
            iconst_1
            aaload
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createConditionalBranch:(IILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 6 /* node */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         5: .line 750
            aload 0 /* this */
            aload 6 /* node */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         6: .line 751
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] phiWriteNodes
        end local 4 // int falseIndex
        end local 3 // int trueIndex
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode conditionNode
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ConditionalBranchInstruction branch
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1         branch  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ConditionalBranchInstruction;
            1    7     2  conditionNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    7     3      trueIndex  I
            3    7     4     falseIndex  I
            4    7     5  phiWriteNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            5    7     6           node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
        Name  Flags
      branch  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ExtractElementInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction extract
         0: .line 755
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction.getIndex:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* index */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl index
         1: .line 756
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction.getVector:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* vector */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl vector
         2: .line 757
            aload 0 /* this */
            aload 2 /* index */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* vector */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* indexNode */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode indexNode
         3: .line 758
            aload 0 /* this */
            aload 3 /* vector */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* index */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* vectorNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vectorNode
         4: .line 760
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 5 /* vectorNode */
            aload 4 /* indexNode */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createExtractElement:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* result */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         5: .line 762
            aload 0 /* this */
            aload 6 /* result */
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         6: .line 763
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vectorNode
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode indexNode
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl vector
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl index
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractElementInstruction extract
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1     extract  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ExtractElementInstruction;
            1    7     2       index  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    7     3      vector  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    7     4   indexNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    7     5  vectorNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    7     6      result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
         Name  Flags
      extract  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ExtractValueInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction extract
         0: .line 767
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.ArrayType
            ifne 2
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifne 2
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.PointerType
            ifne 2
         1: .line 768
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            ldc "'extractvalue' can only extract elements of arrays and structs!"
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* baseAddress */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode baseAddress
         3: .line 771
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 3 /* baseType */
        start local 3 // com.oracle.truffle.llvm.runtime.types.Type baseType
         4: .line 772
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getIndex:()I
            istore 4 /* targetIndex */
        start local 4 // int targetIndex
         5: .line 773
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 5 /* resultType */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type resultType
         6: .line 775
            aload 2 /* baseAddress */
            astore 6 /* targetAddress */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode targetAddress
         7: .line 777
            aload 3 /* baseType */
            checkcast com.oracle.truffle.llvm.runtime.types.AggregateType
            astore 7 /* aggregateType */
        start local 7 // com.oracle.truffle.llvm.runtime.types.AggregateType aggregateType
         8: .line 781
            aload 7 /* aggregateType */
            iload 4 /* targetIndex */
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.AggregateType.getOffsetOf:(JLcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)J
            lstore 9 /* offset */
        start local 9 // long offset
         9: .line 783
            aload 7 /* aggregateType */
            iload 4 /* targetIndex */
            i2l
            invokevirtual com.oracle.truffle.llvm.runtime.types.AggregateType.getElementType:(J)Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 11 /* targetType */
        start local 11 // com.oracle.truffle.llvm.runtime.types.Type targetType
        10: .line 784
            aload 11 /* targetType */
            ifnull 12
            aload 11 /* targetType */
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifeq 11
            aload 11 /* targetType */
            checkcast com.oracle.truffle.llvm.runtime.types.StructureType
            invokevirtual com.oracle.truffle.llvm.runtime.types.StructureType.isPacked:()Z
            ifne 12
        11: .line 785
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.AggregateType top long com.oracle.truffle.llvm.runtime.types.Type
      StackMap stack:
            lload 9 /* offset */
            lload 9 /* offset */
            aload 11 /* targetType */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokestatic com.oracle.truffle.llvm.runtime.types.Type.getPadding:(JLcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)I
            i2l
            invokestatic com.oracle.truffle.llvm.runtime.types.Type.addUnsignedExact:(JJ)J
            lstore 9 /* offset */
        12: .line 788
      StackMap locals:
      StackMap stack:
            lload 9 /* offset */
            lconst_0
            lcmp
            ifeq 15
        13: .line 789
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType.I32: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;
            astore 12 /* oneLiteralNode */
        start local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode oneLiteralNode
        14: .line 790
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            lload 9 /* offset */
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 6 /* targetAddress */
            aload 12 /* oneLiteralNode */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createTypedElementPointer:(JLcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* targetAddress */
        end local 12 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode oneLiteralNode
        15: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 5 /* resultType */
            aload 6 /* targetAddress */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createExtractValue:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        end local 11 // com.oracle.truffle.llvm.runtime.types.Type targetType
        end local 9 // long offset
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        16: .line 794
            goto 19
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.AggregateType
      StackMap stack: com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
        17: astore 9 /* e */
        start local 9 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        18: .line 795
            aload 9 /* e */
            invokestatic com.oracle.truffle.llvm.runtime.types.Type.handleOverflowExpression:(Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        end local 9 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        19: .line 797
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* extract */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
        20: .line 798
            return
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 7 // com.oracle.truffle.llvm.runtime.types.AggregateType aggregateType
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode targetAddress
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type resultType
        end local 4 // int targetIndex
        end local 3 // com.oracle.truffle.llvm.runtime.types.Type baseType
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode baseAddress
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ExtractValueInstruction extract
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   21     1         extract  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ExtractValueInstruction;
            3   21     2     baseAddress  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4   21     3        baseType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            5   21     4     targetIndex  I
            6   21     5      resultType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            7   21     6   targetAddress  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            8   21     7   aggregateType  Lcom/oracle/truffle/llvm/runtime/types/AggregateType;
           16   17     8          result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           19   21     8          result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            9   16     9          offset  J
           10   16    11      targetType  Lcom/oracle/truffle/llvm/runtime/types/Type;
           14   15    12  oneLiteralNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           18   19     9               e  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;
      Exception table:
        from    to  target  type
           8    16      17  Class com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
    MethodParameters:
         Name  Flags
      extract  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.GetElementPointerInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/GetElementPointerInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.GetElementPointerInstruction gep
         0: .line 802
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* gep */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.GetElementPointerInstruction.getBasePointer:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            aload 1 /* gep */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.GetElementPointerInstruction.getIndices:()[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            aload 0 /* this */
            invokedynamic resolve(Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;)Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver$OptimizedResolver;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
                  com/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor.lambda$2(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode; (7)
                  (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolveElementPointer:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver$OptimizedResolver;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aload 1 /* gep */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         1: .line 803
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.GetElementPointerInstruction gep
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1   gep  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/GetElementPointerInstruction;
    MethodParameters:
      Name  Flags
      gep   

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/IndirectBranchInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction branch
         0: .line 807
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getSuccessorCount:()I
            iconst_1
            if_icmple 11
         1: .line 808
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getSuccessorCount:()I
            newarray 10
            astore 2 /* labelTargets */
        start local 2 // int[] labelTargets
         2: .line 809
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 810
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* labelTargets */
            iload 3 /* i */
            aload 1 /* branch */
            iload 3 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getSuccessor:(I)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            iastore
         5: .line 809
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* labelTargets */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 812
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getAddress:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* value */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode value
         8: .line 814
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 3 /* value */
            aload 2 /* labelTargets */
            aload 0 /* this */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createIndirectBranch:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[I[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 4 /* node */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         9: .line 815
            aload 0 /* this */
            aload 4 /* node */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode value
        end local 2 // int[] labelTargets
        10: .line 816
            goto 14
        11: .line 817
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 12
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getSuccessorCount:()I
            iconst_1
            if_icmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 818
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* branch */
            iconst_0
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction.getSuccessor:(I)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aload 0 /* this */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            iconst_0
            aaload
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createUnconditionalBranch:(ILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* node */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        13: .line 819
            aload 0 /* this */
            aload 2 /* node */
            aload 1 /* branch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        14: .line 821
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.IndirectBranchInstruction branch
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   15     1        branch  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/IndirectBranchInstruction;
            2   10     2  labelTargets  [I
            3    7     3             i  I
            8   10     3         value  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            9   10     4          node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
           13   14     2          node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
        Name  Flags
      branch  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InsertElementInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction insert
         0: .line 825
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction.getIndex:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* index */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl index
         1: .line 826
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* value */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
         2: .line 827
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction.getVector:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 4 /* vector */
        start local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl vector
         3: .line 828
            aload 0 /* this */
            aload 2 /* index */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* index */
            aastore
            dup
            iconst_1
            aload 4 /* vector */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* indexNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode indexNode
         4: .line 829
            aload 0 /* this */
            aload 3 /* value */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* value */
            aastore
            dup
            iconst_1
            aload 4 /* vector */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* elementNode */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode elementNode
         5: .line 830
            aload 0 /* this */
            aload 4 /* vector */
            iconst_2
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* value */
            aastore
            dup
            iconst_1
            aload 2 /* index */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* vectorNode */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vectorNode
         6: .line 832
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 7 /* vectorNode */
            aload 6 /* elementNode */
            aload 5 /* indexNode */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createInsertElement:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         7: .line 834
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         8: .line 835
            return
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vectorNode
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode elementNode
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode indexNode
        end local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl vector
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl index
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertElementInstruction insert
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    9     1       insert  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InsertElementInstruction;
            1    9     2        index  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    9     3        value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    9     4       vector  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            4    9     5    indexNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    9     6  elementNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            6    9     7   vectorNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            7    9     8       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
        Name  Flags
      insert  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InsertValueInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction insert
         0: .line 839
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.StructureType
            ifne 2
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            instanceof com.oracle.truffle.llvm.runtime.types.ArrayType
            ifne 2
         1: .line 840
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            ldc "'insertvalue' can only insert values into arrays and structs!"
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 842
      StackMap locals:
      StackMap stack:
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            checkcast com.oracle.truffle.llvm.runtime.types.AggregateType
            astore 2 /* sourceType */
        start local 2 // com.oracle.truffle.llvm.runtime.types.AggregateType sourceType
         3: .line 843
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getAggregate:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* sourceAggregate */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode sourceAggregate
         4: .line 844
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* valueToInsert */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueToInsert
         5: .line 845
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 5 /* valueType */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type valueType
         6: .line 846
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction.getIndex:()I
            istore 6 /* targetIndex */
        start local 6 // int targetIndex
         7: .line 848
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* sourceType */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.uniquesRegion:Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createGetUniqueStackSpace:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack$UniquesRegion;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* resultAggregate */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode resultAggregate
         8: .line 852
            aload 2 /* sourceType */
            iload 6 /* targetIndex */
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.AggregateType.getOffsetOf:(JLcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)J
            lstore 9 /* offset */
        start local 9 // long offset
         9: .line 853
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 7 /* resultAggregate */
            aload 3 /* sourceAggregate */
        10: .line 854
            aload 2 /* sourceType */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.AggregateType.getSize:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)J
            lload 9 /* offset */
            aload 4 /* valueToInsert */
            aload 5 /* valueType */
        11: .line 853
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createInsertValue:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;JJLcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        end local 9 // long offset
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        12: .line 856
            goto 15
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction com.oracle.truffle.llvm.runtime.types.AggregateType com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type int com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
      StackMap stack: com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
        13: astore 9 /* e */
        start local 9 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        14: .line 858
            aload 9 /* e */
            invokestatic com.oracle.truffle.llvm.runtime.types.Type.handleOverflowExpression:(Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 8 /* result */
        end local 9 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        15: .line 860
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* insert */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
        16: .line 861
            return
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode resultAggregate
        end local 6 // int targetIndex
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type valueType
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueToInsert
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode sourceAggregate
        end local 2 // com.oracle.truffle.llvm.runtime.types.AggregateType sourceType
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.InsertValueInstruction insert
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   17     1           insert  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/InsertValueInstruction;
            3   17     2       sourceType  Lcom/oracle/truffle/llvm/runtime/types/AggregateType;
            4   17     3  sourceAggregate  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5   17     4    valueToInsert  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            6   17     5        valueType  Lcom/oracle/truffle/llvm/runtime/types/Type;
            7   17     6      targetIndex  I
            8   17     7  resultAggregate  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           12   13     8           result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           15   17     8           result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            9   12     9           offset  J
           14   15     9                e  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;
      Exception table:
        from    to  target  type
           8    12      13  Class com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
    MethodParameters:
        Name  Flags
      insert  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.LoadInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/LoadInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.LoadInstruction load
         0: .line 865
            aload 0 /* this */
            aload 1 /* load */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LoadInstruction.getSource:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            iconst_0
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode source
         1: .line 866
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* load */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.LoadInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 2 /* source */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createLoad:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* result */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         2: .line 868
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* load */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         3: .line 869
            return
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode source
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.LoadInstruction load
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1    load  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/LoadInstruction;
            1    4     2  source  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    4     3  result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      load  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction phi
         0: .line 875
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleNullerInfo:()V
         1: .line 877
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction phi
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1   phi  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
    MethodParameters:
      Name  Flags
      phi   

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ReturnInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction ret
         0: .line 882
            aload 1 /* ret */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            ifnonnull 3
         1: .line 883
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRetVoid:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* node */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         2: .line 884
            goto 6
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         3: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* ret */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 3 /* type */
        start local 3 // com.oracle.truffle.llvm.runtime.types.Type type
         4: .line 886
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* ret */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* value */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode value
         5: .line 887
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 4 /* value */
            aload 3 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createNonVoidRet:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* node */
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode value
        end local 3 // com.oracle.truffle.llvm.runtime.types.Type type
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         6: .line 889
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* node */
            aload 1 /* ret */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         7: .line 890
            return
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ReturnInstruction ret
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    8     1    ret  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ReturnInstruction;
            2    3     2   node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            6    8     2   node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            4    6     3   type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            5    6     4  value  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      ret   

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SelectInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction select
         0: .line 894
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* select */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* condition */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode condition
         1: .line 895
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* select */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction.getTrueValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* trueValue */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode trueValue
         2: .line 896
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* select */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction.getFalseValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* falseValue */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode falseValue
         3: .line 897
            aload 1 /* select */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 5 /* type */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type type
         4: .line 899
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 5 /* type */
            aload 2 /* condition */
            aload 3 /* trueValue */
            aload 4 /* falseValue */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createSelect:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* result */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         5: .line 901
            aload 0 /* this */
            aload 6 /* result */
            aload 1 /* select */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         6: .line 902
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode falseValue
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode trueValue
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode condition
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SelectInstruction select
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1      select  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SelectInstruction;
            1    7     2   condition  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    7     3   trueValue  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            3    7     4  falseValue  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    7     5        type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            5    7     6      result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
        Name  Flags
      select  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ShuffleVectorInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction shuffle
         0: .line 906
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* shuffle */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction.getVector1:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* vector1 */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vector1
         1: .line 907
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* shuffle */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction.getVector2:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 3 /* vector2 */
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vector2
         2: .line 908
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* shuffle */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction.getMask:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* mask */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode mask
         3: .line 910
            aload 1 /* shuffle */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 5 /* type */
        start local 5 // com.oracle.truffle.llvm.runtime.types.Type type
         4: .line 911
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 5 /* type */
            aload 2 /* vector1 */
            aload 3 /* vector2 */
            aload 4 /* mask */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createShuffleVector:(Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 6 /* result */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         5: .line 913
            aload 0 /* this */
            aload 6 /* result */
            aload 1 /* shuffle */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         6: .line 914
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 5 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode mask
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vector2
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode vector1
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ShuffleVectorInstruction shuffle
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    7     1  shuffle  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ShuffleVectorInstruction;
            1    7     2  vector1  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2    7     3  vector2  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            3    7     4     mask  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    7     5     type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            5    7     6   result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
         Name  Flags
      shuffle  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/StoreInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction store
         0: .line 918
            aload 1 /* store */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction.getSource:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* value */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
         1: .line 919
            aload 1 /* store */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction.getDestination:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* pointer */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl pointer
         2: .line 920
            aload 0 /* this */
            aload 2 /* value */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* pointer */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* valueNode */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
         3: .line 921
            aload 0 /* this */
            aload 3 /* pointer */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* value */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* pointerNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
         4: .line 923
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.DISABLED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 6 /* intention */
        start local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
         5: .line 924
            aload 1 /* store */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction.getSource:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.CallInstruction
            ifne 6
            aload 1 /* store */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction.getSource:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.InvokeInstruction
            ifeq 7
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction com.oracle.truffle.llvm.parser.model.SymbolImpl com.oracle.truffle.llvm.parser.model.SymbolImpl com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy
      StackMap stack:
         6: aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.context:Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            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;
            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
            ifeq 8
         7: .line 926
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            astore 6 /* intention */
         8: .line 929
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 7 /* type */
        start local 7 // com.oracle.truffle.llvm.runtime.types.Type type
         9: .line 930
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 5 /* pointerNode */
            aload 4 /* valueNode */
            aload 7 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createStore:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            astore 8 /* node */
        start local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        10: .line 931
            aload 0 /* this */
            aload 8 /* node */
            aload 1 /* store */
            aload 6 /* intention */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addStatement:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
        11: .line 932
            return
        end local 8 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        end local 7 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 6 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl pointer
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.StoreInstruction store
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   12     1        store  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/StoreInstruction;
            1   12     2        value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2   12     3      pointer  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3   12     4    valueNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4   12     5  pointerNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5   12     6    intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            9   12     7         type  Lcom/oracle/truffle/llvm/runtime/types/Type;
           10   12     8         node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    MethodParameters:
       Name  Flags
      store  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ReadModifyWriteInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction rmw
         0: .line 936
            aload 1 /* rmw */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 2 /* value */
        start local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
         1: .line 937
            aload 1 /* rmw */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction.getPtr:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            astore 3 /* pointer */
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl pointer
         2: .line 938
            aload 0 /* this */
            aload 2 /* value */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 3 /* pointer */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 4 /* valueNode */
        start local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
         3: .line 939
            aload 0 /* this */
            aload 3 /* pointer */
            iconst_1
            anewarray com.oracle.truffle.llvm.parser.model.SymbolImpl
            dup
            iconst_0
            aload 2 /* value */
            aastore
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 5 /* pointerNode */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
         4: .line 941
            aload 1 /* rmw */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 6 /* type */
        start local 6 // com.oracle.truffle.llvm.runtime.types.Type type
         5: .line 943
            aload 0 /* this */
            aload 1 /* rmw */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction.getOperator:()Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            aload 5 /* pointerNode */
            aload 4 /* valueNode */
            aload 6 /* type */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createReadModifyWrite:(Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 7 /* result */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
         6: .line 944
            aload 0 /* this */
            aload 7 /* result */
            aload 1 /* rmw */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         7: .line 945
            return
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 6 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
        end local 4 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl pointer
        end local 2 // com.oracle.truffle.llvm.parser.model.SymbolImpl value
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ReadModifyWriteInstruction rmw
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    8     1          rmw  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ReadModifyWriteInstruction;
            1    8     2        value  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    8     3      pointer  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            3    8     4    valueNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            4    8     5  pointerNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            5    8     6         type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            6    8     7       result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    MethodParameters:
      Name  Flags
      rmw   

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode createReadModifyWrite(com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator, com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.runtime.types.Type);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator op
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
        start local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type type
         0: .line 948
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$model$enums$ReadModifyWriteOperator:()[I
            aload 1 /* op */
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iaload
            tableswitch { // 1 - 13
                    1: 2
                    2: 3
                    3: 1
                    4: 4
                    5: 5
                    6: 6
                    7: 7
                    8: 8
                    9: 8
                   10: 8
                   11: 8
                   12: 8
                   13: 8
              default: 8
          }
         1: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWSub:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         2: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWXchg:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         3: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWAdd:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         4: .line 956
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWAnd:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         5: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWNand:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         6: .line 960
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWOr:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         7: .line 962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* pointerNode */
            aload 3 /* valueNode */
            aload 4 /* type */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createRMWXor:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
         8: .line 970
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported read-modify-write operation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* op */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 3 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode valueNode
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode pointerNode
        end local 1 // com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator op
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    9     1           op  Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            0    9     2  pointerNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0    9     3    valueNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0    9     4         type  Lcom/oracle/truffle/llvm/runtime/types/Type;
    MethodParameters:
             Name  Flags
      op           
      pointerNode  
      valueNode    
      type         

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.FenceInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/FenceInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.FenceInstruction fence
         0: .line 976
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createFence:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            aload 1 /* fence */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addStatement:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         1: .line 977
            return
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.FenceInstruction fence
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1  fence  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/FenceInstruction;
    MethodParameters:
       Name  Flags
      fence  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SwitchInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction zwitch
         0: .line 981
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* cond */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cond
         1: .line 982
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCaseCount:()I
            iconst_1
            iadd
            newarray 10
            astore 3 /* successors */
        start local 3 // int[] successors
         2: .line 983
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 984
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode int[] int
      StackMap stack:
            aload 3 /* successors */
            iload 4 /* i */
            aload 1 /* zwitch */
            iload 4 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCaseBlock:(I)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            iastore
         5: .line 983
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 3 /* successors */
            arraylength
            iconst_1
            isub
            if_icmplt 4
        end local 4 // int i
         7: .line 986
            aload 3 /* successors */
            aload 3 /* successors */
            arraylength
            iconst_1
            isub
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getDefaultBlock:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            iastore
         8: .line 988
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 4 /* llvmType */
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type llvmType
         9: .line 989
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCaseCount:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 5 /* cases */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cases
        10: .line 990
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 14
        12: .line 991
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode int[] com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] int
      StackMap stack:
            aload 5 /* cases */
            iload 6 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* zwitch */
            iload 6 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction.getCaseValue:(I)Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        13: .line 990
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            aload 5 /* cases */
            arraylength
            if_icmplt 12
        end local 6 // int i
        15: .line 994
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* cond */
            aload 3 /* successors */
            aload 5 /* cases */
            aload 4 /* llvmType */
            aload 0 /* this */
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createSwitch:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[I[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 6 /* node */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        16: .line 995
            aload 0 /* this */
            aload 6 /* node */
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
        17: .line 996
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cases
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type llvmType
        end local 3 // int[] successors
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cond
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchInstruction zwitch
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   18     1      zwitch  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SwitchInstruction;
            1   18     2        cond  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2   18     3  successors  [I
            3    7     4           i  I
            9   18     4    llvmType  Lcom/oracle/truffle/llvm/runtime/types/Type;
           10   18     5       cases  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           11   15     6           i  I
           16   18     6        node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
        Name  Flags
      zwitch  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] getPhiWriteNodes(com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction terminatingInstruction
         0: .line 999
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            ifnull 3
         1: .line 1000
            aload 1 /* terminatingInstruction */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.blockPhis:Ljava/util/List;
            invokestatic com.oracle.truffle.llvm.parser.LLVMPhiManager.getPhisForSuccessors:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;Ljava/util/List;)[Ljava/util/ArrayList;
            astore 2 /* phisPerSuccessor */
        start local 2 // java.util.ArrayList[] phisPerSuccessor
         2: .line 1001
            aload 0 /* this */
            aload 2 /* phisPerSuccessor */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:([Ljava/util/ArrayList;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            areturn
        end local 2 // java.util.ArrayList[] phisPerSuccessor
         3: .line 1003
      StackMap locals:
      StackMap stack:
            aload 1 /* terminatingInstruction */
            invokeinterface com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction.getSuccessorCount:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
            areturn
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction terminatingInstruction
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0                    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1  terminatingInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;
            2    3     2        phisPerSuccessor  [Ljava/util/ArrayList;
    MethodParameters:
                        Name  Flags
      terminatingInstruction  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] createPhiWriteNodes(java.util.ArrayList<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi>[]);
    descriptor: ([Ljava/util/ArrayList;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // java.util.ArrayList[] phisPerSuccessor
         0: .line 1007
            aload 1 /* phisPerSuccessor */
            arraylength
            ifne 2
         1: .line 1008
            getstatic com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode.NO_STATEMENTS:[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            areturn
         2: .line 1011
      StackMap locals:
      StackMap stack:
            aload 1 /* phisPerSuccessor */
            arraylength
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
            astore 2 /* result */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] result
         3: .line 1012
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 1013
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] int
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            aload 0 /* this */
            aload 1 /* phisPerSuccessor */
            iload 3 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createPhiWriteNodes:(Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            aastore
         6: .line 1012
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 2 /* result */
            arraylength
            if_icmplt 5
        end local 3 // int i
         8: .line 1015
            aload 2 /* result */
            areturn
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode[] result
        end local 1 // java.util.ArrayList[] phisPerSuccessor
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    9     1  phisPerSuccessor  [Ljava/util/ArrayList;
            3    9     2            result  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            4    8     3                 i  I
    Signature: ([Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    MethodParameters:
                  Name  Flags
      phisPerSuccessor  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode createPhiWriteNodes(java.util.ArrayList<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi>);
    descriptor: (Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // java.util.ArrayList phis
         0: .line 1033
            aload 1 /* phis */
            invokevirtual java.util.ArrayList.size:()I
            ifne 2
         1: .line 1034
            aconst_null
            areturn
         2: .line 1036
      StackMap locals:
      StackMap stack:
            aload 1 /* phis */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpne 5
         3: .line 1037
            aload 1 /* phis */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 2 /* phi */
        start local 2 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
         4: .line 1038
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 2 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 2 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getPhiValue:()Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
            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;
            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;
            areturn
        end local 2 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
         5: .line 1041
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* pendingPhis */
        start local 2 // java.util.HashMap pendingPhis
         6: .line 1042
            aload 1 /* phis */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor java.util.ArrayList java.util.HashMap top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 3 /* phi */
        start local 3 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
         8: .line 1043
            aload 2 /* pendingPhis */
            aload 3 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getPhiValue:()Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
            aload 3 /* phi */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
         9: .line 1042
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 1045
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ordinary */
        start local 3 // java.util.ArrayList ordinary
        11: .line 1046
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* cycles */
        start local 4 // java.util.ArrayList cycles
        12: .line 1048
            goto 27
        13: .line 1049
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor java.util.ArrayList java.util.HashMap java.util.ArrayList java.util.ArrayList
      StackMap stack:
            iconst_0
            istore 5 /* progress */
        start local 5 // boolean progress
        14: .line 1050
            aload 2 /* pendingPhis */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
        15: .line 1051
            goto 21
        16: .line 1052
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 7 /* phi */
        start local 7 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        17: .line 1053
            aload 2 /* pendingPhis */
            aload 7 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifne 21
        18: .line 1054
            aload 6 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        19: .line 1055
            aload 3 /* ordinary */
            aload 7 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        20: .line 1056
            iconst_1
            istore 5 /* progress */
        end local 7 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        21: .line 1051
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        22: .line 1059
            iload 5 /* progress */
            ifne 27
        23: .line 1061
            aload 2 /* pendingPhis */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        24: .line 1062
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 7 /* phi */
        start local 7 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        25: .line 1063
            aload 6 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        26: .line 1064
            aload 4 /* cycles */
            aload 7 /* phi */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        end local 6 // java.util.Iterator iter
        end local 5 // boolean progress
        27: .line 1048
      StackMap locals:
      StackMap stack:
            aload 2 /* pendingPhis */
            invokevirtual java.util.HashMap.isEmpty:()Z
            ifeq 13
        28: .line 1067
            aload 4 /* cycles */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 5 /* cycleFrom */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cycleFrom
        29: .line 1068
            aload 4 /* cycles */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode
            astore 6 /* cycleWrites */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] cycleWrites
        30: .line 1069
            aload 3 /* ordinary */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode
            astore 7 /* ordinaryWrites */
        start local 7 // com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] ordinaryWrites
        31: .line 1071
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        32: goto 37
        33: .line 1072
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor java.util.ArrayList java.util.HashMap java.util.ArrayList java.util.ArrayList com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] int
      StackMap stack:
            aload 4 /* cycles */
            iload 8 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 9 /* phi */
        start local 9 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        34: .line 1073
            aload 5 /* cycleFrom */
            iload 8 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aastore
        35: .line 1074
            aload 6 /* cycleWrites */
            iload 8 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getPhiValue:()Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
            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;
            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;
            aastore
        end local 9 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        36: .line 1071
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 8 /* i */
            aload 4 /* cycles */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 33
        end local 8 // int i
        38: .line 1076
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        39: goto 43
        40: .line 1079
      StackMap locals:
      StackMap stack:
            aload 3 /* ordinary */
            aload 3 /* ordinary */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            iload 8 /* i */
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi
            astore 9 /* phi */
        start local 9 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        41: .line 1080
            aload 7 /* ordinaryWrites */
            iload 8 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getPhiValue:()Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
            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;
            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;
            aastore
        end local 9 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        42: .line 1076
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 8 /* i */
            aload 3 /* ordinary */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 40
        end local 8 // int i
        44: .line 1083
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 5 /* cycleFrom */
            aload 6 /* cycleWrites */
            aload 7 /* ordinaryWrites */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createPhi:([Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;[Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            areturn
        end local 7 // com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] ordinaryWrites
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.vars.LLVMWriteNode[] cycleWrites
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cycleFrom
        end local 4 // java.util.ArrayList cycles
        end local 3 // java.util.ArrayList ordinary
        end local 2 // java.util.HashMap pendingPhis
        end local 1 // java.util.ArrayList phis
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   45     0            this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   45     1            phis  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
            4    5     2             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
            6   45     2     pendingPhis  Ljava/util/HashMap<Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
            8    9     3             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           11   45     3        ordinary  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           12   45     4          cycles  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           14   27     5        progress  Z
           15   27     6            iter  Ljava/util/Iterator<Ljava/util/Map$Entry<Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;
           17   21     7             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           25   27     7             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           29   45     5       cycleFrom  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           30   45     6     cycleWrites  [Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;
           31   45     7  ordinaryWrites  [Lcom/oracle/truffle/llvm/runtime/nodes/vars/LLVMWriteNode;
           32   38     8               i  I
           34   36     9             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
           39   44     8               i  I
           41   42     9             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
    Signature: (Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
    MethodParameters:
      Name  Flags
      phis  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SwitchOldInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction zwitch
         0: .line 1088
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.symbols:Lcom/oracle/truffle/llvm/parser/nodes/LLVMSymbolReadResolver;
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            astore 2 /* cond */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cond
         1: .line 1090
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseCount:()I
            iconst_1
            iadd
            newarray 10
            astore 3 /* successors */
        start local 3 // int[] successors
         2: .line 1091
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 1092
      StackMap locals: com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode int[] int
      StackMap stack:
            aload 3 /* successors */
            iload 4 /* i */
            aload 1 /* zwitch */
            iload 4 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseBlock:(I)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            iastore
         5: .line 1091
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 3 /* successors */
            arraylength
            iconst_1
            isub
            if_icmplt 4
        end local 4 // int i
         7: .line 1094
            aload 3 /* successors */
            aload 3 /* successors */
            arraylength
            iconst_1
            isub
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getDefaultBlock:()Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            iastore
         8: .line 1096
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCondition:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            invokeinterface com.oracle.truffle.llvm.parser.model.SymbolImpl.getType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            checkcast com.oracle.truffle.llvm.runtime.types.PrimitiveType
            astore 4 /* llvmType */
        start local 4 // com.oracle.truffle.llvm.runtime.types.PrimitiveType llvmType
         9: .line 1097
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseCount:()I
            anewarray com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode
            astore 5 /* cases */
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cases
        10: .line 1098
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 21
        12: .line 1101
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode int[] com.oracle.truffle.llvm.runtime.types.PrimitiveType com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] int
      StackMap stack:
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$runtime$types$PrimitiveType$PrimitiveKind:()[I
            aload 4 /* llvmType */
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType.getPrimitiveKind:()Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 13
                    3: 15
                    4: 17
              default: 19
          }
        13: .line 1103
      StackMap locals:
      StackMap stack:
            aload 5 /* cases */
            iload 6 /* i */
            aload 1 /* zwitch */
            iload 6 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseValue:(I)J
            l2i
            i2b
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aload 4 /* llvmType */
            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
        14: .line 1104
            goto 20
        15: .line 1106
      StackMap locals:
      StackMap stack:
            aload 5 /* cases */
            iload 6 /* i */
            aload 1 /* zwitch */
            iload 6 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseValue:(I)J
            l2i
            i2s
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            aload 4 /* llvmType */
            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
        16: .line 1107
            goto 20
        17: .line 1109
      StackMap locals:
      StackMap stack:
            aload 5 /* cases */
            iload 6 /* i */
            aload 1 /* zwitch */
            iload 6 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseValue:(I)J
            l2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* llvmType */
            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
        18: .line 1110
            goto 20
        19: .line 1112
      StackMap locals:
      StackMap stack:
            aload 5 /* cases */
            iload 6 /* i */
            aload 1 /* zwitch */
            iload 6 /* i */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction.getCaseValue:(I)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* llvmType */
            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
        20: .line 1098
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            aload 5 /* cases */
            arraylength
            if_icmplt 12
        end local 6 // int i
        22: .line 1116
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 2 /* cond */
            aload 3 /* successors */
            aload 5 /* cases */
            aload 4 /* llvmType */
            aload 0 /* this */
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.getPhiWriteNodes:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;)[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createSwitch:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;[I[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 6 /* node */
        start local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        23: .line 1117
            aload 0 /* this */
            aload 6 /* node */
            aload 1 /* zwitch */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
        24: .line 1118
            return
        end local 6 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] cases
        end local 4 // com.oracle.truffle.llvm.runtime.types.PrimitiveType llvmType
        end local 3 // int[] successors
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode cond
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.SwitchOldInstruction zwitch
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   25     1      zwitch  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/SwitchOldInstruction;
            1   25     2        cond  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            2   25     3  successors  [I
            3    7     4           i  I
            9   25     4    llvmType  Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType;
           10   25     5       cases  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
           11   22     6           i  I
           23   25     6        node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
        Name  Flags
      zwitch  

  public void visit(com.oracle.truffle.llvm.parser.model.symbols.instructions.UnreachableInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/UnreachableInstruction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.UnreachableInstruction ui
         0: .line 1122
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createUnreachableNode:()Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            astore 2 /* node */
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
         1: .line 1123
            aload 0 /* this */
            aload 2 /* node */
            aload 1 /* ui */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
         2: .line 1124
            return
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode node
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.instructions.UnreachableInstruction ui
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1    ui  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/UnreachableInstruction;
            1    3     2  node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
    MethodParameters:
      Name  Flags
      ui    

  public void handleNullerInfo();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 1131
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tLLVMFrameNullerNodeGen cannot be resolved\n\tLLVMFrameNullerNodeGen cannot be resolved\n\tLLVMFrameNullerExpressionNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;

  private void addNode(com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode node
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction target
         0: .line 1147
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionNodes:Ljava/util/ArrayList;
            aload 1 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1148
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.instructionTargets:Ljava/util/ArrayList;
            aload 2 /* target */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1149
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction target
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode node
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    3     1    node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;
            0    3     2  target  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;
    MethodParameters:
        Name  Flags
      node    
      target  

  private void createFrameWrite(com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction source
         0: .line 1152
            aload 0 /* this */
            aload 1 /* result */
            aload 2 /* source */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.createFrameWrite:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1153
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction source
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1  result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0    2     2  source  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;
    MethodParameters:
        Name  Flags
      result  
      source  

  private void createFrameWrite(com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction, com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction source
        start local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
         0: .line 1156
            aload 0 /* this */
            aload 1 /* result */
            aload 2 /* source */
            aload 3 /* intention */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.assignSourceLocation:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1157
            aload 0 /* this */
            aload 1 /* result */
            aload 2 /* source */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         2: .line 1158
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleNullerInfo:()V
         3: .line 1159
            return
        end local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction source
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode result
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1     result  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0    4     2     source  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;
            0    4     3  intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
    MethodParameters:
           Name  Flags
      result     
      source     
      intention  

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode createInlineAssemblerNode(com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant, com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[], com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder, com.oracle.truffle.llvm.runtime.types.Type);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        start local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
        start local 3 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argsType
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type retType
         0: .line 1162
            aload 1 /* inlineAsmConstant */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant.needsAlignedStack:()Z
            ifeq 2
         1: .line 1163
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            ldc "Assembly Expressions that require an aligned Stack are not supported yet!"
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1165
      StackMap locals:
      StackMap stack:
            aload 1 /* inlineAsmConstant */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant.getDialect:()Lcom/oracle/truffle/llvm/parser/model/enums/AsmDialect;
            getstatic com.oracle.truffle.llvm.parser.model.enums.AsmDialect.AT_T:Lcom/oracle/truffle/llvm/parser/model/enums/AsmDialect;
            if_acmpeq 4
         3: .line 1166
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported Assembly Dialect: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* inlineAsmConstant */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant.getDialect:()Lcom/oracle/truffle/llvm/parser/model/enums/AsmDialect;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            aload 1 /* inlineAsmConstant */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant.getAsmExpression:()Ljava/lang/String;
            aload 1 /* inlineAsmConstant */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant.getAsmFlags:()Ljava/lang/String;
            aload 2 /* argNodes */
            aload 3 /* argsType */
            aload 4 /* retType */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createInlineAssemblerExpression:(Ljava/lang/String;Ljava/lang/String;[Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type retType
        end local 3 // com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder argsType
        end local 2 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode[] argNodes
        end local 1 // com.oracle.truffle.llvm.parser.model.symbols.constants.InlineAsmConstant inlineAsmConstant
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    5     1  inlineAsmConstant  Lcom/oracle/truffle/llvm/parser/model/symbols/constants/InlineAsmConstant;
            0    5     2           argNodes  [Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0    5     3           argsType  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeArrayBuilder;
            0    5     4            retType  Lcom/oracle/truffle/llvm/runtime/types/Type;
    MethodParameters:
                   Name  Flags
      inlineAsmConstant  
      argNodes           
      argsType           
      retType            

  private com.oracle.truffle.api.frame.FrameSlot getExceptionSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 1172
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.frame:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            ldc "<function exception value>"
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;

  private void addStatement(com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
         0: .line 1176
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* instruction */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addStatement:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1177
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1         node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            0    2     2  instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
    MethodParameters:
             Name  Flags
      node         
      instruction  

  private void addStatement(com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction, com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
         0: .line 1181
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tLLVMVoidStatementNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
    MethodParameters:
             Name  Flags
      node         
      instruction  
      intention    

  private void addStatement(com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction, com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        start local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
         0: .line 1186
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* instruction */
            aload 3 /* intention */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.assignSourceLocation:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1187
            aload 0 /* this */
            aload 1 /* node */
            aconst_null
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.addNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;)V
         2: .line 1188
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.handleNullerInfo:()V
         3: .line 1189
            return
        end local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode node
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1         node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMStatementNode;
            0    4     2  instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            0    4     3    intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
    MethodParameters:
             Name  Flags
      node         
      instruction  
      intention    

  private void setControlFlowNode(com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode controlFlowNode
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
         0: .line 1192
            aload 0 /* this */
            aload 1 /* controlFlowNode */
            aload 2 /* sourceInstruction */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.setControlFlowNode:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1193
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode controlFlowNode
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1    controlFlowNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            0    2     2  sourceInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
    MethodParameters:
                   Name  Flags
      controlFlowNode    
      sourceInstruction  

  private void setControlFlowNode(com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction, com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode controlFlowNode
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        start local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
         0: .line 1196
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.controlFlowNode:Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* controlFlowNode */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.controlFlowNode:Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
         2: .line 1198
            aload 0 /* this */
            aload 1 /* controlFlowNode */
            aload 2 /* sourceInstruction */
            aload 3 /* intention */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.assignSourceLocation:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         3: .line 1199
            return
        end local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy intention
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMControlFlowNode controlFlowNode
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    4     1    controlFlowNode  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMControlFlowNode;
            0    4     2  sourceInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            0    4     3          intention  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
    MethodParameters:
                   Name  Flags
      controlFlowNode    
      sourceInstruction  
      intention          

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode capsuleAddressByValue(com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode, com.oracle.truffle.llvm.runtime.types.Type, com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;Lcom/oracle/truffle/llvm/runtime/types/Type;Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode child
        start local 2 // com.oracle.truffle.llvm.runtime.types.Type type
        start local 3 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
         0: .line 1203
            aload 2 /* type */
            checkcast com.oracle.truffle.llvm.runtime.types.PointerType
            invokevirtual com.oracle.truffle.llvm.runtime.types.PointerType.getPointeeType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
            astore 4 /* pointee */
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type pointee
         1: .line 1204
            aload 4 /* pointee */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type.getSize:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)J
            lstore 5 /* size */
        start local 5 // long size
         2: .line 1205
            aload 4 /* pointee */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.dataLayout:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;
            invokevirtual com.oracle.truffle.llvm.runtime.types.Type.getAlignment:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayout;)I
            istore 7 /* alignment */
        start local 7 // int alignment
         3: .line 1206
            aload 3 /* paramAttr */
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup.getAttributes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 7
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup com.oracle.truffle.llvm.runtime.types.Type long int top java.util.Iterator
      StackMap stack:
         4: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.attributes.Attribute
            astore 8 /* attr */
        start local 8 // com.oracle.truffle.llvm.parser.model.attributes.Attribute attr
         5: .line 1207
            aload 8 /* attr */
            instanceof com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute
            ifeq 7
            aload 8 /* attr */
            checkcast com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute.getAttr:()Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute$Kind;
            getstatic com.oracle.truffle.llvm.parser.model.attributes.Attribute$Kind.ALIGN:Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute$Kind;
            if_acmpne 7
         6: .line 1208
            aload 8 /* attr */
            checkcast com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute.getValue:()I
            istore 7 /* alignment */
        end local 8 // com.oracle.truffle.llvm.parser.model.attributes.Attribute attr
         7: .line 1206
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1212
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.nodeFactory:Lcom/oracle/truffle/llvm/runtime/NodeFactory;
            lload 5 /* size */
            iload 7 /* alignment */
            aload 1 /* child */
            invokeinterface com.oracle.truffle.llvm.runtime.NodeFactory.createVarArgCompoundValue:(JILcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
         9: areturn
        end local 7 // int alignment
        end local 5 // long size
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type pointee
        10: .line 1213
      StackMap locals: com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode com.oracle.truffle.llvm.runtime.types.Type com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup
      StackMap stack: com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
            astore 4 /* e */
        start local 4 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        11: .line 1214
            aload 4 /* e */
            invokestatic com.oracle.truffle.llvm.runtime.types.Type.handleOverflowExpression:(Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException e
        end local 3 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup paramAttr
        end local 2 // com.oracle.truffle.llvm.runtime.types.Type type
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode child
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   12     1      child  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            0   12     2       type  Lcom/oracle/truffle/llvm/runtime/types/Type;
            0   12     3  paramAttr  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            1   10     4    pointee  Lcom/oracle/truffle/llvm/runtime/types/Type;
            2   10     5       size  J
            3   10     7  alignment  I
            5    7     8       attr  Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute;
           11   12     4          e  Lcom/oracle/truffle/llvm/runtime/types/Type$TypeOverflowException;
      Exception table:
        from    to  target  type
           0     9      10  Class com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
    MethodParameters:
           Name  Flags
      child      
      type       
      paramAttr  

  private static boolean isByValue(com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup parameter
         0: .line 1219
            aload 0 /* parameter */
            ifnonnull 2
         1: .line 1220
            iconst_0
            ireturn
         2: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* parameter */
            invokevirtual com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup.getAttributes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup top java.util.Iterator
      StackMap stack:
         3: 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
         4: .line 1224
            aload 1 /* a */
            instanceof com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownAttribute
            ifeq 6
            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 6
         5: .line 1225
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.llvm.parser.model.attributes.Attribute a
         6: .line 1223
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 1229
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.attributes.AttributesGroup parameter
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0  parameter  Lcom/oracle/truffle/llvm/parser/model/attributes/AttributesGroup;
            4    6     1          a  Lcom/oracle/truffle/llvm/parser/model/attributes/Attribute;
    MethodParameters:
           Name  Flags
      parameter  

  private void assignSourceLocation(com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode node
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
         0: .line 1233
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* sourceInstruction */
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.assignSourceLocation:(Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
         1: .line 1234
            return
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode node
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    2     1               node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;
            0    2     2  sourceInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
    MethodParameters:
                   Name  Flags
      node               
      sourceInstruction  

  private void assignSourceLocation(com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode, com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction, com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode node
        start local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        start local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy instrumentationStrategy
         0: .line 1237
            aload 1 /* node */
            ifnonnull 2
         1: .line 1238
            return
         2: .line 1241
      StackMap locals:
      StackMap stack:
            aload 2 /* sourceInstruction */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction.getSourceLocation:()Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            astore 4 /* location */
        start local 4 // com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation location
         3: .line 1242
            aload 4 /* location */
            ifnonnull 5
         4: .line 1243
            return
         5: .line 1246
      StackMap locals: com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation
      StackMap stack:
            aload 1 /* node */
            aload 4 /* location */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode.setSourceLocation:(Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;)V
         6: .line 1248
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$assertionsDisabled:Z
            ifne 7
            aload 3 /* instrumentationStrategy */
            ifnonnull 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 1249
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$nodes$LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy:()[I
            aload 3 /* instrumentationStrategy */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 8
                    2: 11
                    3: 18
              default: 19
          }
         8: .line 1251
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            iconst_1
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode.setHasStatementTag:(Z)V
         9: .line 1252
            aload 0 /* this */
            aload 4 /* location */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
        10: .line 1253
            goto 20
        11: .line 1255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            aload 4 /* location */
            if_acmpne 13
        12: .line 1257
            goto 20
        13: .line 1258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            ifnull 15
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            invokevirtual com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation.describeFile:()Ljava/lang/String;
            aload 4 /* location */
            invokevirtual com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation.describeFile:()Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 15
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
            invokevirtual com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation.getLine:()I
            aload 4 /* location */
            invokevirtual com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation.getLine:()I
            if_icmpne 15
        14: .line 1262
            goto 20
        15: .line 1264
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            iconst_1
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode.setHasStatementTag:(Z)V
        16: .line 1265
            aload 0 /* this */
            aload 4 /* location */
            putfield com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.lastLocation:Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
        17: .line 1267
            goto 20
        18: .line 1269
      StackMap locals:
      StackMap stack:
            goto 20
        19: .line 1271
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown instrumentation strategy: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* instrumentationStrategy */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1273
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.llvm.runtime.debug.scope.LLVMSourceLocation location
        end local 3 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy instrumentationStrategy
        end local 2 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction sourceInstruction
        end local 1 // com.oracle.truffle.llvm.runtime.nodes.api.LLVMInstrumentableNode node
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   21     0                     this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0   21     1                     node  Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMInstrumentableNode;
            0   21     2        sourceInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            0   21     3  instrumentationStrategy  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            3   21     4                 location  Lcom/oracle/truffle/llvm/runtime/debug/scope/LLVMSourceLocation;
    MethodParameters:
                         Name  Flags
      node                     
      sourceInstruction        
      instrumentationStrategy  

  public void defaultAction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)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.SymbolImpl
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.defaultAction:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$com$oracle$truffle$llvm$parser$model$enums$ReadModifyWriteOperator();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 136
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$model$enums$ReadModifyWriteOperator:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.values:()[Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ADD:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.AND:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.FADD:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 12
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.FSUB:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 13
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.MAX:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 8
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.MIN:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 9
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.NAND:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.OR:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 6
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.SUB:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.UMAX:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 10
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.UMIN:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 11
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.XCHG:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            iconst_1
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.XOR:Lcom/oracle/truffle/llvm/parser/model/enums/ReadModifyWriteOperator;
            invokevirtual com.oracle.truffle.llvm.parser.model.enums.ReadModifyWriteOperator.ordinal:()I
            bipush 7
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            dup
            putstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$model$enums$ReadModifyWriteOperator:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$com$oracle$truffle$llvm$runtime$types$PrimitiveType$PrimitiveKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 136
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$runtime$types$PrimitiveType$PrimitiveKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.values:()[Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.DOUBLE:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 8
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.F128:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 9
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.FLOAT:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 7
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.HALF:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.I1:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.I16:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.I32:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.I64:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iconst_5
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.I8:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            iconst_2
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.PPC_FP128:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 11
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.X86_FP80:Lcom/oracle/truffle/llvm/runtime/types/PrimitiveType$PrimitiveKind;
            invokevirtual com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$runtime$types$PrimitiveType$PrimitiveKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$com$oracle$truffle$llvm$parser$nodes$LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 136
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$nodes$LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.values:()[Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.DISABLED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.FORCED:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ONLY_FIRST_STATEMENT_ON_LOCATION:Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy;
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.$SWITCH_TABLE$com$oracle$truffle$llvm$parser$nodes$LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  private com.oracle.truffle.llvm.runtime.nodes.api.LLVMExpressionNode lambda$2(com.oracle.truffle.llvm.parser.model.SymbolImpl, int, com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.model.SymbolImpl[]);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
        start local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl  arg0
        start local 2 // int  arg1
        start local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl  arg2
        start local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl[]  arg3
         0: .line 1
            aload 0 /* this */
            aload 1 /*  arg0 */
            iload 2 /*  arg1 */
            aload 3 /*  arg2 */
            aload 4 /*  arg3 */
            invokevirtual com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor.resolveOptimized:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;ILcom/oracle/truffle/llvm/parser/model/SymbolImpl;[Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)Lcom/oracle/truffle/llvm/runtime/nodes/api/LLVMExpressionNode;
            areturn
        end local 4 // com.oracle.truffle.llvm.parser.model.SymbolImpl[]  arg3
        end local 3 // com.oracle.truffle.llvm.parser.model.SymbolImpl  arg2
        end local 2 // int  arg1
        end local 1 // com.oracle.truffle.llvm.parser.model.SymbolImpl  arg0
        end local 0 // com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/llvm/parser/nodes/LLVMBitcodeInstructionVisitor;
            0    1     1   arg0  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    1     2   arg1  I
            0    1     3   arg2  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    1     4   arg3  [Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
}
SourceFile: "LLVMBitcodeInstructionVisitor.java"
NestMembers:
  com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy
InnerClasses:
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  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 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 KnownIntegerValueAttribute = com.oracle.truffle.llvm.parser.model.attributes.Attribute$KnownIntegerValueAttribute of com.oracle.truffle.llvm.parser.model.attributes.Attribute
  private final SourceInstrumentationStrategy = com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor$SourceInstrumentationStrategy of com.oracle.truffle.llvm.parser.nodes.LLVMBitcodeInstructionVisitor
  final ClearLocalVariableParts = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$ClearLocalVariableParts of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
  final InitAggreateLocalVariable = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$InitAggreateLocalVariable of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
  abstract LocalVarDebugInfo = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$LocalVarDebugInfo of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
  final SetLocalVariablePart = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SetLocalVariablePart of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
  SimpleLocalVariable = com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation$SimpleLocalVariable of com.oracle.truffle.llvm.parser.nodes.LLVMRuntimeDebugInformation
  public abstract OptimizedResolver = com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver$OptimizedResolver of com.oracle.truffle.llvm.parser.nodes.LLVMSymbolReadResolver
  public final UniquesRegion = com.oracle.truffle.llvm.runtime.memory.LLVMStack$UniquesRegion of com.oracle.truffle.llvm.runtime.memory.LLVMStack
  public final PrimitiveKind = com.oracle.truffle.llvm.runtime.types.PrimitiveType$PrimitiveKind of com.oracle.truffle.llvm.runtime.types.PrimitiveType
  public TypeArrayBuilder = com.oracle.truffle.llvm.runtime.types.Type$TypeArrayBuilder of com.oracle.truffle.llvm.runtime.types.Type
  public final TypeOverflowException = com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException of com.oracle.truffle.llvm.runtime.types.Type
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map