public class org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker extends org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
  super_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
{
  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 45
            ldc Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            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.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval unhandledFixedFirst
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval unhandledAnyFirst
         0: .line 57
            aload 0 /* this */
            aload 1 /* allocator */
            aload 2 /* unhandledFixedFirst */
            aload 3 /* unhandledAnyFirst */
            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
         1: .line 58
            return
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval unhandledAnyFirst
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval unhandledFixedFirst
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            0    2     1            allocator  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     2  unhandledFixedFirst  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0    2     3    unhandledAnyFirst  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
                     Name  Flags
      allocator            
      unhandledFixedFirst  
      unhandledAnyFirst    

  protected void handleSpillSlot(org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         0: .line 63
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 1
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "interval  not assigned "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* interval */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 64
      StackMap locals:
      StackMap stack:
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifeq 4
         2: .line 65
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 3
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 3
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "interval can materialize but assigned to a stack slot "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* interval */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 66
      StackMap locals:
      StackMap stack:
            return
         4: .line 68
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 5
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "interval not assigned to a stack slot "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* interval */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 2 /* debug */
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
         6: .line 70
            aconst_null
            astore 3
            aconst_null
            astore 4
         7: aload 2 /* debug */
            ldc "LSRAOptimization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 5 /* s1 */
        start local 5 // org.graalvm.compiler.debug.DebugContext$Scope s1
         8: .line 71
            aload 2 /* debug */
            ldc "adding stack to unhandled list %s"
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 72
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByStartAndUsePositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        10: .line 73
            aload 5 /* s1 */
            ifnull 16
            aload 5 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 16
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* s1 */
            ifnull 12
            aload 5 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 5 // org.graalvm.compiler.debug.DebugContext$Scope s1
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        16: .line 74
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            0   17     1  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            6   17     2     debug  Lorg/graalvm/compiler/debug/DebugContext;
            8   12     5        s1  Lorg/graalvm/compiler/debug/DebugContext$Scope;
      Exception table:
        from    to  target  type
           8    10      11  any
           7    13      13  any
    MethodParameters:
          Name  Flags
      interval  

  private static void printRegisterBindingList(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists, org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.debug.DebugContext debug
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists list
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding binding
         0: .line 78
            aload 1 /* list */
            aload 2 /* binding */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* interval */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         1: goto 4
         2: .line 79
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 0 /* debug */
            ldc "%s"
            aload 3 /* interval */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 78
            aload 3 /* interval */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* interval */
      StackMap locals:
      StackMap stack:
         4: aload 3 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifeq 2
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         5: .line 81
            return
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding binding
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists list
        end local 0 // org.graalvm.compiler.debug.DebugContext debug
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0     debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    6     1      list  Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            0    6     2   binding  Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            1    5     3  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
         Name  Flags
      debug    
      list     
      binding  

  void walk();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
         0: .line 86
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            ldc "OptimizingLinearScanWalker"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 3 /* s */
        start local 3 // org.graalvm.compiler.debug.DebugContext$Scope s
         2: .line 87
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* block */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         4: .line 88
            aload 0 /* this */
            aload 4 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimizeBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         5: .line 87
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 3
         7: .line 90
            aload 3 /* s */
            ifnull 13
            aload 3 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 13
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
         8: astore 1
            aload 3 /* s */
            ifnull 9
            aload 3 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 3 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
         9: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 2
            aload 1
            ifnonnull 11
            aload 2
            astore 1
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 1
            aload 2
            if_acmpeq 12
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 1
            athrow
        13: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.walk:()V
        14: .line 92
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            2    9     3      s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            4    5     4  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
      Exception table:
        from    to  target  type
           2     7       8  any
           1    10      10  any

  private void optimizeBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 96
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
            iconst_1
            if_icmpne 59
         1: .line 97
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            istore 2 /* nextBlock */
        start local 2 // int nextBlock
         2: .line 98
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         3: .line 99
            aconst_null
            astore 4
            aconst_null
            astore 5
         4: aload 3 /* debug */
            ldc "LSRAOptimization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s1 */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s1
         5: .line 100
            aload 3 /* debug */
            ldc "next block: %s (%d)"
            aload 1 /* block */
            iload 2 /* nextBlock */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;I)V
         6: .line 101
            aload 6 /* s1 */
            ifnull 12
            aload 6 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 12
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
         7: astore 4
            aload 6 /* s1 */
            ifnull 8
            aload 6 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s1
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
            aload 4
            ifnonnull 10
            aload 5
            astore 4
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 4
            aload 5
            if_acmpeq 11
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 4
            athrow
        12: .line 102
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
        13: aload 3 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.indent:()Lorg/graalvm/compiler/debug/Indent;
            astore 6 /* indent0 */
        start local 6 // org.graalvm.compiler.debug.Indent indent0
        14: .line 103
            aload 0 /* this */
            iload 2 /* nextBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.walkTo:(I)V
        15: .line 105
            aconst_null
            astore 7
            aconst_null
            astore 8
        16: aload 3 /* debug */
            ldc "LSRAOptimization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 9 /* s1 */
        start local 9 // org.graalvm.compiler.debug.DebugContext$Scope s1
        17: .line 106
            iconst_1
            istore 10 /* changed */
        start local 10 // boolean changed
        18: .line 108
            goto 46
        19: .line 109
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope int
      StackMap stack:
            iconst_0
            istore 10 /* changed */
        20: .line 110
            aconst_null
            astore 11
            aconst_null
            astore 12
        21: aload 3 /* debug */
            ldc "Active intervals: (block %s [%d])"
            aload 1 /* block */
            iload 2 /* nextBlock */
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;I)Lorg/graalvm/compiler/debug/Indent;
            astore 13 /* indent1 */
        start local 13 // org.graalvm.compiler.debug.Indent indent1
        22: .line 111
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 14 /* active */
        start local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval active
        23: goto 30
        24: .line 112
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 3 /* debug */
            ldc "active   (any): %s"
            aload 14 /* active */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        25: .line 113
            aload 0 /* this */
            iload 2 /* nextBlock */
            aload 1 /* block */
            aload 14 /* active */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimize:(ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
            ifeq 29
        26: .line 114
            iconst_1
            istore 10 /* changed */
        27: .line 125
            aload 13 /* indent1 */
            ifnull 47
            aload 13 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        28: .line 115
            goto 47
        29: .line 111
      StackMap locals:
      StackMap stack:
            aload 14 /* active */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 14 /* active */
      StackMap locals:
      StackMap stack:
        30: aload 14 /* active */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifeq 24
        end local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval active
        31: .line 118
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 14 /* active */
        start local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval active
        32: goto 39
        33: .line 119
      StackMap locals:
      StackMap stack:
            aload 3 /* debug */
            ldc "active (stack): %s"
            aload 14 /* active */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        34: .line 120
            aload 0 /* this */
            iload 2 /* nextBlock */
            aload 1 /* block */
            aload 14 /* active */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimize:(ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
            ifeq 38
        35: .line 121
            iconst_1
            istore 10 /* changed */
        36: .line 125
            aload 13 /* indent1 */
            ifnull 47
            aload 13 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        37: .line 122
            goto 47
        38: .line 118
      StackMap locals:
      StackMap stack:
            aload 14 /* active */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 14 /* active */
      StackMap locals:
      StackMap stack:
        39: aload 14 /* active */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifeq 33
        end local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval active
        40: .line 125
            aload 13 /* indent1 */
            ifnull 46
            aload 13 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 46
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        41: astore 11
            aload 13 /* indent1 */
            ifnull 42
            aload 13 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 13 // org.graalvm.compiler.debug.Indent indent1
      StackMap locals:
      StackMap stack:
        42: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        43: astore 12
            aload 11
            ifnonnull 44
            aload 12
            astore 11
            goto 45
      StackMap locals:
      StackMap stack:
        44: aload 11
            aload 12
            if_acmpeq 45
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        45: aload 11
            athrow
        46: .line 108
      StackMap locals:
      StackMap stack:
            iload 10 /* changed */
            ifne 19
        end local 10 // boolean changed
        47: .line 127
      StackMap locals:
      StackMap stack:
            aload 9 /* s1 */
            ifnull 53
            aload 9 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 7
            aload 9 /* s1 */
            ifnull 49
            aload 9 /* s1 */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugContext$Scope s1
      StackMap locals:
      StackMap stack:
        49: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        50: astore 8
            aload 7
            ifnonnull 51
            aload 8
            astore 7
            goto 52
      StackMap locals:
      StackMap stack:
        51: aload 7
            aload 8
            if_acmpeq 52
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        52: aload 7
            athrow
        53: .line 128
      StackMap locals:
      StackMap stack:
            aload 6 /* indent0 */
            ifnull 59
            aload 6 /* indent0 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 59
      StackMap locals:
      StackMap stack: java.lang.Throwable
        54: astore 4
            aload 6 /* indent0 */
            ifnull 55
            aload 6 /* indent0 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 6 // org.graalvm.compiler.debug.Indent indent0
      StackMap locals:
      StackMap stack:
        55: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        56: astore 5
            aload 4
            ifnonnull 57
            aload 5
            astore 4
            goto 58
      StackMap locals:
      StackMap stack:
        57: aload 4
            aload 5
            if_acmpeq 58
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        58: aload 4
            athrow
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // int nextBlock
        59: .line 130
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   60     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            0   60     1      block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2   59     2  nextBlock  I
            3   59     3      debug  Lorg/graalvm/compiler/debug/DebugContext;
            5    8     6         s1  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           14   55     6    indent0  Lorg/graalvm/compiler/debug/Indent;
           17   49     9         s1  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           18   47    10    changed  Z
           22   42    13    indent1  Lorg/graalvm/compiler/debug/Indent;
           23   31    14     active  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           32   40    14     active  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
      Exception table:
        from    to  target  type
           5     6       7  any
           4     9       9  any
          22    27      41  any
          29    36      41  any
          38    40      41  any
          21    28      43  any
          29    37      43  any
          38    43      43  any
          17    47      48  any
          16    50      50  any
          14    53      54  any
          13    56      56  any
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  private boolean optimize(int, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding);
    descriptor: (ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
        start local 1 // int currentPos
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase currentBlock
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval currentInterval
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding binding
         0: .line 135
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 1
            aload 2 /* currentBlock */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "block must not be null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 136
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 2
            aload 3 /* currentInterval */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "interval must not be null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 138
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 3
            aload 2 /* currentBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
            iconst_1
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            ldc "more than one predecessors -> optimization not possible"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 140
      StackMap locals:
      StackMap stack:
            aload 3 /* currentInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isSplitChild:()Z
            ifne 5
         4: .line 142
            iconst_0
            ireturn
         5: .line 145
      StackMap locals:
      StackMap stack:
            aload 3 /* currentInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            iload 1 /* currentPos */
            if_icmpne 7
         6: .line 147
            iconst_0
            ireturn
         7: .line 151
      StackMap locals:
      StackMap stack:
            aload 3 /* currentInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            astore 5 /* currentLocation */
        start local 5 // jdk.vm.ci.meta.AllocatableValue currentLocation
         8: .line 152
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 9
            aload 5 /* currentLocation */
            ifnonnull 9
            new java.lang.AssertionError
            dup
            ldc "active intervals must have a location assigned!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         9: .line 155
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            aload 2 /* currentBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            astore 6 /* predecessorBlock */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessorBlock
        10: .line 156
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 6 /* predecessorBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            istore 7 /* predEndId */
        start local 7 // int predEndId
        11: .line 157
            aload 3 /* currentInterval */
            iload 7 /* predEndId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.getIntervalCoveringOpId:(I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 8 /* predecessorInterval */
        start local 8 // org.graalvm.compiler.lir.alloc.lsra.Interval predecessorInterval
        12: .line 158
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 13
            aload 8 /* predecessorInterval */
            ifnonnull 13
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "variable not live at the end of the only predecessor! "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* predecessorBlock */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* currentBlock */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " interval: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* currentInterval */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 159
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 8 /* predecessorInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            astore 9 /* predecessorLocation */
        start local 9 // jdk.vm.ci.meta.AllocatableValue predecessorLocation
        14: .line 160
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 15
            aload 9 /* predecessorLocation */
            ifnonnull 15
            new java.lang.AssertionError
            dup
            ldc "handled intervals must have a location assigned!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 164
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            aload 5 /* currentLocation */
            aload 9 /* predecessorLocation */
            invokevirtual jdk.vm.ci.meta.AllocatableValue.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 166
            iconst_0
            ireturn
        17: .line 169
      StackMap locals:
      StackMap stack:
            aload 9 /* predecessorLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 20
            aload 9 /* predecessorLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 20
        18: .line 170
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 19
            aload 8 /* predecessorInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifne 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 172
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        20: .line 175
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 21
            aload 5 /* currentLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 21
            aload 5 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 21
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "current location not a register or stack slot "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* currentLocation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        21: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 10 /* debug */
        start local 10 // org.graalvm.compiler.debug.DebugContext debug
        22: .line 178
            aconst_null
            astore 11
            aconst_null
            astore 12
        23: aload 10 /* debug */
            ldc "location differs: %s vs. %s"
            aload 9 /* predecessorLocation */
            aload 5 /* currentLocation */
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 13 /* indent */
        start local 13 // org.graalvm.compiler.debug.Indent indent
        24: .line 180
            aload 10 /* debug */
            ldc "splitting at position %d"
            iload 1 /* currentPos */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        25: .line 182
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 27
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 1 /* currentPos */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.isBlockBegin:(I)Z
            ifeq 26
            iload 1 /* currentPos */
            iconst_1
            iand
            ifeq 27
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker int org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding jdk.vm.ci.meta.AllocatableValue org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.meta.AllocatableValue org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack:
        26: new java.lang.AssertionError
            dup
            ldc "split pos must be even when on block boundary"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        27: .line 184
      StackMap locals:
      StackMap stack:
            aload 3 /* currentInterval */
            iload 1 /* currentPos */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.split:(ILorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 14 /* splitPart */
        start local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval splitPart
        28: .line 185
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            aload 4 /* binding */
            aload 3 /* currentInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.remove:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        29: .line 187
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 30
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.currentPosition:I
            if_icmpge 30
            new java.lang.AssertionError
            dup
            ldc "cannot append new interval before current walk position"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        30: .line 190
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 31
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.currentSplitChild:()Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 3 /* currentInterval */
            if_acmpeq 31
            new java.lang.AssertionError
            dup
            ldc "overwriting wrong currentSplitChild"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        31: .line 191
      StackMap locals:
      StackMap stack:
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.makeCurrentSplitChild:()V
        32: .line 193
            aload 10 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 35
        33: .line 194
            aload 10 /* debug */
            ldc "left interval  : %s"
            aload 3 /* currentInterval */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        34: .line 195
            aload 10 /* debug */
            ldc "right interval : %s"
            aload 14 /* splitPart */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        35: .line 198
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options.LSRAOptSplitOnly:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.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 38
        36: .line 200
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByStartAndUsePositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        37: .line 201
            goto 47
        38: .line 202
      StackMap locals:
      StackMap stack:
            aload 9 /* predecessorLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 41
        39: .line 203
            aload 0 /* this */
            aload 14 /* splitPart */
            aload 9 /* predecessorLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitRegisterInterval:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Ljdk/vm/ci/code/Register;)V
        40: .line 204
            goto 47
        41: .line 205
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 42
            aload 9 /* predecessorLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 206
      StackMap locals:
      StackMap stack:
            aload 10 /* debug */
            ldc "assigning interval %s to %s"
            aload 14 /* splitPart */
            aload 9 /* predecessorLocation */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        43: .line 207
            aload 14 /* splitPart */
            aload 9 /* predecessorLocation */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
        44: .line 209
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByCurrentFromPositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        45: .line 210
            aload 14 /* splitPart */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$State.Active:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.state:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
        46: .line 212
            aload 0 /* this */
            aload 14 /* splitPart */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitStackInterval:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        end local 14 // org.graalvm.compiler.lir.alloc.lsra.Interval splitPart
        47: .line 215
      StackMap locals:
      StackMap stack:
            aload 13 /* indent */
            ifnull 53
            aload 13 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 11
            aload 13 /* indent */
            ifnull 49
            aload 13 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 13 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        49: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        50: astore 12
            aload 11
            ifnonnull 51
            aload 12
            astore 11
            goto 52
      StackMap locals:
      StackMap stack:
        51: aload 11
            aload 12
            if_acmpeq 52
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        52: aload 11
            athrow
        53: .line 216
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 10 // org.graalvm.compiler.debug.DebugContext debug
        end local 9 // jdk.vm.ci.meta.AllocatableValue predecessorLocation
        end local 8 // org.graalvm.compiler.lir.alloc.lsra.Interval predecessorInterval
        end local 7 // int predEndId
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessorBlock
        end local 5 // jdk.vm.ci.meta.AllocatableValue currentLocation
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding binding
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval currentInterval
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase currentBlock
        end local 1 // int currentPos
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   54     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            0   54     1           currentPos  I
            0   54     2         currentBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   54     3      currentInterval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0   54     4              binding  Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            8   54     5      currentLocation  Ljdk/vm/ci/meta/AllocatableValue;
           10   54     6     predecessorBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           11   54     7            predEndId  I
           12   54     8  predecessorInterval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           14   54     9  predecessorLocation  Ljdk/vm/ci/meta/AllocatableValue;
           22   54    10                debug  Lorg/graalvm/compiler/debug/DebugContext;
           24   49    13               indent  Lorg/graalvm/compiler/debug/Indent;
           28   47    14            splitPart  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
      Exception table:
        from    to  target  type
          24    47      48  any
          23    50      50  any
    Signature: (ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
    MethodParameters:
                 Name  Flags
      currentPos       
      currentBlock     
      currentInterval  
      binding          

  private void splitRegisterInterval(org.graalvm.compiler.lir.alloc.lsra.Interval, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Ljdk/vm/ci/code/Register;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        start local 2 // jdk.vm.ci.code.Register reg
         0: .line 222
            aload 0 /* this */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.initVarsForAlloc:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
         1: .line 223
            aload 0 /* this */
            iconst_0
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.initUseLists:(Z)V
         2: .line 224
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillExcludeActiveFixed:()V
         3: .line 226
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Fixed:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            ldc "must not have unhandled fixed intervals because all fixed intervals have a use at position 0"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillBlockInactiveFixed:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
         5: .line 228
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterPriority.LiveAtLoopEnd:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterPriority;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillCollectActiveAny:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterPriority;)V
         6: .line 229
            aload 0 /* this */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillCollectInactiveAny:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
         7: .line 231
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         8: .line 232
            aload 3 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 35
         9: .line 233
            aconst_null
            astore 4
            aconst_null
            astore 5
        10: aload 3 /* debug */
            ldc "state of registers:"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 6 /* indent2 */
        start local 6 // org.graalvm.compiler.debug.Indent indent2
        11: .line 234
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.availableRegs:[Ljdk/vm/ci/code/Register;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 28
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int jdk.vm.ci.code.Register[]
      StackMap stack:
        12: aload 10
            iload 8
            aaload
            astore 7 /* register */
        start local 7 // jdk.vm.ci.code.Register register
        13: .line 235
            aload 7 /* register */
            getfield jdk.vm.ci.code.Register.number:I
            istore 11 /* i */
        start local 11 // int i
        14: .line 236
            aconst_null
            astore 12
            aconst_null
            astore 13
        15: aload 3 /* debug */
            ldc "reg %d: usePos: %d, blockPos: %d, intervals: "
            iload 11 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.usePos:[I
            iload 11 /* i */
            iaload
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
            iload 11 /* i */
            iaload
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;III)Lorg/graalvm/compiler/debug/Indent;
            astore 14 /* indent3 */
        start local 14 // org.graalvm.compiler.debug.Indent indent3
        16: .line 237
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        17: goto 20
        18: .line 238
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.Register int int jdk.vm.ci.code.Register[] int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int
      StackMap stack:
            aload 3 /* debug */
            ldc "%d "
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillIntervals:[Ljava/util/List;
            iload 11 /* i */
            aaload
            iload 15 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        19: .line 237
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 15 /* j */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillIntervals:[Ljava/util/List;
            iload 11 /* i */
            aaload
            invokeinterface java.util.List.size:()I
            if_icmplt 18
        end local 15 // int j
        21: .line 240
            aload 14 /* indent3 */
            ifnull 27
            aload 14 /* indent3 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 27
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.Register int int jdk.vm.ci.code.Register[] int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        22: astore 12
            aload 14 /* indent3 */
            ifnull 23
            aload 14 /* indent3 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 14 // org.graalvm.compiler.debug.Indent indent3
      StackMap locals:
      StackMap stack:
        23: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 13
            aload 12
            ifnonnull 25
            aload 13
            astore 12
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 12
            aload 13
            if_acmpeq 26
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 12
            athrow
        end local 11 // int i
        end local 7 // jdk.vm.ci.code.Register register
        27: .line 234
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int jdk.vm.ci.code.Register[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        28: iload 8
            iload 9
            if_icmplt 12
        29: .line 242
            aload 6 /* indent2 */
            ifnull 35
            aload 6 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 35
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        30: astore 4
            aload 6 /* indent2 */
            ifnull 31
            aload 6 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 6 // org.graalvm.compiler.debug.Indent indent2
      StackMap locals:
      StackMap stack:
        31: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 5
            aload 4
            ifnonnull 33
            aload 5
            astore 4
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 4
            aload 5
            if_acmpeq 34
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 4
            athrow
        35: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
            aload 2 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iaload
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
            if_icmpgt 36
            iconst_1
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_0
      StackMap locals:
      StackMap stack: int
        37: istore 4 /* needSplit */
        start local 4 // boolean needSplit
        38: .line 248
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
            aload 2 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iaload
            istore 5 /* splitPos */
        start local 5 // int splitPos
        39: .line 250
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 40
            iload 5 /* splitPos */
            ifgt 40
            new java.lang.AssertionError
            dup
            ldc "invalid splitPos"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        40: .line 251
      StackMap locals: int int
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
            ifne 41
            iload 4 /* needSplit */
            ifne 41
            iload 5 /* splitPos */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            if_icmpgt 41
            new java.lang.AssertionError
            dup
            ldc "splitting interval at from"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        41: .line 253
      StackMap locals:
      StackMap stack:
            aload 3 /* debug */
            ldc "assigning interval %s to %s"
            aload 1 /* interval */
            aload 2 /* reg */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        42: .line 254
            aload 1 /* interval */
            aload 2 /* reg */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
        43: .line 255
            iload 4 /* needSplit */
            ifeq 45
        44: .line 257
            aload 0 /* this */
            aload 1 /* interval */
            iload 5 /* splitPos */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitWhenPartialRegisterAvailable:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;I)V
        45: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitAndSpillIntersectingIntervals:(Ljdk/vm/ci/code/Register;)V
        46: .line 264
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByCurrentFromPositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        47: .line 265
            aload 1 /* interval */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$State.Active:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.state:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
        48: .line 267
            return
        end local 5 // int splitPos
        end local 4 // boolean needSplit
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // jdk.vm.ci.code.Register reg
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
            0   49     1   interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0   49     2        reg  Ljdk/vm/ci/code/Register;
            8   49     3      debug  Lorg/graalvm/compiler/debug/DebugContext;
           11   31     6    indent2  Lorg/graalvm/compiler/debug/Indent;
           13   27     7   register  Ljdk/vm/ci/code/Register;
           14   27    11          i  I
           16   23    14    indent3  Lorg/graalvm/compiler/debug/Indent;
           17   21    15          j  I
           38   49     4  needSplit  Z
           39   49     5   splitPos  I
      Exception table:
        from    to  target  type
          16    21      22  any
          15    24      24  any
          11    29      30  any
          10    32      32  any
    MethodParameters:
          Name  Flags
      interval  
      reg       

  public void finishAllocation();
    descriptor: ()V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.finishAllocation:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "OptimizingLinearScanWalker.java"
NestMembers:
  org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options
InnerClasses:
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  final RegisterBinding = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding of org.graalvm.compiler.lir.alloc.lsra.Interval
  final RegisterBindingLists = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists of org.graalvm.compiler.lir.alloc.lsra.Interval
  public final RegisterPriority = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterPriority of org.graalvm.compiler.lir.alloc.lsra.Interval
  final State = org.graalvm.compiler.lir.alloc.lsra.Interval$State of org.graalvm.compiler.lir.alloc.lsra.Interval
  public Options = org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options of org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker