public final class org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase extends org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase
  super_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
{
  private final org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
         0: .line 36
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase.<init>:()V
         1: .line 37
            aload 0 /* this */
            aload 1 /* allocator */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
         2: .line 38
            return
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
            0    3     1  allocator  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    MethodParameters:
           Name  Flags
      allocator  

  protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult result
        start local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
         0: .line 42
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            ldc "Before register allocation"
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.printIntervals:(Ljava/lang/String;)V
         1: .line 43
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocateRegisters:()V
         2: .line 44
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            ldc "After register allocation"
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.printIntervals:(Ljava/lang/String;)V
         3: .line 45
            return
        end local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult result
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
            0    4     1   target  Ljdk/vm/ci/code/TargetDescription;
            0    4     2   result  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0    4     3  context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
    MethodParameters:
         Name  Flags
      target   
      result   
      context  

  void allocateRegisters();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
         0: .line 49
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            ldc "allocate registers"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 53
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_VARIABLE_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createUnhandledLists:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Lorg/graalvm/util/Pair;
            astore 6 /* result */
        start local 6 // org.graalvm.util.Pair result
         3: .line 54
            aload 6 /* result */
            invokevirtual org.graalvm.util.Pair.getLeft:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
            astore 4 /* precoloredIntervals */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval precoloredIntervals
         4: .line 55
            aload 6 /* result */
            invokevirtual org.graalvm.util.Pair.getRight:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
            astore 5 /* notPrecoloredIntervals */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval notPrecoloredIntervals
         5: .line 59
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options.LSRAOptimization:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 8
         6: .line 60
            new org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 4 /* precoloredIntervals */
            aload 5 /* notPrecoloredIntervals */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
            astore 7 /* lsw */
        start local 7 // org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker lsw
         7: .line 61
            goto 9
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker lsw
         8: .line 62
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.util.Pair
      StackMap stack:
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 4 /* precoloredIntervals */
            aload 5 /* notPrecoloredIntervals */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
            astore 7 /* lsw */
        start local 7 // org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker lsw
         9: .line 64
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
      StackMap stack:
            aload 7 /* lsw */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.walk:()V
        10: .line 65
            aload 7 /* lsw */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.finishAllocation:()V
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker lsw
        end local 6 // org.graalvm.util.Pair result
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval notPrecoloredIntervals
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval precoloredIntervals
        11: .line 66
            aload 3 /* indent */
            ifnull 17
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 17
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        12: astore 1
            aload 3 /* indent */
            ifnull 13
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        13: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 2
            aload 1
            ifnonnull 15
            aload 2
            astore 1
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 1
            aload 2
            if_acmpeq 16
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 1
            athrow
        17: .line 67
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   18     0                    this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
            2   13     3                  indent  Lorg/graalvm/compiler/debug/Indent;
            4   11     4     precoloredIntervals  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            5   11     5  notPrecoloredIntervals  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            3   11     6                  result  Lorg/graalvm/util/Pair<Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;>;
            7    8     7                     lsw  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanWalker;
            9   11     7                     lsw  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanWalker;
      Exception table:
        from    to  target  type
           2    11      12  any
           1    14      14  any
}
SourceFile: "LinearScanRegisterAllocationPhase.java"
InnerClasses:
  abstract IntervalPredicate = org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  public Options = org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options of org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
  public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase