public final class com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  super_class: java.lang.Object
{
  private final com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition functionDefinition;
    descriptor: Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[] frameSlots;
    descriptor: [Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private void <init>(com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition functionDefinition
         0: .line 92
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 93
            aload 0 /* this */
            aload 1 /* functionDefinition */
            putfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.functionDefinition:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
         2: .line 96
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* slots */
        start local 2 // java.util.ArrayList slots
         3: .line 97
            aload 1 /* functionDefinition */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition java.util.ArrayList top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            astore 3 /* param */
        start local 3 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
         5: .line 98
            aload 3 /* param */
            aload 2 /* slots */
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.setFrameIdentifier:(I)V
         6: .line 99
            aload 2 /* slots */
            aload 3 /* param */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
         7: .line 97
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 101
            aload 1 /* functionDefinition */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 17
      StackMap locals:
      StackMap stack:
         9: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 3 /* block */
        start local 3 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        10: .line 102
            aload 3 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition java.util.ArrayList com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
        11: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction
            astore 5 /* instruction */
        start local 5 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        12: .line 103
            aload 5 /* instruction */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction
            ifeq 16
        13: .line 104
            aload 5 /* instruction */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction
            astore 7 /* value */
        start local 7 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction value
        14: .line 105
            aload 7 /* value */
            aload 2 /* slots */
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction.setFrameIdentifier:(I)V
        15: .line 106
            aload 2 /* slots */
            aload 7 /* value */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.oracle.truffle.llvm.parser.model.symbols.instructions.ValueInstruction value
        end local 5 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        16: .line 102
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 3 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        17: .line 101
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        18: .line 110
            aload 0 /* this */
            aload 2 /* slots */
            aload 2 /* slots */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue[]
            putfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
        19: .line 111
            return
        end local 2 // java.util.ArrayList slots
        end local 1 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition functionDefinition
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0                this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0   20     1  functionDefinition  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            3   20     2               slots  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;>;
            5    7     3               param  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
           10   17     3               block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           12   16     5         instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
           14   16     7               value  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/ValueInstruction;
    MethodParameters:
                    Name  Flags
      functionDefinition  

  public static com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult computeLiveness(java.util.Map<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock, java.util.List<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi>>, com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition, java.io.PrintStream);
    descriptor: (Ljava/util/Map;Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;Ljava/io/PrintStream;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.util.Map phis
        start local 1 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition functionDefinition
        start local 2 // java.io.PrintStream logLivenessStream
         0: .line 114
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
            dup
            aload 1 /* functionDefinition */
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.<init>:(Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;)V
            astore 3 /* analysis */
        start local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis analysis
         1: .line 116
            aload 1 /* functionDefinition */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getBlocks:()Ljava/util/List;
            astore 4 /* blocks */
        start local 4 // java.util.List blocks
         2: .line 117
            aload 3 /* analysis */
            aload 0 /* phis */
            aload 4 /* blocks */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.initializeGenKill:(Ljava/util/Map;Ljava/util/List;)[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            astore 5 /* blockInfos */
        start local 5 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
         3: .line 118
            aload 4 /* blocks */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.computePredecessors:(Ljava/util/List;)[Ljava/util/ArrayList;
            astore 6 /* predecessors */
        start local 6 // java.util.ArrayList[] predecessors
         4: .line 119
            aload 4 /* blocks */
            aload 3 /* analysis */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            arraylength
            aload 5 /* blockInfos */
            aload 6 /* predecessors */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.iterateToFixedPoint:(Ljava/util/List;I[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList;)I
            istore 7 /* processedBlocks */
        start local 7 // int processedBlocks
         5: .line 120
            aload 2 /* logLivenessStream */
            ifnull 7
         6: .line 121
            aload 3 /* analysis */
            aload 2 /* logLivenessStream */
            aload 4 /* blocks */
            aload 5 /* blockInfos */
            iload 7 /* processedBlocks */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.printIntermediateResult:(Ljava/io/PrintStream;Ljava/util/List;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
         7: .line 124
      StackMap locals: java.util.Map com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition java.io.PrintStream com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] int
      StackMap stack:
            aload 3 /* analysis */
            aload 4 /* blocks */
            aload 5 /* blockInfos */
            aload 6 /* predecessors */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.computeLivenessAnalysisResult:(Ljava/util/List;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult result
         8: .line 125
            aload 2 /* logLivenessStream */
            ifnull 10
         9: .line 126
            aload 3 /* analysis */
            aload 2 /* logLivenessStream */
            aload 4 /* blocks */
            aload 8 /* result */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.printResult:(Ljava/io/PrintStream;Ljava/util/List;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;)V
        10: .line 128
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult result
        end local 7 // int processedBlocks
        end local 6 // java.util.ArrayList[] predecessors
        end local 5 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        end local 4 // java.util.List blocks
        end local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis analysis
        end local 2 // java.io.PrintStream logLivenessStream
        end local 1 // com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition functionDefinition
        end local 0 // java.util.Map phis
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                phis  Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;
            0   11     1  functionDefinition  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            0   11     2   logLivenessStream  Ljava/io/PrintStream;
            1   11     3            analysis  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            2   11     4              blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            3   11     5          blockInfos  [Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            4   11     6        predecessors  [Ljava/util/ArrayList;
            5   11     7     processedBlocks  I
            8   11     8              result  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
    Signature: (Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;Ljava/io/PrintStream;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
    MethodParameters:
                    Name  Flags
      phis                
      functionDefinition  
      logLivenessStream   

  private com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] initializeGenKill(java.util.Map<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock, java.util.List<com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi>>, java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>);
    descriptor: (Ljava/util/Map;Ljava/util/List;)[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // java.util.Map phis
        start local 2 // java.util.List blocks
         0: .line 132
            aload 2 /* blocks */
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo
            astore 3 /* result */
        start local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] result
         1: .line 133
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 31
         3: .line 134
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] int
      StackMap stack:
            aload 2 /* blocks */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 5 /* block */
        start local 5 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         4: .line 135
            aload 3 /* result */
            iload 4 /* i */
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            arraylength
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.<init>:(I)V
            dup_x2
            aastore
            astore 6 /* blockInfo */
        start local 6 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
         5: .line 136
            iload 4 /* i */
            ifne 10
         6: .line 138
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.functionDefinition:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 9
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.Map java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] int com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            astore 7 /* param */
        start local 7 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
         8: .line 139
            aload 6 /* blockInfo */
            aload 7 /* param */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getFrameIdentifier:()I
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.processRead:(Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
        end local 7 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
         9: .line 138
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 143
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.Map java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] int com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo
      StackMap stack:
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor
            dup
            aload 0 /* this */
            aload 6 /* blockInfo */
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor.<init>:(Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
            astore 7 /* readVisitor */
        start local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor readVisitor
        11: .line 144
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        12: goto 24
        13: .line 145
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor int
      StackMap stack:
            aload 5 /* block */
            iload 8 /* j */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstruction:(I)Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            astore 9 /* instruction */
        start local 9 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        14: .line 146
            aload 9 /* instruction */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction
            ifeq 17
        15: .line 147
            aload 9 /* instruction */
            checkcast com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction
            aload 6 /* blockInfo */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.processPhiWrite:(Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
        16: .line 148
            goto 23
        17: .line 149
      StackMap locals: com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction
      StackMap stack:
            aload 9 /* instruction */
            aload 7 /* readVisitor */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction.accept:(Lcom/oracle/truffle/llvm/parser/ValueList$ValueVisitor;)V
        18: .line 150
            aload 9 /* instruction */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
            istore 10 /* frameSlotIndex */
        start local 10 // int frameSlotIndex
        19: .line 151
            iload 10 /* frameSlotIndex */
            iflt 23
        20: .line 152
            aload 6 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            iload 10 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
        21: .line 153
            aload 6 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.gen:Ljava/util/BitSet;
            iload 10 /* frameSlotIndex */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 23
        22: .line 154
            aload 6 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            iload 10 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
        end local 10 // int frameSlotIndex
        end local 9 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        23: .line 144
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 8 /* j */
            aload 5 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructionCount:()I
            if_icmplt 13
        end local 8 // int j
        25: .line 160
            aload 1 /* phis */
            aload 5 /* block */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* bbPhis */
        start local 8 // java.util.List bbPhis
        26: .line 161
            aload 8 /* bbPhis */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 29
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.Map java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] int com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor java.util.List top java.util.Iterator
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()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
        28: .line 162
            aload 9 /* phi */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi.getValue:()Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            aload 6 /* blockInfo */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.processValueUsedInPhi:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
        end local 9 // com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi phi
        29: .line 161
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        end local 8 // java.util.List bbPhis
        end local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor readVisitor
        end local 6 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 5 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        30: .line 133
            iinc 4 /* i */ 1
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.Map java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] int
      StackMap stack:
        31: iload 4 /* i */
            aload 2 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 4 // int i
        32: .line 165
            aload 3 /* result */
            areturn
        end local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] result
        end local 2 // java.util.List blocks
        end local 1 // java.util.Map phis
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0   33     1            phis  Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;
            0   33     2          blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            1   33     3          result  [Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            2   32     4               i  I
            4   30     5           block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            5   30     6       blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            8    9     7           param  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
           11   30     7     readVisitor  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessReadVisitor;
           12   25     8               j  I
           14   23     9     instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
           19   23    10  frameSlotIndex  I
           26   30     8          bbPhis  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;
           28   29     9             phi  Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;
    Signature: (Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/LLVMPhiManager$Phi;>;>;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;)[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
    MethodParameters:
        Name  Flags
      phis    
      blocks  

  private static int iterateToFixedPoint(java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, int, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[], java.util.ArrayList<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>[]);
    descriptor: (Ljava/util/List;I[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=15, args_size=4
        start local 0 // java.util.List blocks
        start local 1 // int frameSize
        start local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        start local 3 // java.util.ArrayList[] predecessors
         0: .line 170
            new java.util.ArrayDeque
            dup
            aload 0 /* blocks */
            invokespecial java.util.ArrayDeque.<init>:(Ljava/util/Collection;)V
            astore 4 /* workList */
        start local 4 // java.util.ArrayDeque workList
         1: .line 171
            new java.util.BitSet
            dup
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.BitSet.<init>:(I)V
            astore 5 /* blockOnWorkList */
        start local 5 // java.util.BitSet blockOnWorkList
         2: .line 172
            aload 5 /* blockOnWorkList */
            iconst_0
            aload 5 /* blockOnWorkList */
            invokevirtual java.util.BitSet.size:()I
            invokevirtual java.util.BitSet.set:(II)V
         3: .line 174
            new java.util.BitSet
            dup
            iload 1 /* frameSize */
            invokespecial java.util.BitSet.<init>:(I)V
            astore 6 /* newPredecessorOut */
        start local 6 // java.util.BitSet newPredecessorOut
         4: .line 175
            new java.util.BitSet
            dup
            iload 1 /* frameSize */
            invokespecial java.util.BitSet.<init>:(I)V
            astore 7 /* newIn */
        start local 7 // java.util.BitSet newIn
         5: .line 177
            iconst_0
            istore 8 /* processedBlocks */
        start local 8 // int processedBlocks
         6: .line 178
            goto 28
         7: .line 179
      StackMap locals: java.util.List int com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayDeque java.util.BitSet java.util.BitSet java.util.BitSet int
      StackMap stack:
            iinc 8 /* processedBlocks */ 1
         8: .line 180
            aload 4 /* workList */
            aload 5 /* blockOnWorkList */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.removeBlockFromWorkList:(Ljava/util/ArrayDeque;Ljava/util/BitSet;)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            astore 9 /* block */
        start local 9 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         9: .line 181
            aload 2 /* blockInfos */
            aload 9 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            astore 10 /* blockInfo */
        start local 10 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        10: .line 183
            aload 7 /* newIn */
            invokevirtual java.util.BitSet.clear:()V
        11: .line 184
            aload 7 /* newIn */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.out:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        12: .line 185
            aload 7 /* newIn */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.andNot:(Ljava/util/BitSet;)V
        13: .line 186
            aload 7 /* newIn */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.gen:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        14: .line 187
            aload 7 /* newIn */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        15: .line 189
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.clear:()V
        16: .line 190
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            aload 7 /* newIn */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        17: .line 192
            aload 3 /* predecessors */
            aload 9 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 12
            goto 27
      StackMap locals: java.util.List int com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayDeque java.util.BitSet java.util.BitSet java.util.BitSet int com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo top java.util.Iterator
      StackMap stack:
        18: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 11 /* predecessor */
        start local 11 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessor
        19: .line 193
            aload 2 /* blockInfos */
            aload 11 /* predecessor */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            astore 13 /* predecessorBlockInfo */
        start local 13 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo predecessorBlockInfo
        20: .line 194
            aload 6 /* newPredecessorOut */
            invokevirtual java.util.BitSet.clear:()V
        21: .line 195
            aload 6 /* newPredecessorOut */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        22: .line 196
            aload 6 /* newPredecessorOut */
            aload 10 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.andNot:(Ljava/util/BitSet;)V
        23: .line 197
            aload 6 /* newPredecessorOut */
            aload 13 /* predecessorBlockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiUses:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        24: .line 199
            aload 13 /* predecessorBlockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.out:Ljava/util/BitSet;
            aload 6 /* newPredecessorOut */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.or:(Ljava/util/BitSet;Ljava/util/BitSet;)Z
            istore 14 /* changed */
        start local 14 // boolean changed
        25: .line 200
            iload 14 /* changed */
            ifeq 27
        26: .line 201
            aload 4 /* workList */
            aload 5 /* blockOnWorkList */
            aload 11 /* predecessor */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.addBlockToWorkList:(Ljava/util/ArrayDeque;Ljava/util/BitSet;Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;)V
        end local 14 // boolean changed
        end local 13 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo predecessorBlockInfo
        end local 11 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessor
        27: .line 192
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 10 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 9 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        28: .line 178
      StackMap locals: java.util.List int com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayDeque java.util.BitSet java.util.BitSet java.util.BitSet int
      StackMap stack:
            aload 4 /* workList */
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            ifeq 7
        29: .line 205
            iload 8 /* processedBlocks */
            ireturn
        end local 8 // int processedBlocks
        end local 7 // java.util.BitSet newIn
        end local 6 // java.util.BitSet newPredecessorOut
        end local 5 // java.util.BitSet blockOnWorkList
        end local 4 // java.util.ArrayDeque workList
        end local 3 // java.util.ArrayList[] predecessors
        end local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        end local 1 // int frameSize
        end local 0 // java.util.List blocks
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   30     0                blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0   30     1             frameSize  I
            0   30     2            blockInfos  [Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            0   30     3          predecessors  [Ljava/util/ArrayList;
            1   30     4              workList  Ljava/util/ArrayDeque<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            2   30     5       blockOnWorkList  Ljava/util/BitSet;
            4   30     6     newPredecessorOut  Ljava/util/BitSet;
            5   30     7                 newIn  Ljava/util/BitSet;
            6   30     8       processedBlocks  I
            9   28     9                 block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           10   28    10             blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
           19   27    11           predecessor  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           20   27    13  predecessorBlockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
           25   27    14               changed  Z
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;I[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;)I
    MethodParameters:
              Name  Flags
      blocks        
      frameSize     
      blockInfos    
      predecessors  

  private com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult computeLivenessAnalysisResult(java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[], java.util.ArrayList<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>[]);
    descriptor: (Ljava/util/List;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=19, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // java.util.List blocks
        start local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        start local 3 // java.util.ArrayList[] predecessors
         0: .line 210
            aload 1 /* blocks */
            invokeinterface java.util.List.size:()I
            anewarray java.util.ArrayList
            astore 4 /* nullableWithinBlock */
        start local 4 // java.util.ArrayList[] nullableWithinBlock
         1: .line 211
            aload 1 /* blocks */
            invokeinterface java.util.List.size:()I
            anewarray java.util.BitSet
            astore 5 /* nullableBeforeBlock */
        start local 5 // java.util.BitSet[] nullableBeforeBlock
         2: .line 212
            aload 1 /* blocks */
            invokeinterface java.util.List.size:()I
            anewarray java.util.BitSet
            astore 6 /* nullableAfterBlock */
        start local 6 // java.util.BitSet[] nullableAfterBlock
         3: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            arraylength
            newarray 10
            astore 7 /* lastInstructionIndexTouchingLocal */
        start local 7 // int[] lastInstructionIndexTouchingLocal
         4: .line 215
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor
            dup
            aload 0 /* this */
            aload 7 /* lastInstructionIndexTouchingLocal */
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor.<init>:(Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;[I)V
            astore 8 /* nullerReadVisitor */
        start local 8 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor nullerReadVisitor
         5: .line 216
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         6: goto 55
         7: .line 217
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayList[] java.util.BitSet[] java.util.BitSet[] int[] com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor int
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* blockNullers */
        start local 10 // java.util.ArrayList blockNullers
         8: .line 218
            aload 7 /* lastInstructionIndexTouchingLocal */
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
         9: .line 219
            aload 2 /* blockInfos */
            iload 9 /* i */
            aaload
            astore 11 /* blockInfo */
        start local 11 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        10: .line 221
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.clear:()V
        11: .line 222
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.clear:()V
        12: .line 224
            iload 9 /* i */
            ifne 18
        13: .line 227
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.functionDefinition:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 17
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayList[] java.util.BitSet[] java.util.BitSet[] int[] com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor int java.util.ArrayList com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo top java.util.Iterator
      StackMap stack:
        14: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.functions.FunctionParameter
            astore 12 /* param */
        start local 12 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
        15: .line 228
            aload 12 /* param */
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionParameter.getFrameIdentifier:()I
            istore 14 /* frameSlotIndex */
        start local 14 // int frameSlotIndex
        16: .line 229
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 14 /* frameSlotIndex */
            iconst_0
            iastore
        end local 14 // int frameSlotIndex
        end local 12 // com.oracle.truffle.llvm.parser.model.functions.FunctionParameter param
        17: .line 227
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        18: .line 233
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayList[] java.util.BitSet[] java.util.BitSet[] int[] com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor int java.util.ArrayList com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo
      StackMap stack:
            aload 1 /* blocks */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 12 /* block */
        start local 12 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        19: .line 234
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        20: goto 31
        21: .line 235
      StackMap locals: com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock int
      StackMap stack:
            aload 12 /* block */
            iload 13 /* j */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstruction:(I)Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
            astore 14 /* instruction */
        start local 14 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        22: .line 237
            aload 14 /* instruction */
            instanceof com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction
            ifne 25
        23: .line 240
            aload 8 /* nullerReadVisitor */
            iload 13 /* j */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor.setInstructionIndex:(I)V
        24: .line 241
            aload 14 /* instruction */
            aload 8 /* nullerReadVisitor */
            invokevirtual com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction.accept:(Lcom/oracle/truffle/llvm/parser/ValueList$ValueVisitor;)V
        25: .line 244
      StackMap locals: com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction
      StackMap stack:
            aload 14 /* instruction */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
            istore 15 /* frameSlotIndex */
        start local 15 // int frameSlotIndex
        26: .line 245
            iload 15 /* frameSlotIndex */
            iflt 30
        27: .line 249
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* frameSlotIndex */
            iaload
            iconst_m1
            if_icmpeq 29
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* frameSlotIndex */
            iaload
            iload 13 /* j */
            if_icmpeq 29
        28: .line 250
            aload 10 /* blockNullers */
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 15 /* frameSlotIndex */
            aaload
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* frameSlotIndex */
            iaload
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.<init>:(Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;I)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        29: .line 252
      StackMap locals: int
      StackMap stack:
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* frameSlotIndex */
            iload 13 /* j */
            iastore
        end local 15 // int frameSlotIndex
        end local 14 // com.oracle.truffle.llvm.parser.model.symbols.instructions.Instruction instruction
        30: .line 234
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        31: iload 13 /* j */
            aload 12 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructionCount:()I
            if_icmplt 21
        end local 13 // int j
        32: .line 258
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        33: .line 259
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.out:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.andNot:(Ljava/util/BitSet;)V
        34: .line 261
            aload 12 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getInstructionCount:()I
            iconst_1
            isub
            istore 13 /* terminatingInstructionIndex */
        start local 13 // int terminatingInstructionIndex
        35: .line 262
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            astore 14 /* valuesThatDieInBlock */
        start local 14 // java.util.BitSet valuesThatDieInBlock
        36: .line 263
            iconst_m1
            istore 15 /* bitIndex */
        start local 15 // int bitIndex
        37: .line 264
            goto 43
        38: .line 265
      StackMap locals: java.util.BitSet int
      StackMap stack:
            getstatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.$assertionsDisabled:Z
            ifne 39
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* bitIndex */
            iaload
            ifge 39
            new java.lang.AssertionError
            dup
            ldc "must have a last usage, otherwise the value would not be alive in this block"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        39: .line 266
      StackMap locals:
      StackMap stack:
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiUses:Ljava/util/BitSet;
            iload 15 /* bitIndex */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 40
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* bitIndex */
            iaload
            iload 13 /* terminatingInstructionIndex */
            if_icmpne 42
        40: .line 269
      StackMap locals:
      StackMap stack:
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            iload 15 /* bitIndex */
            invokevirtual java.util.BitSet.set:(I)V
        41: .line 270
            goto 43
        42: .line 271
      StackMap locals:
      StackMap stack:
            aload 10 /* blockNullers */
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 15 /* bitIndex */
            aaload
            aload 7 /* lastInstructionIndexTouchingLocal */
            iload 15 /* bitIndex */
            iaload
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.<init>:(Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;I)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        43: .line 264
      StackMap locals:
      StackMap stack:
            aload 14 /* valuesThatDieInBlock */
            iload 15 /* bitIndex */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            dup
            istore 15 /* bitIndex */
            ifge 38
        44: .line 276
            aload 3 /* predecessors */
            iload 9 /* i */
            aaload
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 17
            goto 48
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayList[] java.util.BitSet[] java.util.BitSet[] int[] com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor int java.util.ArrayList com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock int java.util.BitSet int top java.util.Iterator
      StackMap stack:
        45: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 16 /* predecessor */
        start local 16 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessor
        46: .line 277
            aload 2 /* blockInfos */
            aload 16 /* predecessor */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            astore 18 /* predInfo */
        start local 18 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo predInfo
        47: .line 278
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            aload 18 /* predInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.out:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
        end local 18 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo predInfo
        end local 16 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessor
        48: .line 276
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        49: .line 280
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            invokevirtual java.util.BitSet.andNot:(Ljava/util/BitSet;)V
        50: .line 283
            aload 10 /* blockNullers */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        51: .line 284
            aload 4 /* nullableWithinBlock */
            iload 9 /* i */
            aload 10 /* blockNullers */
            aastore
        52: .line 285
            aload 5 /* nullableBeforeBlock */
            iload 9 /* i */
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            aastore
        53: .line 286
            aload 6 /* nullableAfterBlock */
            iload 9 /* i */
            aload 11 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            aastore
        end local 15 // int bitIndex
        end local 14 // java.util.BitSet valuesThatDieInBlock
        end local 13 // int terminatingInstructionIndex
        end local 12 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        end local 11 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 10 // java.util.ArrayList blockNullers
        54: .line 216
            iinc 9 /* i */ 1
      StackMap locals: com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis java.util.List com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] java.util.ArrayList[] java.util.ArrayList[] java.util.BitSet[] java.util.BitSet[] int[] com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor int
      StackMap stack:
        55: iload 9 /* i */
            aload 1 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 9 // int i
        56: .line 288
            new com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            aload 4 /* nullableWithinBlock */
            aload 5 /* nullableBeforeBlock */
            aload 6 /* nullableAfterBlock */
            invokespecial com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.<init>:([Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;[Ljava/util/ArrayList;[Ljava/util/BitSet;[Ljava/util/BitSet;)V
            areturn
        end local 8 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor nullerReadVisitor
        end local 7 // int[] lastInstructionIndexTouchingLocal
        end local 6 // java.util.BitSet[] nullableAfterBlock
        end local 5 // java.util.BitSet[] nullableBeforeBlock
        end local 4 // java.util.ArrayList[] nullableWithinBlock
        end local 3 // java.util.ArrayList[] predecessors
        end local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        end local 1 // java.util.List blocks
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot                               Name  Signature
            0   57     0                               this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0   57     1                             blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0   57     2                         blockInfos  [Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            0   57     3                       predecessors  [Ljava/util/ArrayList;
            1   57     4                nullableWithinBlock  [Ljava/util/ArrayList;
            2   57     5                nullableBeforeBlock  [Ljava/util/BitSet;
            3   57     6                 nullableAfterBlock  [Ljava/util/BitSet;
            4   57     7  lastInstructionIndexTouchingLocal  [I
            5   57     8                  nullerReadVisitor  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMNullerReadVisitor;
            6   56     9                                  i  I
            8   54    10                       blockNullers  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;
           10   54    11                          blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
           15   17    12                              param  Lcom/oracle/truffle/llvm/parser/model/functions/FunctionParameter;
           16   17    14                     frameSlotIndex  I
           19   54    12                              block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           20   32    13                                  j  I
           22   30    14                        instruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/Instruction;
           26   30    15                     frameSlotIndex  I
           35   54    13        terminatingInstructionIndex  I
           36   54    14               valuesThatDieInBlock  Ljava/util/BitSet;
           37   54    15                           bitIndex  I
           46   48    16                        predecessor  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
           47   48    18                           predInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;[Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;)Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
    MethodParameters:
              Name  Flags
      blocks        
      blockInfos    
      predecessors  

  private static java.util.ArrayList<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>[] computePredecessors(java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>);
    descriptor: (Ljava/util/List;)[Ljava/util/ArrayList;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.util.List blocks
         0: .line 317
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            anewarray java.util.ArrayList
            astore 1 /* result */
        start local 1 // java.util.ArrayList[] result
         1: .line 318
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 319
      StackMap locals: java.util.ArrayList[] int
      StackMap stack:
            aload 1 /* result */
            iload 2 /* i */
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            aastore
         4: .line 318
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 322
            aload 0 /* blocks */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: java.util.List java.util.ArrayList[] top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 2 /* block */
        start local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         8: .line 323
            aload 2 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getTerminatingInstruction:()Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;
            astore 4 /* terminatingInstruction */
        start local 4 // com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction terminatingInstruction
         9: .line 324
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 325
      StackMap locals: java.util.List java.util.ArrayList[] com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock java.util.Iterator com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction int
      StackMap stack:
            aload 1 /* result */
            aload 4 /* terminatingInstruction */
            iload 5 /* i */
            invokeinterface com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction.getSuccessor:(I)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            aaload
            aload 2 /* block */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 324
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 4 /* terminatingInstruction */
            invokeinterface com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction.getSuccessorCount:()I
            if_icmplt 11
        end local 5 // int i
        end local 4 // com.oracle.truffle.llvm.parser.model.symbols.instructions.TerminatingInstruction terminatingInstruction
        end local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        14: .line 322
      StackMap locals: java.util.List java.util.ArrayList[] top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        15: .line 328
            aload 1 /* result */
            areturn
        end local 1 // java.util.ArrayList[] result
        end local 0 // java.util.List blocks
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   16     0                  blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            1   16     1                  result  [Ljava/util/ArrayList;
            2    6     2                       i  I
            8   14     2                   block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            9   14     4  terminatingInstruction  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/TerminatingInstruction;
           10   14     5                       i  I
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;)[Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
    MethodParameters:
        Name  Flags
      blocks  

  private static void addBlockToWorkList(java.util.ArrayDeque<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, java.util.BitSet, com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock);
    descriptor: (Ljava/util/ArrayDeque;Ljava/util/BitSet;Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.util.ArrayDeque workList
        start local 1 // java.util.BitSet blockOnWorkList
        start local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessorBlock
         0: .line 332
            aload 1 /* blockOnWorkList */
            aload 2 /* predecessorBlock */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            invokevirtual java.util.BitSet.get:(I)Z
            istore 3 /* predecessorBlockIndex */
        start local 3 // boolean predecessorBlockIndex
         1: .line 333
            iload 3 /* predecessorBlockIndex */
            ifne 4
         2: .line 334
            aload 0 /* workList */
            aload 2 /* predecessorBlock */
            invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
         3: .line 335
            aload 1 /* blockOnWorkList */
            aload 2 /* predecessorBlock */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            invokevirtual java.util.BitSet.set:(I)V
         4: .line 337
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // boolean predecessorBlockIndex
        end local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock predecessorBlock
        end local 1 // java.util.BitSet blockOnWorkList
        end local 0 // java.util.ArrayDeque workList
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0               workList  Ljava/util/ArrayDeque<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0    5     1        blockOnWorkList  Ljava/util/BitSet;
            0    5     2       predecessorBlock  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
            1    5     3  predecessorBlockIndex  Z
    Signature: (Ljava/util/ArrayDeque<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;Ljava/util/BitSet;Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;)V
    MethodParameters:
                  Name  Flags
      workList          
      blockOnWorkList   
      predecessorBlock  

  private static com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock removeBlockFromWorkList(java.util.ArrayDeque<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, java.util.BitSet);
    descriptor: (Ljava/util/ArrayDeque;Ljava/util/BitSet;)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.ArrayDeque workList
        start local 1 // java.util.BitSet blockOnWorkList
         0: .line 340
            aload 0 /* workList */
            invokevirtual java.util.ArrayDeque.removeLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            astore 2 /* block */
        start local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
         1: .line 341
            aload 1 /* blockOnWorkList */
            aload 2 /* block */
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getBlockIndex:()I
            invokevirtual java.util.BitSet.clear:(I)V
         2: .line 342
            aload 2 /* block */
            areturn
        end local 2 // com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock block
        end local 1 // java.util.BitSet blockOnWorkList
        end local 0 // java.util.ArrayDeque workList
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0         workList  Ljava/util/ArrayDeque<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0    3     1  blockOnWorkList  Ljava/util/BitSet;
            1    3     2            block  Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    Signature: (Ljava/util/ArrayDeque<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;Ljava/util/BitSet;)Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;
    MethodParameters:
                 Name  Flags
      workList         
      blockOnWorkList  

  private static boolean or(java.util.BitSet, java.util.BitSet);
    descriptor: (Ljava/util/BitSet;Ljava/util/BitSet;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.BitSet dest
        start local 1 // java.util.BitSet source
         0: .line 346
            getstatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.$assertionsDisabled:Z
            ifne 1
            aload 0 /* dest */
            invokevirtual java.util.BitSet.size:()I
            aload 1 /* source */
            invokevirtual java.util.BitSet.size:()I
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* dest */
            aload 1 /* source */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.isChangeForOrNecessary:(Ljava/util/BitSet;Ljava/util/BitSet;)Z
            ifeq 4
         2: .line 348
            aload 0 /* dest */
            aload 1 /* source */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
         3: .line 349
            iconst_1
            ireturn
         4: .line 351
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.util.BitSet source
        end local 0 // java.util.BitSet dest
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    dest  Ljava/util/BitSet;
            0    5     1  source  Ljava/util/BitSet;
    MethodParameters:
        Name  Flags
      dest    
      source  

  private static boolean isChangeForOrNecessary(java.util.BitSet, java.util.BitSet);
    descriptor: (Ljava/util/BitSet;Ljava/util/BitSet;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.BitSet dest
        start local 1 // java.util.BitSet source
         0: .line 356
            iconst_m1
            istore 2 /* bitIndex */
        start local 2 // int bitIndex
         1: .line 357
            goto 4
         2: .line 358
      StackMap locals: int
      StackMap stack:
            aload 0 /* dest */
            iload 2 /* bitIndex */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 4
         3: .line 359
            iconst_1
            ireturn
         4: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            iload 2 /* bitIndex */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            dup
            istore 2 /* bitIndex */
            ifge 2
         5: .line 362
            iconst_0
            ireturn
        end local 2 // int bitIndex
        end local 1 // java.util.BitSet source
        end local 0 // java.util.BitSet dest
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      dest  Ljava/util/BitSet;
            0    6     1    source  Ljava/util/BitSet;
            1    6     2  bitIndex  I
    MethodParameters:
        Name  Flags
      dest    
      source  

  private static void processRead(com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        start local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
         0: .line 366
            aload 0 /* symbol */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
            istore 2 /* frameSlotIndex */
        start local 2 // int frameSlotIndex
         1: .line 367
            aload 1 /* blockInfo */
            iload 2 /* frameSlotIndex */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.processRead:(Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
         2: .line 368
            return
        end local 2 // int frameSlotIndex
        end local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0          symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    3     1       blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            1    3     2  frameSlotIndex  I
    MethodParameters:
           Name  Flags
      symbol     
      blockInfo  

  private static void processRead(com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo, int);
    descriptor: (Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        start local 1 // int frameSlotIndex
         0: .line 371
            iload 1 /* frameSlotIndex */
            iflt 3
         1: .line 372
            aload 0 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            iload 1 /* frameSlotIndex */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 3
         2: .line 373
            aload 0 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.gen:Ljava/util/BitSet;
            iload 1 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
         3: .line 376
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int frameSlotIndex
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0       blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            0    4     1  frameSlotIndex  I
    MethodParameters:
                Name  Flags
      blockInfo       
      frameSlotIndex  

  private static void processValueUsedInPhi(com.oracle.truffle.llvm.parser.model.SymbolImpl, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
        start local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
         0: .line 379
            aload 0 /* symbol */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
            istore 2 /* frameSlotIndex */
        start local 2 // int frameSlotIndex
         1: .line 380
            iload 2 /* frameSlotIndex */
            iflt 3
         2: .line 381
            aload 1 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiUses:Ljava/util/BitSet;
            iload 2 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
         3: .line 383
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int frameSlotIndex
        end local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0          symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            0    4     1       blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            1    4     2  frameSlotIndex  I
    MethodParameters:
           Name  Flags
      symbol     
      blockInfo  

  private static void processPhiWrite(com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction phi
        start local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
         0: .line 386
            aload 0 /* phi */
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.resolve:(Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
            istore 2 /* frameSlotIndex */
        start local 2 // int frameSlotIndex
         1: .line 387
            iload 2 /* frameSlotIndex */
            iflt 4
         2: .line 388
            aload 1 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            iload 2 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
         3: .line 389
            aload 1 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            iload 2 /* frameSlotIndex */
            invokevirtual java.util.BitSet.set:(I)V
         4: .line 391
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int frameSlotIndex
        end local 1 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        end local 0 // com.oracle.truffle.llvm.parser.model.symbols.instructions.PhiInstruction phi
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0             phi  Lcom/oracle/truffle/llvm/parser/model/symbols/instructions/PhiInstruction;
            0    5     1       blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            1    5     2  frameSlotIndex  I
    MethodParameters:
           Name  Flags
      phi        
      blockInfo  

  private static int resolve(com.oracle.truffle.llvm.parser.model.SymbolImpl);
    descriptor: (Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
         0: .line 394
            aload 0 /* symbol */
            instanceof com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            ifeq 4
         1: .line 395
            aload 0 /* symbol */
            checkcast com.oracle.truffle.llvm.runtime.types.symbols.SSAValue
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getFrameIdentifier:()I
            istore 1 /* identifier */
        start local 1 // int identifier
         2: .line 396
            getstatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.$assertionsDisabled:Z
            ifne 3
            iload 1 /* identifier */
            ifge 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 397
      StackMap locals: int
      StackMap stack:
            iload 1 /* identifier */
            ireturn
        end local 1 // int identifier
         4: .line 399
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // com.oracle.truffle.llvm.parser.model.SymbolImpl symbol
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      symbol  Lcom/oracle/truffle/llvm/parser/model/SymbolImpl;
            2    4     1  identifier  I
    MethodParameters:
        Name  Flags
      symbol  

  private void printIntermediateResult(java.io.PrintStream, java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[], );
    descriptor: (Ljava/io/PrintStream;Ljava/util/List;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // java.io.PrintStream logLivenessStream
        start local 2 // java.util.List blocks
        start local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        start local 4 // int processedBlocks
         0: .line 708
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* builder */
        start local 5 // java.lang.StringBuilder builder
         1: .line 709
            aload 5 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.functionDefinition:Lcom/oracle/truffle/llvm/parser/model/functions/FunctionDefinition;
            invokevirtual com.oracle.truffle.llvm.parser.model.functions.FunctionDefinition.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 710
            aload 5 /* builder */
            ldc " (processed "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 711
            aload 5 /* builder */
            iload 4 /* processedBlocks */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         4: .line 712
            aload 5 /* builder */
            ldc " blocks - CFG has "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 713
            aload 5 /* builder */
            aload 2 /* blocks */
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         6: .line 714
            aload 5 /* builder */
            ldc " blocks)\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 715
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 37
         9: .line 716
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 3 /* blockInfos */
            iload 6 /* i */
            aaload
            astore 7 /* blockInfo */
        start local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        10: .line 717
            aload 5 /* builder */
            ldc "Basic block "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 718
            aload 5 /* builder */
            iload 6 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        12: .line 719
            aload 5 /* builder */
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 720
            aload 5 /* builder */
            aload 2 /* blocks */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 721
            aload 5 /* builder */
            ldc ")\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 723
            aload 5 /* builder */
            ldc "  In:      "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 724
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.in:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 725
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 727
            aload 5 /* builder */
            ldc "  Gen:     "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 728
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.gen:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 729
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 731
            aload 5 /* builder */
            ldc "  Kill:    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 732
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.kill:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 733
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 735
            aload 5 /* builder */
            ldc "  Def:     "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 736
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.defs:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 737
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 739
            aload 5 /* builder */
            ldc "  PhiDefs: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 740
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiDefs:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 741
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 743
            aload 5 /* builder */
            ldc "  PhiUses: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 744
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.phiUses:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        32: .line 745
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 747
            aload 5 /* builder */
            ldc "  Out:     "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 748
            aload 5 /* builder */
            aload 0 /* this */
            aload 7 /* blockInfo */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo.out:Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 749
            aload 5 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo blockInfo
        36: .line 715
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 6 /* i */
            aload 3 /* blockInfos */
            arraylength
            if_icmplt 9
        end local 6 // int i
        38: .line 752
            aload 1 /* logLivenessStream */
            aload 5 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        39: .line 753
            return
        end local 5 // java.lang.StringBuilder builder
        end local 4 // int processedBlocks
        end local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo[] blockInfos
        end local 2 // java.util.List blocks
        end local 1 // java.io.PrintStream logLivenessStream
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   40     0               this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0   40     1  logLivenessStream  Ljava/io/PrintStream;
            0   40     2             blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0   40     3         blockInfos  [Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
            0   40     4    processedBlocks  I
            1   40     5            builder  Ljava/lang/StringBuilder;
            8   38     6                  i  I
           10   36     7          blockInfo  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;
    Signature: (Ljava/io/PrintStream;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;[Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$BlockInfo;I)V
    MethodParameters:
                   Name  Flags
      logLivenessStream  
      blocks             
      blockInfos         
      processedBlocks    

  private void printResult(java.io.PrintStream, java.util.List<com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock>, com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult);
    descriptor: (Ljava/io/PrintStream;Ljava/util/List;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // java.io.PrintStream logLivenessStream
        start local 2 // java.util.List blocks
        start local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult result
         0: .line 756
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* builder */
        start local 4 // java.lang.StringBuilder builder
         1: .line 757
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 18
         3: .line 758
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 4 /* builder */
            ldc "Basic block "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 759
            aload 4 /* builder */
            iload 5 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         5: .line 760
            aload 4 /* builder */
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 761
            aload 4 /* builder */
            aload 2 /* blocks */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock
            invokevirtual com.oracle.truffle.llvm.parser.model.blocks.InstructionBlock.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 762
            aload 4 /* builder */
            ldc ")\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 764
            aload 4 /* builder */
            ldc "  NullableBefore: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 765
            aload 4 /* builder */
            aload 0 /* this */
            aload 3 /* result */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.nullableBeforeBlock:[Ljava/util/BitSet;
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 766
            aload 4 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 768
            aload 4 /* builder */
            ldc "  NullableWithin:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 769
            aload 4 /* builder */
            aload 3 /* result */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.nullableWithinBlock:[Ljava/util/ArrayList;
            iload 5 /* i */
            aaload
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocalNullers:(Ljava/util/ArrayList;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        13: .line 770
            aload 4 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 772
            aload 4 /* builder */
            ldc "  NullableAfter:  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 773
            aload 4 /* builder */
            aload 0 /* this */
            aload 3 /* result */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult.nullableAfterBlock:[Ljava/util/BitSet;
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.formatLocals:(Ljava/util/BitSet;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 774
            aload 4 /* builder */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 757
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 2 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 5 // int i
        19: .line 777
            aload 1 /* logLivenessStream */
            aload 4 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 778
            return
        end local 4 // java.lang.StringBuilder builder
        end local 3 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult result
        end local 2 // java.util.List blocks
        end local 1 // java.io.PrintStream logLivenessStream
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0   21     1  logLivenessStream  Ljava/io/PrintStream;
            0   21     2             blocks  Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;
            0   21     3             result  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;
            1   21     4            builder  Ljava/lang/StringBuilder;
            2   19     5                  i  I
    Signature: (Ljava/io/PrintStream;Ljava/util/List<Lcom/oracle/truffle/llvm/parser/model/blocks/InstructionBlock;>;Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$LLVMLivenessAnalysisResult;)V
    MethodParameters:
                   Name  Flags
      logLivenessStream  
      blocks             
      result             

  private static void appendValue(java.lang.StringBuilder, com.oracle.truffle.llvm.runtime.types.symbols.SSAValue);
    descriptor: (Ljava/lang/StringBuilder;Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder str
        start local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
         0: .line 781
            aload 0 /* str */
            aload 1 /* value */
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getFrameIdentifier:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         1: .line 782
            aload 1 /* value */
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getName:()Ljava/lang/String;
            ifnull 3
            ldc "<anon>"
            aload 1 /* value */
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 783
            aload 0 /* str */
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* value */
            invokeinterface com.oracle.truffle.llvm.runtime.types.symbols.SSAValue.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 785
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.llvm.runtime.types.symbols.SSAValue value
        end local 0 // java.lang.StringBuilder str
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0    str  Ljava/lang/StringBuilder;
            0    4     1  value  Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
    MethodParameters:
       Name  Flags
      str    
      value  

  private java.lang.String formatLocals(java.util.BitSet);
    descriptor: (Ljava/util/BitSet;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
        start local 1 // java.util.BitSet bitSet
         0: .line 788
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         1: .line 789
            iconst_m1
            istore 3 /* bitIndex */
        start local 3 // int bitIndex
         2: .line 790
            goto 6
         3: .line 791
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 5
         4: .line 792
            aload 2 /* result */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 794
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.frameSlots:[Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            iload 3 /* bitIndex */
            aaload
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.appendValue:(Ljava/lang/StringBuilder;Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)V
         6: .line 790
      StackMap locals:
      StackMap stack:
            aload 1 /* bitSet */
            iload 3 /* bitIndex */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            dup
            istore 3 /* bitIndex */
            ifge 3
         7: .line 796
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int bitIndex
        end local 2 // java.lang.StringBuilder result
        end local 1 // java.util.BitSet bitSet
        end local 0 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis;
            0    8     1    bitSet  Ljava/util/BitSet;
            1    8     2    result  Ljava/lang/StringBuilder;
            2    8     3  bitIndex  I
    MethodParameters:
        Name  Flags
      bitSet  

  private static  formatLocalNullers(java.util.ArrayList<com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation>);
    descriptor: (Ljava/util/ArrayList;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.ArrayList nullers
         0: .line 800
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         1: .line 801
            aload 0 /* nullers */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.ArrayList java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
            astore 2 /* nuller */
        start local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation nuller
         3: .line 802
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 5
         4: .line 803
            aload 1 /* result */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 805
      StackMap locals: java.util.ArrayList java.lang.StringBuilder com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation java.util.Iterator
      StackMap stack:
            aload 1 /* result */
            aload 2 /* nuller */
            invokevirtual com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation.getIdentifier:()Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;
            invokestatic com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis.appendValue:(Ljava/lang/StringBuilder;Lcom/oracle/truffle/llvm/runtime/types/symbols/SSAValue;)V
        end local 2 // com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation nuller
         6: .line 801
      StackMap locals: java.util.ArrayList java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 807
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder result
        end local 0 // java.util.ArrayList nullers
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  nullers  Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;
            1    8     1   result  Ljava/lang/StringBuilder;
            3    6     2   nuller  Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;
    Signature: (Ljava/util/ArrayList<Lcom/oracle/truffle/llvm/parser/LLVMLivenessAnalysis$NullerInformation;>;)Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      nullers  
}
SourceFile: "LLVMLivenessAnalysis.java"
NestMembers:
  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLocalReadVisitor  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor  com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation
InnerClasses:
  private final BlockInfo = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$BlockInfo of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  public LLVMLivenessAnalysisResult = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessAnalysisResult of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  private final LLVMLivenessReadVisitor = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLivenessReadVisitor of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  private abstract LLVMLocalReadVisitor = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMLocalReadVisitor of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  private final LLVMNullerReadVisitor = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$LLVMNullerReadVisitor of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  public final NullerInformation = com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis$NullerInformation of com.oracle.truffle.llvm.parser.LLVMLivenessAnalysis
  public final Phi = com.oracle.truffle.llvm.parser.LLVMPhiManager$Phi of com.oracle.truffle.llvm.parser.LLVMPhiManager
  public abstract ValueVisitor = com.oracle.truffle.llvm.parser.ValueList$ValueVisitor of com.oracle.truffle.llvm.parser.ValueList