public final class org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase extends org.graalvm.compiler.lir.phases.AllocationPhase
  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.phases.AllocationPhase
{
  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.phases.AllocationPhase.<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 lirGenRes
        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 lirGenRes
        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  lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0    4     3    context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
    MethodParameters:
           Name  Flags
      target     
      lirGenRes  
      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: ldc "allocate registers"
            invokestatic org.graalvm.compiler.debug.Debug.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/compiler/lir/alloc/lsra/Interval$Pair;
            astore 6 /* result */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval$Pair result
         3: .line 54
            aload 6 /* result */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.first:Lorg/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 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.second:Lorg/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/OptionValue;
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()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.compiler.lir.alloc.lsra.Interval$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.compiler.lir.alloc.lsra.Interval$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/compiler/lir/alloc/lsra/Interval$Pair;
            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

  protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, java.lang.Object);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            aload 3
            checkcast org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.run:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "LinearScanRegisterAllocationPhase.java"
InnerClasses:
  final Pair = org.graalvm.compiler.lir.alloc.lsra.Interval$Pair of org.graalvm.compiler.lir.alloc.lsra.Interval
  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