public abstract class org.graalvm.compiler.java.LocalLiveness
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.java.LocalLiveness
  super_class: java.lang.Object
{
  protected final org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks;
    descriptor: [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
    flags: (0x0014) ACC_PROTECTED, 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 88
            ldc Lorg/graalvm/compiler/java/LocalLiveness;
            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 org.graalvm.compiler.java.LocalLiveness.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.graalvm.compiler.java.LocalLiveness compute(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.bytecode.BytecodeStream, org.graalvm.compiler.java.BciBlockMapping$BciBlock[], int, int);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeStream;[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;II)Lorg/graalvm/compiler/java/LocalLiveness;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.debug.DebugContext debug
        start local 1 // org.graalvm.compiler.bytecode.BytecodeStream stream
        start local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks
        start local 3 // int maxLocals
        start local 4 // int loopCount
         0: .line 92
            iload 3 /* maxLocals */
            bipush 64
            if_icmpgt 1
            new org.graalvm.compiler.java.SmallLocalLiveness
            dup
            aload 2 /* blocks */
            iload 3 /* maxLocals */
            iload 4 /* loopCount */
            invokespecial org.graalvm.compiler.java.SmallLocalLiveness.<init>:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;II)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: new org.graalvm.compiler.java.LargeLocalLiveness
            dup
            aload 2 /* blocks */
            iload 3 /* maxLocals */
            iload 4 /* loopCount */
            invokespecial org.graalvm.compiler.java.LargeLocalLiveness.<init>:([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;II)V
      StackMap locals:
      StackMap stack: org.graalvm.compiler.java.LocalLiveness
         2: astore 5 /* liveness */
        start local 5 // org.graalvm.compiler.java.LocalLiveness liveness
         3: .line 93
            aload 5 /* liveness */
            aload 0 /* debug */
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.computeLiveness:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeStream;)V
         4: .line 94
            aload 5 /* liveness */
            areturn
        end local 5 // org.graalvm.compiler.java.LocalLiveness liveness
        end local 4 // int loopCount
        end local 3 // int maxLocals
        end local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks
        end local 1 // org.graalvm.compiler.bytecode.BytecodeStream stream
        end local 0 // org.graalvm.compiler.debug.DebugContext debug
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0      debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    5     1     stream  Lorg/graalvm/compiler/bytecode/BytecodeStream;
            0    5     2     blocks  [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            0    5     3  maxLocals  I
            0    5     4  loopCount  I
            3    5     5   liveness  Lorg/graalvm/compiler/java/LocalLiveness;
    MethodParameters:
           Name  Flags
      debug      
      stream     
      blocks     
      maxLocals  
      loopCount  

  protected void <init>(org.graalvm.compiler.java.BciBlockMapping$BciBlock[]);
    descriptor: ([Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks
         0: .line 97
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 98
            aload 0 /* this */
            aload 1 /* blocks */
            putfield org.graalvm.compiler.java.LocalLiveness.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
         2: .line 99
            return
        end local 1 // org.graalvm.compiler.java.BciBlockMapping$BciBlock[] blocks
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    3     1  blocks  [Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
    MethodParameters:
        Name  Flags
      blocks  

  void computeLiveness(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.bytecode.BytecodeStream);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/bytecode/BytecodeStream;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.bytecode.BytecodeStream stream
         0: .line 102
            aload 0 /* this */
            getfield org.graalvm.compiler.java.LocalLiveness.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 4
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream top int int org.graalvm.compiler.java.BciBlockMapping$BciBlock[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* block */
        start local 3 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
         2: .line 103
            aload 0 /* this */
            aload 2 /* stream */
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.computeLocalLiveness:(Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
        end local 3 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
         3: .line 102
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 107
            iconst_0
            istore 4 /* iteration */
        start local 4 // int iteration
         6: .line 109
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.java.LocalLiveness.$assertionsDisabled:Z
            ifne 7
            aload 1 /* debug */
            iload 4 /* iteration */
            invokestatic org.graalvm.compiler.java.LocalLiveness.traceIteration:(Lorg/graalvm/compiler/debug/DebugContext;I)Z
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 110
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* changed */
        start local 3 // boolean changed
         8: .line 111
            aload 0 /* this */
            getfield org.graalvm.compiler.java.LocalLiveness.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            arraylength
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         9: goto 31
        10: .line 112
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.java.LocalLiveness.blocks:[Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            iload 5 /* i */
            aaload
            astore 6 /* block */
        start local 6 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        11: .line 113
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            istore 7 /* blockID */
        start local 7 // int blockID
        12: .line 114
            getstatic org.graalvm.compiler.java.LocalLiveness.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            aload 1 /* debug */
            aload 6 /* block */
            iload 7 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.traceStart:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 116
      StackMap locals: org.graalvm.compiler.java.BciBlockMapping$BciBlock int
      StackMap stack:
            iload 4 /* iteration */
            ifne 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* blockChanged */
        start local 8 // boolean blockChanged
        16: .line 117
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessorCount:()I
            ifle 26
        17: .line 118
            aload 0 /* this */
            iload 7 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.liveOutCardinality:(I)I
            istore 9 /* oldCardinality */
        start local 9 // int oldCardinality
        18: .line 119
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getSuccessors:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 22
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock int int int top java.util.Iterator
      StackMap stack:
        19: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.java.BciBlockMapping$BciBlock
            astore 10 /* sux */
        start local 10 // org.graalvm.compiler.java.BciBlockMapping$BciBlock sux
        20: .line 120
            getstatic org.graalvm.compiler.java.LocalLiveness.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            aload 1 /* debug */
            aload 10 /* sux */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.traceSuccessor:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 121
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            iload 7 /* blockID */
            aload 10 /* sux */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.propagateLiveness:(II)V
        end local 10 // org.graalvm.compiler.java.BciBlockMapping$BciBlock sux
        22: .line 119
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock int int int top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        23: .line 123
            iload 8 /* blockChanged */
            iload 9 /* oldCardinality */
            aload 0 /* this */
            iload 7 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.liveOutCardinality:(I)I
            if_icmpeq 24
            iconst_1
            goto 25
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock int int int
      StackMap stack: int
        24: iconst_0
      StackMap locals: org.graalvm.compiler.java.LocalLiveness org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.bytecode.BytecodeStream int int int org.graalvm.compiler.java.BciBlockMapping$BciBlock int int int
      StackMap stack: int int
        25: ior
            istore 8 /* blockChanged */
        end local 9 // int oldCardinality
        26: .line 126
      StackMap locals:
      StackMap stack:
            iload 8 /* blockChanged */
            ifeq 29
        27: .line 127
            aload 0 /* this */
            iload 7 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.updateLiveness:(I)V
        28: .line 128
            getstatic org.graalvm.compiler.java.LocalLiveness.$assertionsDisabled:Z
            ifne 29
            aload 0 /* this */
            aload 1 /* debug */
            aload 6 /* block */
            iload 7 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.traceEnd:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
            ifne 29
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        29: .line 130
      StackMap locals:
      StackMap stack:
            iload 3 /* changed */
            iload 8 /* blockChanged */
            ior
            istore 3 /* changed */
        end local 8 // boolean blockChanged
        end local 7 // int blockID
        end local 6 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        30: .line 111
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        31: iload 5 /* i */
            ifge 10
        end local 5 // int i
        32: .line 132
            iinc 4 /* iteration */ 1
        33: .line 133
            iload 3 /* changed */
            ifne 6
        34: .line 134
            return
        end local 4 // int iteration
        end local 3 // boolean changed
        end local 2 // org.graalvm.compiler.bytecode.BytecodeStream stream
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lorg/graalvm/compiler/java/LocalLiveness;
            0   35     1           debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   35     2          stream  Lorg/graalvm/compiler/bytecode/BytecodeStream;
            2    3     3           block  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            8   35     3         changed  Z
            6   35     4       iteration  I
            9   32     5               i  I
           11   30     6           block  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
           12   30     7         blockID  I
           16   30     8    blockChanged  Z
           18   26     9  oldCardinality  I
           20   22    10             sux  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
    MethodParameters:
        Name  Flags
      debug   
      stream  

  private static boolean traceIteration(org.graalvm.compiler.debug.DebugContext, int);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.debug.DebugContext debug
        start local 1 // int iteration
         0: .line 137
            aload 0 /* debug */
            ldc "Iteration %d"
            iload 1 /* iteration */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
         1: .line 138
            iconst_1
            ireturn
        end local 1 // int iteration
        end local 0 // org.graalvm.compiler.debug.DebugContext debug
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0      debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    2     1  iteration  I
    MethodParameters:
           Name  Flags
      debug      
      iteration  

  private boolean traceEnd(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.java.BciBlockMapping$BciBlock, int);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        start local 3 // int blockID
         0: .line 142
            aload 1 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 4
         1: .line 143
            aload 1 /* debug */
            ldc "  end   B%d  [%d, %d]  in: %s  out: %s  gen: %s  kill: %s"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveIn:(I)Ljava/lang/String;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveOut:(I)Ljava/lang/String;
            aastore
            dup
            iconst_5
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveGen:(I)Ljava/lang/String;
            aastore
            dup
            bipush 6
         2: .line 144
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveKill:(I)Ljava/lang/String;
            aastore
         3: .line 143
            invokevirtual org.graalvm.compiler.debug.DebugContext.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 146
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int blockID
        end local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    5     1    debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    5     2    block  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            0    5     3  blockID  I
    MethodParameters:
         Name  Flags
      debug    
      block    
      blockID  

  private boolean traceSuccessor(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.java.BciBlockMapping$BciBlock);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock sux
         0: .line 150
            aload 1 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 2
         1: .line 151
            aload 1 /* debug */
            ldc "    Successor B%d: %s"
            aload 2 /* sux */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            aload 0 /* this */
            aload 2 /* sux */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveIn:(I)Ljava/lang/String;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;ILjava/lang/Object;)V
         2: .line 153
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock sux
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    3     1  debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    3     2    sux  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
    MethodParameters:
       Name  Flags
      debug  
      sux    

  private boolean traceStart(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.java.BciBlockMapping$BciBlock, int);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        start local 3 // int blockID
         0: .line 157
            aload 1 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 4
         1: .line 158
            aload 1 /* debug */
            ldc "  start B%d  [%d, %d]  in: %s  out: %s  gen: %s  kill: %s"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveIn:(I)Ljava/lang/String;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveOut:(I)Ljava/lang/String;
            aastore
            dup
            iconst_5
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveGen:(I)Ljava/lang/String;
            aastore
            dup
            bipush 6
         2: .line 159
            aload 0 /* this */
            iload 3 /* blockID */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.debugLiveKill:(I)Ljava/lang/String;
            aastore
         3: .line 158
            invokevirtual org.graalvm.compiler.debug.DebugContext.logv:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 161
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int blockID
        end local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    5     1    debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    5     2    block  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            0    5     3  blockID  I
    MethodParameters:
         Name  Flags
      debug    
      block    
      blockID  

  public abstract boolean localIsLiveIn(org.graalvm.compiler.java.BciBlockMapping$BciBlock, int);
    descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      block  
      local  

  public abstract boolean localIsChangedInLoop(int, int);
    descriptor: (II)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      loopId  
      local   

  public abstract boolean localIsLiveOut(org.graalvm.compiler.java.BciBlockMapping$BciBlock, int);
    descriptor: (Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;I)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      block  
      local  

  protected abstract java.lang.String debugLiveIn(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract java.lang.String debugLiveOut(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract java.lang.String debugLiveGen(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract java.lang.String debugLiveKill(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract int liveOutCardinality(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract void propagateLiveness(int, int);
    descriptor: (II)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      blockID      
      successorID  

  protected abstract void updateLiveness(int);
    descriptor: (I)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  

  protected abstract void loadOne(int, int);
    descriptor: (II)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  
      local    

  protected abstract void storeOne(int, int);
    descriptor: (II)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      blockID  
      local    

  private void computeLocalLiveness(org.graalvm.compiler.bytecode.BytecodeStream, org.graalvm.compiler.java.BciBlockMapping$BciBlock);
    descriptor: (Lorg/graalvm/compiler/bytecode/BytecodeStream;Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // org.graalvm.compiler.bytecode.BytecodeStream stream
        start local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
         0: .line 225
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.isExceptionDispatch:()Z
            ifeq 2
         1: .line 226
            return
         2: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.java.BciBlockMapping$BciBlock.getId:()I
            istore 3 /* blockID */
        start local 3 // int blockID
         3: .line 230
            aload 1 /* stream */
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.startBci:I
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.setBCI:(I)V
         4: .line 231
            goto 50
         5: .line 232
      StackMap locals: int
      StackMap stack:
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
            lookupswitch { // 52
                   21: 20
                   22: 6
                   23: 20
                   24: 6
                   25: 20
                   26: 22
                   27: 24
                   28: 26
                   29: 28
                   30: 8
                   31: 10
                   32: 12
                   33: 14
                   34: 22
                   35: 24
                   36: 26
                   37: 28
                   38: 8
                   39: 10
                   40: 12
                   41: 14
                   42: 22
                   43: 24
                   44: 26
                   45: 28
                   54: 40
                   55: 30
                   56: 40
                   57: 30
                   58: 40
                   59: 42
                   60: 44
                   61: 46
                   62: 48
                   63: 32
                   64: 34
                   65: 36
                   66: 38
                   67: 42
                   68: 44
                   69: 46
                   70: 48
                   71: 32
                   72: 34
                   73: 36
                   74: 38
                   75: 42
                   76: 44
                   77: 46
                   78: 48
                  132: 16
                  169: 20
              default: 49
          }
         6: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadTwo:(II)V
         7: .line 236
            goto 49
         8: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_0
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadTwo:(II)V
         9: .line 240
            goto 49
        10: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_1
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadTwo:(II)V
        11: .line 244
            goto 49
        12: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_2
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadTwo:(II)V
        13: .line 248
            goto 49
        14: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_3
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadTwo:(II)V
        15: .line 252
            goto 49
        16: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
            istore 4 /* localIndex */
        start local 4 // int localIndex
        17: .line 255
            aload 0 /* this */
            iload 3 /* blockID */
            iload 4 /* localIndex */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        18: .line 256
            aload 0 /* this */
            iload 3 /* blockID */
            iload 4 /* localIndex */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        19: .line 257
            goto 49
        end local 4 // int localIndex
        20: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        21: .line 263
            goto 49
        22: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_0
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        23: .line 268
            goto 49
        24: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_1
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        25: .line 273
            goto 49
        26: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_2
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        27: .line 278
            goto 49
        28: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_3
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
        29: .line 283
            goto 49
        30: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeTwo:(II)V
        31: .line 288
            goto 49
        32: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_0
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeTwo:(II)V
        33: .line 292
            goto 49
        34: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_1
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeTwo:(II)V
        35: .line 296
            goto 49
        36: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_2
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeTwo:(II)V
        37: .line 300
            goto 49
        38: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_3
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeTwo:(II)V
        39: .line 304
            goto 49
        40: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readLocalIndex:()I
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        41: .line 309
            goto 49
        42: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_0
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        43: .line 314
            goto 49
        44: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_1
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        45: .line 319
            goto 49
        46: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_2
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        47: .line 324
            goto 49
        48: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blockID */
            iconst_3
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
        49: .line 331
      StackMap locals:
      StackMap stack:
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
        50: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* stream */
            invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBCI:()I
            aload 2 /* block */
            getfield org.graalvm.compiler.java.BciBlockMapping$BciBlock.endBci:I
            if_icmple 5
        51: .line 333
            return
        end local 3 // int blockID
        end local 2 // org.graalvm.compiler.java.BciBlockMapping$BciBlock block
        end local 1 // org.graalvm.compiler.bytecode.BytecodeStream stream
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   52     0        this  Lorg/graalvm/compiler/java/LocalLiveness;
            0   52     1      stream  Lorg/graalvm/compiler/bytecode/BytecodeStream;
            0   52     2       block  Lorg/graalvm/compiler/java/BciBlockMapping$BciBlock;
            3   52     3     blockID  I
           17   20     4  localIndex  I
    MethodParameters:
        Name  Flags
      stream  
      block   

  private void loadTwo(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // int blockID
        start local 2 // int local
         0: .line 336
            aload 0 /* this */
            iload 1 /* blockID */
            iload 2 /* local */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
         1: .line 337
            aload 0 /* this */
            iload 1 /* blockID */
            iload 2 /* local */
            iconst_1
            iadd
            invokevirtual org.graalvm.compiler.java.LocalLiveness.loadOne:(II)V
         2: .line 338
            return
        end local 2 // int local
        end local 1 // int blockID
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    3     1  blockID  I
            0    3     2    local  I
    MethodParameters:
         Name  Flags
      blockID  
      local    

  private void storeTwo(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.java.LocalLiveness this
        start local 1 // int blockID
        start local 2 // int local
         0: .line 341
            aload 0 /* this */
            iload 1 /* blockID */
            iload 2 /* local */
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
         1: .line 342
            aload 0 /* this */
            iload 1 /* blockID */
            iload 2 /* local */
            iconst_1
            iadd
            invokevirtual org.graalvm.compiler.java.LocalLiveness.storeOne:(II)V
         2: .line 343
            return
        end local 2 // int local
        end local 1 // int blockID
        end local 0 // org.graalvm.compiler.java.LocalLiveness this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/java/LocalLiveness;
            0    3     1  blockID  I
            0    3     2    local  I
    MethodParameters:
         Name  Flags
      blockID  
      local    
}
SourceFile: "LocalLiveness.java"
InnerClasses:
  public BciBlock = org.graalvm.compiler.java.BciBlockMapping$BciBlock of org.graalvm.compiler.java.BciBlockMapping