public class sun.jvm.hotspot.utilities.LivenessAnalysis
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.LivenessAnalysis
  super_class: java.lang.Object
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.LivenessAnalysis this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.utilities.LivenessAnalysis this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/LivenessAnalysis;

  public static sun.jvm.hotspot.utilities.LivenessPathList computeAllLivenessPaths(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/utilities/LivenessPathList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop target
         0: .line 48
            aload 0 /* target */
            iconst_1
            invokestatic sun.jvm.hotspot.utilities.LivenessAnalysis.computeAllLivenessPaths:(Lsun/jvm/hotspot/oops/Oop;Z)Lsun/jvm/hotspot/utilities/LivenessPathList;
            astore 1 /* list */
        start local 1 // sun.jvm.hotspot.utilities.LivenessPathList list
         1: .line 49
            aload 1 /* list */
            ifnull 2
            aload 1 /* list */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.size:()I
            ifne 3
         2: .line 51
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPathList
      StackMap stack:
            aconst_null
            areturn
         3: .line 53
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            areturn
        end local 1 // sun.jvm.hotspot.utilities.LivenessPathList list
        end local 0 // sun.jvm.hotspot.oops.Oop target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  Lsun/jvm/hotspot/oops/Oop;
            1    4     1    list  Lsun/jvm/hotspot/utilities/LivenessPathList;
    MethodParameters:
        Name  Flags
      target  

  private static sun.jvm.hotspot.utilities.LivenessPathList computeAllLivenessPaths(sun.jvm.hotspot.oops.Oop, boolean);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;Z)Lsun/jvm/hotspot/utilities/LivenessPathList;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Oop target
        start local 1 // boolean trimPathsThroughPopularObjects
         0: .line 72
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getRevPtrs:()Lsun/jvm/hotspot/utilities/ReversePtrs;
            astore 2 /* rev */
        start local 2 // sun.jvm.hotspot.utilities.ReversePtrs rev
         1: .line 73
            aload 2 /* rev */
            ifnonnull 3
         2: .line 74
            new java.lang.RuntimeException
            dup
            ldc "LivenessAnalysis requires ReversePtrs to have been computed"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 79
      StackMap locals: sun.jvm.hotspot.utilities.ReversePtrs
      StackMap stack:
            aload 2 /* rev */
            aload 0 /* target */
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrs.get:(Lsun/jvm/hotspot/oops/Oop;)Ljava/util/ArrayList;
            ifnonnull 5
         4: .line 81
            aconst_null
            areturn
         5: .line 86
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* visitedOops */
        start local 3 // java.util.Set visitedOops
         6: .line 91
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
         7: .line 90
            astore 4 /* visitedRoots */
        start local 4 // java.util.Map visitedRoots
         8: .line 93
            aload 3 /* visitedOops */
            aload 0 /* target */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 96
            new sun.jvm.hotspot.utilities.LivenessPathList
            dup
            invokespecial sun.jvm.hotspot.utilities.LivenessPathList.<init>:()V
            astore 5 /* list */
        start local 5 // sun.jvm.hotspot.utilities.LivenessPathList list
        10: .line 98
            new sun.jvm.hotspot.utilities.LivenessPath
            dup
            invokespecial sun.jvm.hotspot.utilities.LivenessPath.<init>:()V
            astore 6 /* path */
        start local 6 // sun.jvm.hotspot.utilities.LivenessPath path
        11: .line 99
            aload 6 /* path */
            new sun.jvm.hotspot.utilities.LivenessPathElement
            dup
            aload 0 /* target */
            aconst_null
            invokespecial sun.jvm.hotspot.utilities.LivenessPathElement.<init>:(Lsun/jvm/hotspot/oops/Oop;Lsun/jvm/hotspot/oops/FieldIdentifier;)V
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.push:(Lsun/jvm/hotspot/utilities/LivenessPathElement;)V
        12: .line 100
            aload 5 /* list */
            aload 6 /* path */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.add:(Lsun/jvm/hotspot/utilities/LivenessPath;)V
        end local 6 // sun.jvm.hotspot.utilities.LivenessPath path
        13: .line 106
      StackMap locals: java.util.Set java.util.Map sun.jvm.hotspot.utilities.LivenessPathList
      StackMap stack:
            aconst_null
            astore 6 /* path */
        start local 6 // sun.jvm.hotspot.utilities.LivenessPath path
        14: .line 108
            aload 5 /* list */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.size:()I
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
        15: goto 21
        16: .line 109
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPath int
      StackMap stack:
            aload 5 /* list */
            iload 7 /* i */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.get:(I)Lsun/jvm/hotspot/utilities/LivenessPath;
            astore 8 /* tmp */
        start local 8 // sun.jvm.hotspot.utilities.LivenessPath tmp
        17: .line 110
            aload 8 /* tmp */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.isComplete:()Z
            ifne 20
        18: .line 111
            aload 8 /* tmp */
            astore 6 /* path */
        19: .line 112
            goto 22
        end local 8 // sun.jvm.hotspot.utilities.LivenessPath tmp
        20: .line 108
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            ifge 16
        end local 7 // int i
        22: .line 117
      StackMap locals:
      StackMap stack:
            aload 6 /* path */
            ifnonnull 24
        23: .line 118
            aload 5 /* list */
            areturn
        24: .line 125
      StackMap locals:
      StackMap stack:
            aload 5 /* list */
            aload 6 /* path */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.remove:(Lsun/jvm/hotspot/utilities/LivenessPath;)V
        25: .line 131
            aload 2 /* rev */
            aload 6 /* path */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.peek:()Lsun/jvm/hotspot/utilities/LivenessPathElement;
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrs.get:(Lsun/jvm/hotspot/oops/Oop;)Ljava/util/ArrayList;
        26: .line 130
            astore 7 /* nextPtrs */
        start local 7 // java.util.ArrayList nextPtrs
        27: .line 136
            aload 7 /* nextPtrs */
            ifnull 13
        28: .line 138
            aload 7 /* nextPtrs */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
        29: goto 56
        30: .line 139
      StackMap locals: java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.utilities.LivenessPathElement
            astore 9 /* nextElement */
        start local 9 // sun.jvm.hotspot.utilities.LivenessPathElement nextElement
        31: .line 141
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.isRoot:()Z
            ifeq 32
            aload 4 /* visitedRoots */
            aload 9 /* nextElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 33
        32: .line 142
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPathElement
      StackMap stack:
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.isRoot:()Z
            ifne 56
            aload 3 /* visitedOops */
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 56
        33: .line 144
      StackMap locals:
      StackMap stack:
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.isRoot:()Z
            ifeq 36
        34: .line 145
            aload 4 /* visitedRoots */
            aload 9 /* nextElement */
            aload 9 /* nextElement */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 146
            goto 37
        36: .line 147
      StackMap locals:
      StackMap stack:
            aload 3 /* visitedOops */
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.getObj:()Lsun/jvm/hotspot/oops/Oop;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        37: .line 151
      StackMap locals:
      StackMap stack:
            aload 6 /* path */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.copy:()Lsun/jvm/hotspot/utilities/LivenessPath;
            astore 10 /* nextPath */
        start local 10 // sun.jvm.hotspot.utilities.LivenessPath nextPath
        38: .line 152
            aload 10 /* nextPath */
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.push:(Lsun/jvm/hotspot/utilities/LivenessPathElement;)V
        39: .line 157
            aload 5 /* list */
            aload 6 /* path */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.add:(Lsun/jvm/hotspot/utilities/LivenessPath;)V
        40: .line 158
            aload 5 /* list */
            aload 10 /* nextPath */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.add:(Lsun/jvm/hotspot/utilities/LivenessPath;)V
        41: .line 162
            iload 1 /* trimPathsThroughPopularObjects */
            ifeq 13
            aload 9 /* nextElement */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathElement.isRoot:()Z
            ifeq 13
        42: .line 168
            iconst_1
            istore 11 /* i */
        start local 11 // int i
        43: goto 54
        44: .line 169
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPath int
      StackMap stack:
            aload 10 /* nextPath */
            iload 11 /* i */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.get:(I)Lsun/jvm/hotspot/utilities/LivenessPathElement;
            astore 12 /* el */
        start local 12 // sun.jvm.hotspot.utilities.LivenessPathElement el
        45: .line 170
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        46: .line 171
            goto 52
        47: .line 172
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPathElement int
      StackMap stack:
            aload 5 /* list */
            iload 13 /* j */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.get:(I)Lsun/jvm/hotspot/utilities/LivenessPath;
            astore 14 /* curPath */
        start local 14 // sun.jvm.hotspot.utilities.LivenessPath curPath
        48: .line 176
            aload 14 /* curPath */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.peek:()Lsun/jvm/hotspot/utilities/LivenessPathElement;
            aload 12 /* el */
            if_acmpne 51
        49: .line 177
            aload 5 /* list */
            aload 14 /* curPath */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.remove:(Lsun/jvm/hotspot/utilities/LivenessPath;)V
        50: .line 178
            goto 52
        51: .line 179
      StackMap locals: sun.jvm.hotspot.utilities.LivenessPath
      StackMap stack:
            iinc 13 /* j */ 1
        end local 14 // sun.jvm.hotspot.utilities.LivenessPath curPath
        52: .line 171
      StackMap locals:
      StackMap stack:
            iload 13 /* j */
            aload 5 /* list */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPathList.size:()I
            if_icmplt 47
        end local 13 // int j
        end local 12 // sun.jvm.hotspot.utilities.LivenessPathElement el
        53: .line 168
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 11 /* i */
            aload 10 /* nextPath */
            invokevirtual sun.jvm.hotspot.utilities.LivenessPath.size:()I
            iconst_1
            isub
            if_icmplt 44
        end local 11 // int i
        55: .line 186
            goto 13
        end local 10 // sun.jvm.hotspot.utilities.LivenessPath nextPath
        end local 9 // sun.jvm.hotspot.utilities.LivenessPathElement nextElement
        56: .line 138
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        end local 8 // java.util.Iterator iter
        end local 7 // java.util.ArrayList nextPtrs
        57: .line 190
            goto 13
      StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.utilities.ReversePtrs java.util.Set java.util.Map sun.jvm.hotspot.utilities.LivenessPathList sun.jvm.hotspot.utilities.LivenessPath
      StackMap stack: java.lang.Exception
        58: astore 7 /* e */
        start local 7 // java.lang.Exception e
        59: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "LivenessAnalysis: WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        60: .line 192
            ldc " during traversal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 191
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // java.lang.Exception e
        end local 6 // sun.jvm.hotspot.utilities.LivenessPath path
        62: .line 104
            goto 13
        end local 5 // sun.jvm.hotspot.utilities.LivenessPathList list
        end local 4 // java.util.Map visitedRoots
        end local 3 // java.util.Set visitedOops
        end local 2 // sun.jvm.hotspot.utilities.ReversePtrs rev
        end local 1 // boolean trimPathsThroughPopularObjects
        end local 0 // sun.jvm.hotspot.oops.Oop target
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   63     0                          target  Lsun/jvm/hotspot/oops/Oop;
            0   63     1  trimPathsThroughPopularObjects  Z
            1   63     2                             rev  Lsun/jvm/hotspot/utilities/ReversePtrs;
            6   63     3                     visitedOops  Ljava/util/Set;
            8   63     4                    visitedRoots  Ljava/util/Map;
           10   63     5                            list  Lsun/jvm/hotspot/utilities/LivenessPathList;
           11   13     6                            path  Lsun/jvm/hotspot/utilities/LivenessPath;
           14   62     6                            path  Lsun/jvm/hotspot/utilities/LivenessPath;
           15   22     7                               i  I
           17   20     8                             tmp  Lsun/jvm/hotspot/utilities/LivenessPath;
           27   57     7                        nextPtrs  Ljava/util/ArrayList;
           29   57     8                            iter  Ljava/util/Iterator;
           31   56     9                     nextElement  Lsun/jvm/hotspot/utilities/LivenessPathElement;
           38   56    10                        nextPath  Lsun/jvm/hotspot/utilities/LivenessPath;
           43   55    11                               i  I
           45   53    12                              el  Lsun/jvm/hotspot/utilities/LivenessPathElement;
           46   53    13                               j  I
           48   52    14                         curPath  Lsun/jvm/hotspot/utilities/LivenessPath;
           59   62     7                               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          25    57      58  Class java.lang.Exception
    MethodParameters:
                                Name  Flags
      target                          
      trimPathsThroughPopularObjects  
}
SourceFile: "LivenessAnalysis.java"