public class org.graalvm.compiler.lir.alloc.lsra.LinearScan
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScan
  super_class: java.lang.Object
{
  public static final int DOMINATOR_SPILL_MOVE_ID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  private static final int SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final org.graalvm.compiler.lir.LIR ir;
    descriptor: Lorg/graalvm/compiler/lir/LIR;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.framemap.FrameMapBuilder frameMapBuilder;
    descriptor: Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterAttributes[] registerAttributes;
    descriptor: [Ljdk/vm/ci/code/RegisterAttributes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.RegisterArray registers;
    descriptor: Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig regAllocConfig;
    descriptor: Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory moveFactory;
    descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.core.common.cfg.BlockMap<org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData> blockData;
    descriptor: Lorg/graalvm/compiler/core/common/cfg/BlockMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/core/common/cfg/BlockMap<Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;>;

  private final org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] sortedBlocks;
    descriptor: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;

  private org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals;
    descriptor: [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0002) ACC_PRIVATE

  private int intervalsSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int firstDerivedIntervalIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.lir.alloc.lsra.Interval[] sortedIntervals;
    descriptor: [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.lir.LIRInstruction[] opIdToInstructionMap;
    descriptor: [Lorg/graalvm/compiler/lir/LIRInstruction;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] opIdToBlockMap;
    descriptor: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0002) ACC_PRIVATE
    Signature: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;

  private final int firstVariableNumber;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int numVariables;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final boolean neverSpillConstants;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_PRECOLORED_INTERVAL;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_VARIABLE_INTERVAL;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_STACK_INTERVAL;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 77
            ldc Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            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.LinearScan.$assertionsDisabled:Z
         3: .line 260
            new org.graalvm.compiler.lir.alloc.lsra.LinearScan$1
            dup
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$1.<init>:()V
            putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
         4: .line 268
            new org.graalvm.compiler.lir.alloc.lsra.LinearScan$2
            dup
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$2.<init>:()V
            putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_VARIABLE_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
         5: .line 276
            new org.graalvm.compiler.lir.alloc.lsra.LinearScan$3
            dup
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$3.<init>:()V
            putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_STACK_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
         6: .line 282
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory, org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[], );
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult res
        start local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        start local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig regAllocConfig
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] sortedBlocks
        start local 6 // boolean neverSpillConstants
         0: .line 180
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 149
            aload 0 /* this */
            iconst_m1
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
         2: .line 182
            aload 0 /* this */
            aload 2 /* res */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
         3: .line 183
            aload 0 /* this */
            aload 3 /* spillMoveFactory */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.moveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
         4: .line 184
            aload 0 /* this */
            aload 2 /* res */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getFrameMapBuilder:()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
         5: .line 185
            aload 0 /* this */
            aload 5 /* sortedBlocks */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
         6: .line 186
            aload 0 /* this */
            aload 4 /* regAllocConfig */
            invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
            invokeinterface jdk.vm.ci.code.RegisterConfig.getAttributesMap:()[Ljdk/vm/ci/code/RegisterAttributes;
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registerAttributes:[Ljdk/vm/ci/code/RegisterAttributes;
         7: .line 187
            aload 0 /* this */
            aload 4 /* regAllocConfig */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
         8: .line 189
            aload 0 /* this */
            aload 1 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.getRegisters:()Ljdk/vm/ci/code/RegisterArray;
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registers:Ljdk/vm/ci/code/RegisterArray;
         9: .line 190
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getRegisters:()Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
        10: .line 191
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.numVariables:()I
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
        11: .line 192
            aload 0 /* this */
            new org.graalvm.compiler.core.common.cfg.BlockMap
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
        12: .line 193
            aload 0 /* this */
            iload 6 /* neverSpillConstants */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.neverSpillConstants:Z
        13: .line 194
            return
        end local 6 // boolean neverSpillConstants
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] sortedBlocks
        end local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig regAllocConfig
        end local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult res
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   14     1               target  Ljdk/vm/ci/code/TargetDescription;
            0   14     2                  res  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0   14     3     spillMoveFactory  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            0   14     4       regAllocConfig  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            0   14     5         sortedBlocks  [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            0   14     6  neverSpillConstants  Z
    Signature: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Z)V
    MethodParameters:
                     Name  Flags
      target               
      res                  
      spillMoveFactory     
      regAllocConfig       
      sortedBlocks         
      neverSpillConstants  

  public int getFirstLirInstructionId(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 197
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            istore 2 /* result */
        start local 2 // int result
         1: .line 198
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 2
            iload 2 /* result */
            ifge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 199
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    3     1   block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    3     2  result  I
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)I
    MethodParameters:
       Name  Flags
      block  

  public int getLastLirInstructionId(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 203
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 2 /* instructions */
        start local 2 // java.util.List instructions
         1: .line 204
            aload 2 /* instructions */
            aload 2 /* instructions */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            istore 3 /* result */
        start local 3 // int result
         2: .line 205
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 3
            iload 3 /* result */
            ifge 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 206
      StackMap locals: java.util.List int
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // java.util.List instructions
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    4     1         block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    4     2  instructions  Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            2    4     3        result  I
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)I
    MethodParameters:
       Name  Flags
      block  

  public org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory getSpillMoveFactory();
    descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 210
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.moveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.MoveResolver createMoveResolver();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 214
            new org.graalvm.compiler.lir.alloc.lsra.MoveResolver
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            astore 1 /* moveResolver */
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
         1: .line 215
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 2
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.checkEmpty:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 216
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.MoveResolver
      StackMap stack:
            aload 1 /* moveResolver */
            areturn
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            1    3     1  moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;

  public static boolean isVariableOrRegister(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.Value value
         0: .line 220
            aload 0 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifne 1
            aload 0 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // jdk.vm.ci.meta.Value value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  value  Ljdk/vm/ci/meta/Value;
    MethodParameters:
       Name  Flags
      value  

  int operandNumber(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.Value operand
         0: .line 229
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
         1: .line 230
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            getfield jdk.vm.ci.code.Register.number:I
            istore 2 /* number */
        start local 2 // int number
         2: .line 231
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 3
            iload 2 /* number */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
            if_icmplt 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 232
      StackMap locals: int
      StackMap stack:
            iload 2 /* number */
            ireturn
        end local 2 // int number
         4: .line 234
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 5
            aload 1 /* operand */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            aload 1 /* operand */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
            aload 1 /* operand */
            checkcast org.graalvm.compiler.lir.Variable
            getfield org.graalvm.compiler.lir.Variable.index:I
            iadd
            ireturn
        end local 1 // jdk.vm.ci.meta.Value operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    6     1  operand  Ljdk/vm/ci/meta/Value;
            2    4     2   number  I
    MethodParameters:
         Name  Flags
      operand  

  int operandSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 242
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
            iadd
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  int maxRegisterNumber();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 249
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
            iconst_1
            isub
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData getBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 253
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData
            areturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    1     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
    MethodParameters:
       Name  Flags
      block  

  void initBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 257
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            new org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData
            dup
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.<init>:()V
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
         1: .line 258
            return
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  public jdk.vm.ci.code.RegisterAttributes attributes(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 289
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registerAttributes:[Ljdk/vm/ci/code/RegisterAttributes;
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            aaload
            areturn
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    1     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  void assignSpillSlot(org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         0: .line 297
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifeq 3
         1: .line 298
            aload 1 /* interval */
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
         2: .line 299
            goto 9
      StackMap locals:
      StackMap stack:
         3: aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
            ifnull 6
         4: .line 300
            aload 1 /* interval */
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
         5: .line 301
            goto 9
         6: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
            astore 2 /* slot */
        start local 2 // org.graalvm.compiler.lir.VirtualStackSlot slot
         7: .line 303
            aload 1 /* interval */
            aload 2 /* slot */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.setSpillSlot:(Ljdk/vm/ci/meta/AllocatableValue;)V
         8: .line 304
            aload 1 /* interval */
            aload 2 /* slot */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
        end local 2 // org.graalvm.compiler.lir.VirtualStackSlot slot
         9: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   10     1  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            7    9     2      slot  Lorg/graalvm/compiler/lir/VirtualStackSlot;
    MethodParameters:
          Name  Flags
      interval  

  public org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals();
    descriptor: ()[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 312
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  void initIntervals();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 316
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandSize:()I
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
         1: .line 317
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            iconst_1
            ishr
            iadd
            anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
         2: .line 318
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  org.graalvm.compiler.lir.alloc.lsra.Interval createInterval(jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.AllocatableValue operand
         0: .line 327
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.isLegal:(Ljdk/vm/ci/meta/Value;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
            istore 2 /* operandNumber */
        start local 2 // int operandNumber
         2: .line 329
            new org.graalvm.compiler.lir.alloc.lsra.Interval
            dup
            aload 1 /* operand */
            iload 2 /* operandNumber */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;I)V
            astore 3 /* interval */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         3: .line 330
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 4
            iload 2 /* operandNumber */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            if_icmplt 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 331
      StackMap locals: int org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 2 /* operandNumber */
            aaload
            ifnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 2 /* operandNumber */
            aload 3 /* interval */
            aastore
         6: .line 333
            aload 3 /* interval */
            areturn
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 2 // int operandNumber
        end local 1 // jdk.vm.ci.meta.AllocatableValue operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    7     1        operand  Ljdk/vm/ci/meta/AllocatableValue;
            2    7     2  operandNumber  I
            3    7     3       interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
         Name  Flags
      operand  

  org.graalvm.compiler.lir.alloc.lsra.Interval createDerivedInterval(org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval source
         0: .line 343
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            iconst_m1
            if_icmpne 2
         1: .line 344
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
         2: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            arraylength
            if_icmpne 4
         3: .line 347
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            arraylength
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            arraylength
            iconst_1
            ishr
            iadd
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval[]
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
         4: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            iconst_1
            iadd
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
         5: .line 350
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            arraylength
            if_icmple 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 355
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.lir.Variable
            dup
            aload 1 /* source */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
            dup_x1
            iconst_1
            iadd
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
            invokespecial org.graalvm.compiler.lir.Variable.<init>:(Ljdk/vm/ci/meta/ValueKind;I)V
            astore 2 /* variable */
        start local 2 // org.graalvm.compiler.lir.Variable variable
         7: .line 357
            aload 0 /* this */
            aload 2 /* variable */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* interval */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         8: .line 358
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 9
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            iconst_1
            isub
            aaload
            aload 3 /* interval */
            if_acmpeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 359
      StackMap locals: org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 3 /* interval */
            areturn
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 2 // org.graalvm.compiler.lir.Variable variable
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval source
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   10     1    source  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            7   10     2  variable  Lorg/graalvm/compiler/lir/Variable;
            8   10     3  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
        Name  Flags
      source  

  public int blockCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 364
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            arraylength
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> blockAt(int);
    descriptor: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int index
         0: .line 368
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iload 1 /* index */
            aaload
            areturn
        end local 1 // int index
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    1     1  index  I
    Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
       Name  Flags
      index  

  public int liveSetSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 377
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            iconst_m1
            if_icmpne 1
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandSize:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  int numLoops();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 381
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokeinterface org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.getLoops:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  org.graalvm.compiler.lir.alloc.lsra.Interval intervalFor(int);
    descriptor: (I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int operandNumber
         0: .line 385
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 1 /* operandNumber */
            aaload
            areturn
        end local 1 // int operandNumber
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    1     1  operandNumber  I
    MethodParameters:
               Name  Flags
      operandNumber  

  public org.graalvm.compiler.lir.alloc.lsra.Interval intervalFor(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.Value operand
         0: .line 389
            aload 0 /* this */
            aload 1 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
            istore 2 /* operandNumber */
        start local 2 // int operandNumber
         1: .line 390
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 2
            iload 2 /* operandNumber */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            if_icmplt 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 391
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 2 /* operandNumber */
            aaload
            areturn
        end local 2 // int operandNumber
        end local 1 // jdk.vm.ci.meta.Value operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    3     1        operand  Ljdk/vm/ci/meta/Value;
            1    3     2  operandNumber  I
    MethodParameters:
         Name  Flags
      operand  

  public org.graalvm.compiler.lir.alloc.lsra.Interval getOrCreateInterval(jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.AllocatableValue operand
         0: .line 395
            aload 0 /* this */
            aload 1 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 2 /* ret */
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval ret
         1: .line 396
            aload 2 /* ret */
            ifnonnull 3
         2: .line 397
            aload 0 /* this */
            aload 1 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            areturn
         3: .line 399
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval ret
        end local 1 // jdk.vm.ci.meta.AllocatableValue operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    4     1  operand  Ljdk/vm/ci/meta/AllocatableValue;
            1    4     2      ret  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
         Name  Flags
      operand  

  void initOpIdMaps(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int numInstructions
         0: .line 404
            aload 0 /* this */
            iload 1 /* numInstructions */
            anewarray org.graalvm.compiler.lir.LIRInstruction
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
         1: .line 405
            aload 0 /* this */
            iload 1 /* numInstructions */
            anewarray org.graalvm.compiler.core.common.cfg.AbstractBlockBase
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
         2: .line 406
            return
        end local 1 // int numInstructions
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    3     1  numInstructions  I
    MethodParameters:
                 Name  Flags
      numInstructions  

  void putOpIdMaps(int, org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (ILorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int index
        start local 2 // org.graalvm.compiler.lir.LIRInstruction op
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 409
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
            iload 1 /* index */
            aload 2 /* op */
            aastore
         1: .line 410
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iload 1 /* index */
            aload 3 /* block */
            aastore
         2: .line 411
            return
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 2 // org.graalvm.compiler.lir.LIRInstruction op
        end local 1 // int index
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    3     1  index  I
            0    3     2     op  Lorg/graalvm/compiler/lir/LIRInstruction;
            0    3     3  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (ILorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      index  
      op     
      block  

  int maxOpId();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 417
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            ldc "no operations"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
            arraylength
            iconst_1
            isub
            iconst_1
            ishl
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  private static int opIdToIndex(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int opId
         0: .line 427
            iload 0 /* opId */
            iconst_1
            ishr
            ireturn
        end local 0 // int opId
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  opId  I
    MethodParameters:
      Name  Flags
      opId  

  public org.graalvm.compiler.lir.LIRInstruction instructionForId(int);
    descriptor: (I)Lorg/graalvm/compiler/lir/LIRInstruction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int opId
         0: .line 437
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            iload 1 /* opId */
            invokestatic jdk.vm.ci.code.CodeUtil.isEven:(I)Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "opId not even"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
            iload 1 /* opId */
            invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToIndex:(I)I
            aaload
            astore 2 /* instr */
        start local 2 // org.graalvm.compiler.lir.LIRInstruction instr
         2: .line 439
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 3
            aload 2 /* instr */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            iload 1 /* opId */
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 440
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
            aload 2 /* instr */
            areturn
        end local 2 // org.graalvm.compiler.lir.LIRInstruction instr
        end local 1 // int opId
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    4     1   opId  I
            2    4     2  instr  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      opId  

  public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> blockForId(int);
    descriptor: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int opId
         0: .line 450
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            arraylength
            ifle 1
            iload 1 /* opId */
            iflt 1
            iload 1 /* opId */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.maxOpId:()I
            iconst_1
            iadd
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            ldc "opId out of range"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iload 1 /* opId */
            invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToIndex:(I)I
            aaload
            areturn
        end local 1 // int opId
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    3     1  opId  I
    Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
      Name  Flags
      opId  

  boolean isBlockBegin(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int opId
         0: .line 455
            iload 1 /* opId */
            ifeq 1
            aload 0 /* this */
            iload 1 /* opId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            aload 0 /* this */
            iload 1 /* opId */
            iconst_1
            isub
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            if_acmpne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // int opId
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1  opId  I
    MethodParameters:
      Name  Flags
      opId  

  boolean coversBlockBegin(int, int);
    descriptor: (II)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int opId1
        start local 2 // int opId2
         0: .line 459
            aload 0 /* this */
            iload 1 /* opId1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            aload 0 /* this */
            iload 2 /* opId2 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int opId2
        end local 1 // int opId1
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1  opId1  I
            0    2     2  opId2  I
    MethodParameters:
       Name  Flags
      opId1  
      opId2  

  boolean hasCall(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // int opId
         0: .line 470
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            iload 1 /* opId */
            invokestatic jdk.vm.ci.code.CodeUtil.isEven:(I)Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "opId not even"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* opId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.instructionForId:(I)Lorg/graalvm/compiler/lir/LIRInstruction;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.destroysCallerSavedRegisters:()Z
            ireturn
        end local 1 // int opId
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1  opId  I
    MethodParameters:
      Name  Flags
      opId  

  public boolean isProcessed(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.Value operand
         0: .line 480
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.attributes:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
            invokevirtual jdk.vm.ci.code.RegisterAttributes.isAllocatable:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // jdk.vm.ci.meta.Value operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1  operand  Ljdk/vm/ci/meta/Value;
    MethodParameters:
         Name  Flags
      operand  

  private static boolean isSorted(org.graalvm.compiler.lir.alloc.lsra.Interval[]);
    descriptor: ([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals
         0: .line 486
            iconst_m1
            istore 1 /* from */
        start local 1 // int from
         1: .line 487
            aload 0 /* intervals */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* interval */
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         3: .line 488
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 4
            aload 2 /* interval */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 489
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int org.graalvm.compiler.lir.alloc.lsra.Interval int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 5
            iload 1 /* from */
            aload 2 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            if_icmple 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 490
      StackMap locals:
      StackMap stack:
            aload 2 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            istore 1 /* from */
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         6: .line 487
            iinc 3 1
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 2
         8: .line 492
            iconst_1
            ireturn
        end local 1 // int from
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0  intervals  [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            1    9     1       from  I
            3    6     2   interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
           Name  Flags
      intervals  

  static org.graalvm.compiler.lir.alloc.lsra.Interval addToList(org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval first
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval prev
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         0: .line 496
            aload 0 /* first */
            astore 3 /* newFirst */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval newFirst
         1: .line 497
            aload 1 /* prev */
            ifnull 4
         2: .line 498
            aload 1 /* prev */
            aload 2 /* interval */
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
         3: .line 499
            goto 5
         4: .line 500
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 2 /* interval */
            astore 3 /* newFirst */
         5: .line 502
      StackMap locals:
      StackMap stack:
            aload 3 /* newFirst */
            areturn
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval newFirst
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval prev
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval first
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0     first  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0    6     1      prev  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0    6     2  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            1    6     3  newFirst  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
          Name  Flags
      first     
      prev      
      interval  

  org.graalvm.compiler.lir.alloc.lsra.Interval$Pair createUnhandledLists(org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate, org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval$Pair;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate isList1
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate isList2
         0: .line 506
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.isSorted:([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "interval list is not sorted"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 508
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* list1 */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval list1
         2: .line 509
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* list2 */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval list2
         3: .line 511
            aconst_null
            astore 5 /* list1Prev */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval list1Prev
         4: .line 512
            aconst_null
            astore 6 /* list2Prev */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval list2Prev
         5: .line 515
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            arraylength
            istore 8 /* n */
        start local 8 // int n
         6: .line 516
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         7: goto 19
         8: .line 517
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 9 /* i */
            aaload
            astore 7 /* v */
        start local 7 // org.graalvm.compiler.lir.alloc.lsra.Interval v
         9: .line 518
            aload 7 /* v */
            ifnonnull 11
        10: .line 519
            goto 18
        11: .line 522
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval int int
      StackMap stack:
            aload 1 /* isList1 */
            aload 7 /* v */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate.apply:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
            ifeq 15
        12: .line 523
            aload 3 /* list1 */
            aload 5 /* list1Prev */
            aload 7 /* v */
            invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* list1 */
        13: .line 524
            aload 7 /* v */
            astore 5 /* list1Prev */
        14: .line 525
            goto 18
      StackMap locals:
      StackMap stack:
        15: aload 2 /* isList2 */
            ifnull 16
            aload 2 /* isList2 */
            aload 7 /* v */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate.apply:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
            ifeq 18
        16: .line 526
      StackMap locals:
      StackMap stack:
            aload 4 /* list2 */
            aload 6 /* list2Prev */
            aload 7 /* v */
            invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* list2 */
        17: .line 527
            aload 7 /* v */
            astore 6 /* list2Prev */
        18: .line 516
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.Interval v
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval top int int
      StackMap stack:
        19: iload 9 /* i */
            iload 8 /* n */
            if_icmplt 8
        end local 9 // int i
        20: .line 531
            aload 5 /* list1Prev */
            ifnull 22
        21: .line 532
            aload 5 /* list1Prev */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        22: .line 534
      StackMap locals:
      StackMap stack:
            aload 6 /* list2Prev */
            ifnull 24
        23: .line 535
            aload 6 /* list2Prev */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        24: .line 538
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 25
            aload 5 /* list1Prev */
            ifnull 25
            aload 5 /* list1Prev */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            if_acmpeq 25
            new java.lang.AssertionError
            dup
            ldc "linear list ends not with sentinel"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 539
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 26
            aload 6 /* list2Prev */
            ifnull 26
            aload 6 /* list2Prev */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            if_acmpeq 26
            new java.lang.AssertionError
            dup
            ldc "linear list ends not with sentinel"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        26: .line 541
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.lir.alloc.lsra.Interval$Pair
            dup
            aload 3 /* list1 */
            aload 4 /* list2 */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
            areturn
        end local 8 // int n
        end local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval list2Prev
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval list1Prev
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval list2
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval list1
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate isList2
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate isList1
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   27     1    isList1  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
            0   27     2    isList2  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
            2   27     3      list1  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            3   27     4      list2  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            4   27     5  list1Prev  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            5   27     6  list2Prev  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            9   19     7          v  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            6   27     8          n  I
            7   20     9          i  I
    MethodParameters:
         Name  Flags
      isList1  
      isList2  

  protected void sortIntervalsBeforeAllocation();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 545
            iconst_0
            istore 1 /* sortedLen */
        start local 1 // int sortedLen
         1: .line 546
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* interval */
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         3: .line 547
            aload 2 /* interval */
            ifnull 5
         4: .line 548
            iinc 1 /* sortedLen */ 1
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         5: .line 546
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 552
            iload 1 /* sortedLen */
            anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
            astore 2 /* sortedList */
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval[] sortedList
         8: .line 553
            iconst_0
            istore 3 /* sortedIdx */
        start local 3 // int sortedIdx
         9: .line 554
            iconst_m1
            istore 4 /* sortedFromMax */
        start local 4 // int sortedFromMax
        10: .line 558
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 26
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
        11: aload 8
            iload 6
            aaload
            astore 5 /* interval */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        12: .line 559
            aload 5 /* interval */
            ifnull 25
        13: .line 560
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            istore 9 /* from */
        start local 9 // int from
        14: .line 562
            iload 4 /* sortedFromMax */
            iload 9 /* from */
            if_icmpgt 18
        15: .line 563
            aload 2 /* sortedList */
            iload 3 /* sortedIdx */
            iinc 3 /* sortedIdx */ 1
            aload 5 /* interval */
            aastore
        16: .line 564
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            istore 4 /* sortedFromMax */
        17: .line 565
            goto 25
        18: .line 569
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int org.graalvm.compiler.lir.alloc.lsra.Interval int int org.graalvm.compiler.lir.alloc.lsra.Interval[] int
      StackMap stack:
            iload 3 /* sortedIdx */
            iconst_1
            isub
            istore 10 /* j */
        start local 10 // int j
        19: goto 22
        20: .line 570
      StackMap locals: int
      StackMap stack:
            aload 2 /* sortedList */
            iload 10 /* j */
            iconst_1
            iadd
            aload 2 /* sortedList */
            iload 10 /* j */
            aaload
            aastore
        21: .line 569
            iinc 10 /* j */ -1
      StackMap locals:
      StackMap stack:
        22: iload 10 /* j */
            iflt 23
            iload 9 /* from */
            aload 2 /* sortedList */
            iload 10 /* j */
            aaload
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            if_icmplt 20
        23: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* sortedList */
            iload 10 /* j */
            iconst_1
            iadd
            aload 5 /* interval */
            aastore
        24: .line 573
            iinc 3 /* sortedIdx */ 1
        end local 10 // int j
        end local 9 // int from
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        25: .line 558
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        26: iload 6
            iload 7
            if_icmplt 11
        27: .line 577
            aload 0 /* this */
            aload 2 /* sortedList */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        28: .line 578
            return
        end local 4 // int sortedFromMax
        end local 3 // int sortedIdx
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval[] sortedList
        end local 1 // int sortedLen
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            1   29     1      sortedLen  I
            3    5     2       interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            8   29     2     sortedList  [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            9   29     3      sortedIdx  I
           10   29     4  sortedFromMax  I
           12   25     5       interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           14   25     9           from  I
           19   25    10              j  I

  void sortIntervalsAfterAllocation();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 581
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            iconst_m1
            if_icmpne 2
         1: .line 583
            return
         2: .line 586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 1 /* oldList */
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval[] oldList
         3: .line 587
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval[]
            astore 2 /* newList */
        start local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval[] newList
         4: .line 588
            aload 1 /* oldList */
            arraylength
            istore 3 /* oldLen */
        start local 3 // int oldLen
         5: .line 589
            aload 2 /* newList */
            arraylength
            istore 4 /* newLen */
        start local 4 // int newLen
         6: .line 592
            aload 2 /* newList */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  org/graalvm/compiler/lir/alloc/lsra/LinearScan.lambda$0(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I (6)
                  (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         7: .line 595
            iload 3 /* oldLen */
            iload 4 /* newLen */
            iadd
            anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
            astore 5 /* combinedList */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval[] combinedList
         8: .line 596
            iconst_0
            istore 6 /* oldIdx */
        start local 6 // int oldIdx
         9: .line 597
            iconst_0
            istore 7 /* newIdx */
        start local 7 // int newIdx
        10: .line 599
            goto 17
        11: .line 600
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.Interval[] org.graalvm.compiler.lir.alloc.lsra.Interval[] int int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int
      StackMap stack:
            iload 7 /* newIdx */
            iload 4 /* newLen */
            if_icmpge 12
            iload 6 /* oldIdx */
            iload 3 /* oldLen */
            if_icmpge 15
            aload 1 /* oldList */
            iload 6 /* oldIdx */
            aaload
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            aload 2 /* newList */
            iload 7 /* newIdx */
            aaload
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            if_icmpgt 15
        12: .line 601
      StackMap locals:
      StackMap stack:
            aload 5 /* combinedList */
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 1 /* oldList */
            iload 6 /* oldIdx */
            aaload
            aastore
        13: .line 602
            iinc 6 /* oldIdx */ 1
        14: .line 603
            goto 17
        15: .line 604
      StackMap locals:
      StackMap stack:
            aload 5 /* combinedList */
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 2 /* newList */
            iload 7 /* newIdx */
            aaload
            aastore
        16: .line 605
            iinc 7 /* newIdx */ 1
        17: .line 599
      StackMap locals:
      StackMap stack:
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 5 /* combinedList */
            arraylength
            if_icmplt 11
        18: .line 609
            aload 0 /* this */
            aload 5 /* combinedList */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        19: .line 610
            return
        end local 7 // int newIdx
        end local 6 // int oldIdx
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval[] combinedList
        end local 4 // int newLen
        end local 3 // int oldLen
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval[] newList
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval[] oldList
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            3   20     1       oldList  [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            4   20     2       newList  [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            5   20     3        oldLen  I
            6   20     4        newLen  I
            8   20     5  combinedList  [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            9   20     6        oldIdx  I
           10   20     7        newIdx  I

  public org.graalvm.compiler.lir.alloc.lsra.Interval splitChildAtOpId(org.graalvm.compiler.lir.alloc.lsra.Interval, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        start local 2 // int opId
        start local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 615
            aload 1 /* interval */
            iload 2 /* opId */
            aload 3 /* mode */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.getSplitChildAtOpId:(ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* result */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval result
         1: .line 617
            aload 4 /* result */
            ifnull 5
         2: .line 618
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 4
         3: .line 619
            ldc "Split child at pos %d of interval %s is %s"
            iload 2 /* opId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* interval */
            aload 4 /* result */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 621
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 4 /* result */
            areturn
         5: .line 623
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "LinearScan: interval is null"
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval result
        end local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 2 // int opId
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    6     1  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0    6     2      opId  I
            0    6     3      mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1    6     4    result  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
          Name  Flags
      interval  
      opId      
      mode      

  static jdk.vm.ci.meta.AllocatableValue canonicalSpillOpr(org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         0: .line 627
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 1
            aload 0 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "canonical spill slot not set"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
          Name  Flags
      interval  

  boolean isMaterialized(jdk.vm.ci.meta.AllocatableValue, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.AllocatableValue operand
        start local 2 // int opId
        start local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 632
            aload 0 /* this */
            aload 1 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* interval */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         1: .line 633
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 2
            aload 4 /* interval */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "interval must exist"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 635
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            iload 2 /* opId */
            iconst_m1
            if_icmpeq 4
         3: .line 640
            aload 0 /* this */
            aload 4 /* interval */
            iload 2 /* opId */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* interval */
         4: .line 643
      StackMap locals:
      StackMap stack:
            aload 4 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
            aload 4 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifeq 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 2 // int opId
        end local 1 // jdk.vm.ci.meta.AllocatableValue operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    6     1   operand  Ljdk/vm/ci/meta/AllocatableValue;
            0    6     2      opId  I
            0    6     3      mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1    6     4  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    MethodParameters:
         Name  Flags
      operand  
      opId     
      mode     

  boolean isCallerSave(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // jdk.vm.ci.meta.Value operand
         0: .line 647
            aload 0 /* this */
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.attributes:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
            invokevirtual jdk.vm.ci.code.RegisterAttributes.isCallerSave:()Z
            ireturn
        end local 1 // jdk.vm.ci.meta.Value operand
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    1     1  operand  Ljdk/vm/ci/meta/Value;
    MethodParameters:
         Name  Flags
      operand  

  protected void allocate(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory, org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan 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.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        start local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig registerAllocationConfig
         0: .line 656
            aconst_null
            astore 5
            aconst_null
            astore 6
         1: ldc "LinearScan allocate"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* indent */
        start local 7 // org.graalvm.compiler.debug.Indent indent
         2: .line 657
            new org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext
            dup
            aload 3 /* spillMoveFactory */
            aload 4 /* registerAllocationConfig */
            invokespecial org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;)V
            astore 8 /* context */
        start local 8 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
         3: .line 659
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createLifetimeAnalysisPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
         4: .line 661
            aconst_null
            astore 9
            aconst_null
            astore 10
         5: ldc "AfterLifetimeAnalysis"
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 11 /* s */
        start local 11 // org.graalvm.compiler.debug.Debug$Scope s
         6: .line 662
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsBeforeAllocation:()V
         7: .line 664
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createRegisterAllocationPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
         8: .line 666
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options.LIROptLSRAOptimizeSpillPosition: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 10
         9: .line 667
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createOptimizeSpillPositionPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanOptimizeSpillPositionPhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
        10: .line 669
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createResolveDataFlowPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
        11: .line 671
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsAfterAllocation:()V
        12: .line 673
            getstatic org.graalvm.compiler.core.common.GraalOptions.DetailedAsserts: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 14
        13: .line 674
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verify:()Z
            pop
        14: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.beforeSpillMoveElimination:()V
        15: .line 677
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createSpillMoveEliminationPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanEliminateSpillMovePhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
        16: .line 678
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createAssignLocationsPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 8 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
        17: .line 680
            getstatic org.graalvm.compiler.core.common.GraalOptions.DetailedAsserts: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 19
        18: .line 681
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyIntervals:()V
        19: .line 683
      StackMap locals:
      StackMap stack:
            aload 11 /* s */
            ifnull 27
            aload 11 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 9
            aload 11 /* s */
            ifnull 21
            aload 11 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 11 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
        21: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 10
            aload 9
            ifnonnull 23
            aload 10
            astore 9
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 9
            aload 10
            if_acmpeq 24
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 9
            athrow
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext
      StackMap stack: java.lang.Throwable
        25: astore 9 /* e */
        start local 9 // java.lang.Throwable e
        26: .line 684
            aload 9 /* e */
            invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.Throwable e
        end local 8 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
        27: .line 686
      StackMap locals:
      StackMap stack:
            aload 7 /* indent */
            ifnull 33
            aload 7 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 5
            aload 7 /* indent */
            ifnull 29
            aload 7 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        29: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 6
            aload 5
            ifnonnull 31
            aload 6
            astore 5
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 5
            aload 6
            if_acmpeq 32
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 5
            athrow
        33: .line 687
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig registerAllocationConfig
        end local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        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.LinearScan this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   34     0                      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   34     1                    target  Ljdk/vm/ci/code/TargetDescription;
            0   34     2                 lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0   34     3          spillMoveFactory  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            0   34     4  registerAllocationConfig  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            2   29     7                    indent  Lorg/graalvm/compiler/debug/Indent;
            3   27     8                   context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
            6   21    11                         s  Lorg/graalvm/compiler/debug/Debug$Scope;
           26   27     9                         e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6    19      20  any
           5    22      22  any
           4    25      25  Class java.lang.Throwable
           2    27      28  any
           1    30      30  any
    MethodParameters:
                          Name  Flags
      target                    
      lirGenRes                 
      spillMoveFactory          
      registerAllocationConfig  

  protected void beforeSpillMoveElimination();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 690
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase createLifetimeAnalysisPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 693
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase createRegisterAllocationPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 697
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase createOptimizeSpillPositionPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanOptimizeSpillPositionPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 701
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase createResolveDataFlowPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 705
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase createSpillMoveEliminationPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanEliminateSpillMovePhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 709
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  protected org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase createAssignLocationsPhase();
    descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 713
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public void printIntervals(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // java.lang.String label
         0: .line 718
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 29
         1: .line 719
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: ldc "intervals %s"
            aload 1 /* label */
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         3: .line 720
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* interval */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         5: .line 721
            aload 5 /* interval */
            ifnull 7
         6: .line 722
            ldc "%s"
            aload 5 /* interval */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         7: .line 720
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 4
         9: .line 726
            aconst_null
            astore 5
            aconst_null
            astore 6
        10: ldc "Basic Blocks"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* indent2 */
        start local 7 // org.graalvm.compiler.debug.Indent indent2
        11: .line 727
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: goto 16
        13: .line 728
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* i */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockAt:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 9 /* block */
        start local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        14: .line 729
            ldc "B%d [%d, %d, %s] "
            aload 9 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            aload 9 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            aload 9 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        15: .line 727
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockCount:()I
            if_icmplt 13
        end local 8 // int i
        17: .line 731
            aload 7 /* indent2 */
            ifnull 23
            aload 7 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 23
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        18: astore 5
            aload 7 /* indent2 */
            ifnull 19
            aload 7 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent indent2
      StackMap locals:
      StackMap stack:
        19: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 6
            aload 5
            ifnonnull 21
            aload 6
            astore 5
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 5
            aload 6
            if_acmpeq 22
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 5
            athrow
        23: .line 732
      StackMap locals:
      StackMap stack:
            aload 4 /* indent */
            ifnull 29
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 2
            aload 4 /* indent */
            ifnull 25
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        25: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 3
            aload 2
            ifnonnull 27
            aload 3
            astore 2
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 2
            aload 3
            if_acmpeq 28
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 2
            athrow
        29: .line 734
      StackMap locals:
      StackMap stack:
            iconst_1
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanIntervalDumper
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval[]
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanIntervalDumper.<init>:([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
            aload 1 /* label */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        30: .line 735
            return
        end local 1 // java.lang.String label
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   31     1     label  Ljava/lang/String;
            3   25     4    indent  Lorg/graalvm/compiler/debug/Indent;
            5    7     5  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           11   19     7   indent2  Lorg/graalvm/compiler/debug/Indent;
           12   17     8         i  I
           14   15     9     block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
      Exception table:
        from    to  target  type
          11    17      18  any
          10    20      20  any
           3    23      24  any
           2    26      26  any
    MethodParameters:
       Name  Flags
      label  

  public void printLir(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
        start local 1 // java.lang.String label
        start local 2 // boolean hirValid
         0: .line 738
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* label */
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
         1: .line 739
            return
        end local 2 // boolean hirValid
        end local 1 // java.lang.String label
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0    2     1     label  Ljava/lang/String;
            0    2     2  hirValid  Z
    MethodParameters:
          Name  Flags
      label     
      hirValid  

  boolean verify();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 743
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyIntervals:()V
         1: .line 745
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyRegisters:()V
         2: .line 747
            ldc "no errors found"
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
         3: .line 749
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  private void verifyRegisters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 755
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: ldc "verifying register allocation"
            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 756
            new org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            astore 4 /* verifier */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier verifier
         3: .line 757
            aload 4 /* verifier */
            aload 0 /* this */
            iconst_0
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockAt:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier.verify:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier verifier
         4: .line 758
            aload 3 /* indent */
            ifnull 10
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 10
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
         5: astore 1
            aload 3 /* indent */
            ifnull 6
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
         6: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 1
            ifnonnull 8
            aload 2
            astore 1
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 1
            aload 2
            if_acmpeq 9
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 1
            athrow
        10: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            2    6     3    indent  Lorg/graalvm/compiler/debug/Indent;
            3    4     4  verifier  Lorg/graalvm/compiler/lir/alloc/lsra/RegisterVerifier;
      Exception table:
        from    to  target  type
           2     4       5  any
           1     7       7  any

  protected void verifyIntervals();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 763
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: ldc "verifying intervals"
            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 764
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            istore 4 /* len */
        start local 4 // int len
         3: .line 766
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 51
         5: .line 767
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 5 /* i */
            aaload
            astore 6 /* i1 */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval i1
         6: .line 768
            aload 6 /* i1 */
            ifnonnull 8
         7: .line 769
            goto 50
         8: .line 772
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.checkSplitChildren:()Z
            pop
         9: .line 774
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            iload 5 /* i */
            if_icmpeq 13
        10: .line 775
            ldc "Interval %d is on position %d in list"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            iload 5 /* i */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;II)V
        11: .line 776
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        12: .line 777
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 780
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operand:Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 17
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            getstatic org.graalvm.compiler.core.common.LIRKind.Illegal:Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 17
        14: .line 781
            ldc "Interval %d has no type assigned"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
        15: .line 782
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        16: .line 783
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 786
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            ifnonnull 21
        18: .line 787
            ldc "Interval %d has no register assigned"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
        19: .line 788
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        20: .line 789
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 792
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.first:()Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            getstatic org.graalvm.compiler.lir.alloc.lsra.Range.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            if_acmpne 25
        22: .line 793
            ldc "Interval %d has no Range"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
        23: .line 794
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        24: .line 795
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 798
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.first:()Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            astore 7 /* r */
        start local 7 // org.graalvm.compiler.lir.alloc.lsra.Range r
        26: goto 32
        27: .line 799
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Range
      StackMap stack:
            aload 7 /* r */
            getfield org.graalvm.compiler.lir.alloc.lsra.Range.from:I
            aload 7 /* r */
            getfield org.graalvm.compiler.lir.alloc.lsra.Range.to:I
            if_icmplt 31
        28: .line 800
            ldc "Interval %d has zero length range"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
        29: .line 801
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        30: .line 802
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 798
      StackMap locals:
      StackMap stack:
            aload 7 /* r */
            getfield org.graalvm.compiler.lir.alloc.lsra.Range.next:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            astore 7 /* r */
      StackMap locals:
      StackMap stack:
        32: aload 7 /* r */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Range.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            if_acmpne 27
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.Range r
        33: .line 806
            iload 5 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
        34: goto 49
        35: .line 807
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int org.graalvm.compiler.lir.alloc.lsra.Interval int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 7 /* j */
            aaload
            astore 8 /* i2 */
        start local 8 // org.graalvm.compiler.lir.alloc.lsra.Interval i2
        36: .line 808
            aload 8 /* i2 */
            ifnonnull 38
        37: .line 809
            goto 48
        38: .line 814
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            iconst_1
            if_icmpne 40
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
            iconst_2
            if_icmpne 40
        39: .line 815
            goto 48
        40: .line 817
      StackMap locals:
      StackMap stack:
            aload 8 /* i2 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            iconst_1
            if_icmpne 42
            aload 8 /* i2 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
            iconst_2
            if_icmpne 42
        41: .line 818
            goto 48
        42: .line 820
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            astore 9 /* l1 */
        start local 9 // jdk.vm.ci.meta.Value l1
        43: .line 821
            aload 8 /* i2 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            astore 10 /* l2 */
        start local 10 // jdk.vm.ci.meta.Value l2
        44: .line 822
            aload 6 /* i1 */
            aload 8 /* i2 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.intersects:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
            ifeq 48
            aload 9 /* l1 */
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
            ifne 48
            aload 9 /* l1 */
            aload 10 /* l2 */
            invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
            ifeq 48
        45: .line 823
            ldc "Intervals %d and %d overlap and have the same register assigned\n%s\n%s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 8 /* i2 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        46: .line 824
            aload 6 /* i1 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 8 /* i2 */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
            aastore
        47: .line 823
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 10 // jdk.vm.ci.meta.Value l2
        end local 9 // jdk.vm.ci.meta.Value l1
        end local 8 // org.graalvm.compiler.lir.alloc.lsra.Interval i2
        48: .line 806
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        49: iload 7 /* j */
            iload 4 /* len */
            if_icmplt 35
        end local 7 // int j
        end local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval i1
        50: .line 766
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 5 /* i */
            iload 4 /* len */
            if_icmplt 5
        end local 5 // int i
        end local 4 // int len
        52: .line 828
            aload 3 /* indent */
            ifnull 58
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 58
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        53: astore 1
            aload 3 /* indent */
            ifnull 54
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        54: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        55: astore 2
            aload 1
            ifnonnull 56
            aload 2
            astore 1
            goto 57
      StackMap locals:
      StackMap stack:
        56: aload 1
            aload 2
            if_acmpeq 57
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        57: aload 1
            athrow
        58: .line 829
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   59     0    this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            2   54     3  indent  Lorg/graalvm/compiler/debug/Indent;
            3   52     4     len  I
            4   52     5       i  I
            6   50     6      i1  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           26   33     7       r  Lorg/graalvm/compiler/lir/alloc/lsra/Range;
           34   50     7       j  I
           36   48     8      i2  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           43   48     9      l1  Ljdk/vm/ci/meta/Value;
           44   48    10      l2  Ljdk/vm/ci/meta/Value;
      Exception table:
        from    to  target  type
           2    52      53  any
           1    55      55  any

  void verifyNoOopsInFixedIntervals();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=17, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 848
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: ldc "verifying that no oops are in fixed intervals *"
            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 849
            new org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
            astore 4 /* checkConsumer */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer checkConsumer
         3: .line 853
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
            aconst_null
            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;
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.first:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 5 /* fixedIntervals */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval fixedIntervals
         4: .line 856
            new org.graalvm.compiler.lir.alloc.lsra.Interval
            dup
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            iconst_m1
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;I)V
            astore 6 /* otherIntervals */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval otherIntervals
         5: .line 857
            aload 6 /* otherIntervals */
            ldc 2147483645
            ldc 2147483646
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.addRange:(II)V
         6: .line 858
            new org.graalvm.compiler.lir.alloc.lsra.IntervalWalker
            dup
            aload 0 /* this */
            aload 5 /* fixedIntervals */
            aload 6 /* otherIntervals */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.<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 /* iw */
        start local 7 // org.graalvm.compiler.lir.alloc.lsra.IntervalWalker iw
         7: .line 860
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 32
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         8: aload 11
            iload 9
            aaload
            astore 8 /* block */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         9: .line 861
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            aload 8 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 12 /* instructions */
        start local 12 // java.util.List instructions
        10: .line 863
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        11: goto 30
        12: .line 864
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.List int
      StackMap stack:
            aload 12 /* instructions */
            iload 13 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 14 /* op */
        start local 14 // org.graalvm.compiler.lir.LIRInstruction op
        13: .line 866
            aload 14 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.hasState:()Z
            ifeq 29
        14: .line 867
            aload 7 /* iw */
            aload 14 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.walkBefore:(I)V
        15: .line 868
            iconst_1
            istore 15 /* checkLive */
        start local 15 // boolean checkLive
        16: .line 874
            iload 15 /* checkLive */
            ifeq 29
        17: .line 875
            aload 7 /* iw */
            getfield org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.activeLists: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;
            astore 16 /* interval */
        start local 16 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        18: goto 28
        19: .line 876
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction int org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 16 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.currentTo:()I
            aload 14 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            iconst_1
            iadd
            if_icmple 27
        20: .line 882
            aload 4 /* checkConsumer */
            aload 16 /* interval */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.curInterval:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        21: .line 883
            aload 4 /* checkConsumer */
            iconst_0
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.ok:Z
        22: .line 885
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        23: .line 886
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        24: .line 887
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        25: .line 888
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        26: .line 890
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
            ifne 27
            aload 4 /* checkConsumer */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.ok:Z
            ifne 27
            new java.lang.AssertionError
            dup
            ldc "fixed intervals should never be live across an oopmap point"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        27: .line 875
      StackMap locals:
      StackMap stack:
            aload 16 /* interval */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 16 /* interval */
      StackMap locals:
      StackMap stack:
        28: aload 16 /* interval */
            getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            if_acmpne 19
        end local 16 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 15 // boolean checkLive
        end local 14 // org.graalvm.compiler.lir.LIRInstruction op
        29: .line 863
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        30: iload 13 /* j */
            aload 12 /* instructions */
            invokeinterface java.util.List.size:()I
            if_icmplt 12
        end local 13 // int j
        end local 12 // java.util.List instructions
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        31: .line 860
            iinc 9 1
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
        32: iload 9
            iload 10
            if_icmplt 8
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.IntervalWalker iw
        end local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval otherIntervals
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval fixedIntervals
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer checkConsumer
        33: .line 897
            aload 3 /* indent */
            ifnull 39
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 39
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        34: astore 1
            aload 3 /* indent */
            ifnull 35
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        35: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        36: astore 2
            aload 1
            ifnonnull 37
            aload 2
            astore 1
            goto 38
      StackMap locals:
      StackMap stack:
        37: aload 1
            aload 2
            if_acmpeq 38
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        38: aload 1
            athrow
        39: .line 898
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            2   35     3          indent  Lorg/graalvm/compiler/debug/Indent;
            3   33     4   checkConsumer  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$CheckConsumer;
            4   33     5  fixedIntervals  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            5   33     6  otherIntervals  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            7   33     7              iw  Lorg/graalvm/compiler/lir/alloc/lsra/IntervalWalker;
            9   31     8           block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           10   31    12    instructions  Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
           11   31    13               j  I
           13   29    14              op  Lorg/graalvm/compiler/lir/LIRInstruction;
           16   29    15       checkLive  Z
           18   29    16        interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
      Exception table:
        from    to  target  type
           2    33      34  any
           1    36      36  any

  public org.graalvm.compiler.lir.LIR getLIR();
    descriptor: ()Lorg/graalvm/compiler/lir/LIR;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 901
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public org.graalvm.compiler.lir.framemap.FrameMapBuilder getFrameMapBuilder();
    descriptor: ()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 905
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] sortedBlocks();
    descriptor: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 909
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    Signature: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;

  public jdk.vm.ci.code.RegisterArray getRegisters();
    descriptor: ()Ljdk/vm/ci/code/RegisterArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 913
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registers:Ljdk/vm/ci/code/RegisterArray;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig getRegisterAllocationConfig();
    descriptor: ()Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 917
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            areturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  public boolean callKillsRegisters();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 921
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
            invokeinterface jdk.vm.ci.code.RegisterConfig.areAllAllocatableRegistersCallerSaved:()Z
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  boolean neverSpillConstants();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 925
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.neverSpillConstants:Z
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;

  private static int lambda$0(org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval a
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval b
         0: .line 592
            aload 0 /* a */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            isub
            ireturn
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.Interval b
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.Interval a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            0    1     1     b  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
}
SourceFile: "LinearScan.java"
NestMembers:
  org.graalvm.compiler.lir.alloc.lsra.LinearScan$1  org.graalvm.compiler.lir.alloc.lsra.LinearScan$2  org.graalvm.compiler.lir.alloc.lsra.LinearScan$3  org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData  org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer  org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate  org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  final Pair = org.graalvm.compiler.lir.alloc.lsra.Interval$Pair of org.graalvm.compiler.lir.alloc.lsra.Interval
  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
  org.graalvm.compiler.lir.alloc.lsra.LinearScan$1
  org.graalvm.compiler.lir.alloc.lsra.LinearScan$2
  org.graalvm.compiler.lir.alloc.lsra.LinearScan$3
  public BlockData = org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  CheckConsumer = org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  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.LinearScan$Options of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool
  public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase