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;>;

  protected final org.graalvm.compiler.debug.DebugContext debug;
    descriptor: Lorg/graalvm/compiler/debug/DebugContext;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  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

  protected final org.graalvm.compiler.lir.alloc.lsra.Interval intervalEndMarker;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public final org.graalvm.compiler.lir.alloc.lsra.Range rangeEndMarker;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/Range;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean detailedAsserts;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final org.graalvm.compiler.lir.gen.LIRGenerationResult res;
    descriptor: Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
    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 80
            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 294
            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 302
            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 310
            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 316
            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=7, 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 192
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 153
            aload 0 /* this */
            iconst_m1
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
         2: .line 194
            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 195
            aload 0 /* this */
            aload 2 /* res */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
         4: .line 196
            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.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
         5: .line 197
            aload 0 /* this */
            aload 3 /* spillMoveFactory */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.moveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
         6: .line 198
            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;
         7: .line 199
            aload 0 /* this */
            aload 5 /* sortedBlocks */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
         8: .line 200
            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;
         9: .line 201
            aload 0 /* this */
            aload 4 /* regAllocConfig */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
        10: .line 203
            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;
        11: .line 204
            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
        12: .line 205
            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
        13: .line 206
            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;
        14: .line 207
            aload 0 /* this */
            iload 6 /* neverSpillConstants */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.neverSpillConstants:Z
        15: .line 208
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.lsra.Range
            dup
            ldc 2147483647
            ldc 2147483647
            aconst_null
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Range.<init>:(IILorg/graalvm/compiler/lir/alloc/lsra/Range;)V
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
        16: .line 209
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.lsra.Interval
            dup
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            ldc -2147483648
            aconst_null
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        17: .line 210
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        18: .line 211
            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.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.debug.Assertions.detailedAssertionsEnabled:(Lorg/graalvm/compiler/options/OptionValues;)Z
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
        19: .line 212
            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   20     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   20     1               target  Ljdk/vm/ci/code/TargetDescription;
            0   20     2                  res  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0   20     3     spillMoveFactory  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            0   20     4       regAllocConfig  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            0   20     5         sortedBlocks  [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            0   20     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 org.graalvm.compiler.lir.gen.LIRGenerationResult getLIRGenerationResult();
    descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
    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 215
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            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.alloc.lsra.Interval intervalEndMarker();
    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 219
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker: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;

  public org.graalvm.compiler.options.OptionValues getOptions();
    descriptor: ()Lorg/graalvm/compiler/options/OptionValues;
    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 223
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            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.debug.DebugContext getDebug();
    descriptor: ()Lorg/graalvm/compiler/debug/DebugContext;
    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 227
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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 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 231
            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 232
            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 233
      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 237
            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.ArrayList instructions
         1: .line 238
            aload 2 /* instructions */
            aload 2 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.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 239
            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 240
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // java.util.ArrayList 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/ArrayList<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 244
            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 248
            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 249
            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 250
      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 254
            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 263
            aload 1 /* operand */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
         1: .line 264
            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 265
            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 266
      StackMap locals: int
      StackMap stack:
            iload 2 /* number */
            ireturn
        end local 2 // int number
         4: .line 268
      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 269
      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 276
            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 283
            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 287
            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 291
            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 292
            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 323
            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 331
            aload 1 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifeq 3
         1: .line 332
            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 333
            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 334
            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 335
            goto 9
         6: .line 336
      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 337
            aload 1 /* interval */
            aload 2 /* slot */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.setSpillSlot:(Ljdk/vm/ci/meta/AllocatableValue;)V
         8: .line 338
            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 340
      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 346
            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 350
            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 351
            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 352
            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=6, 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 361
            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 362
      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 363
            new org.graalvm.compiler.lir.alloc.lsra.Interval
            dup
            aload 1 /* operand */
            iload 2 /* operandNumber */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
            astore 3 /* interval */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         3: .line 364
            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 365
      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 366
      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 367
            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 377
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            iconst_m1
            if_icmpne 2
         1: .line 378
            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 380
      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 381
            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 383
      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 384
            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 389
      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 391
            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 392
            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 393
      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 398
            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 402
            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 411
            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 415
            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 419
            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 423
            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 424
            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 425
      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 429
            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 430
            aload 2 /* ret */
            ifnonnull 3
         2: .line 431
            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 433
      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 438
            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 439
            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 440
            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 443
            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 444
            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 445
            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 451
            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 452
      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 461
            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 471
            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 472
      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 473
            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 474
      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 484
            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 485
      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 489
            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 493
            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 504
            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 505
      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 514
            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 520
            iconst_m1
            istore 1 /* from */
        start local 1 // int from
         1: .line 521
            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 522
            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 523
      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 524
      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 521
            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 526
            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 530
            aload 0 /* first */
            astore 3 /* newFirst */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval newFirst
         1: .line 531
            aload 1 /* prev */
            ifnull 4
         2: .line 532
            aload 1 /* prev */
            aload 2 /* interval */
            putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
         3: .line 533
            goto 5
         4: .line 534
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 2 /* interval */
            astore 3 /* newFirst */
         5: .line 536
      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  

  jdk.internal.vm.compiler.collections.Pair<org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval> 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;)Ljdk/internal/vm/compiler/collections/Pair;
    flags: (0x0000) 
    Code:
      stack=3, 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 540
            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 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* list1 */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval list1
         2: .line 543
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 4 /* list2 */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.Interval list2
         3: .line 545
            aconst_null
            astore 5 /* list1Prev */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval list1Prev
         4: .line 546
            aconst_null
            astore 6 /* list2Prev */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval list2Prev
         5: .line 549
            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 550
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         7: goto 19
         8: .line 551
      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 552
            aload 7 /* v */
            ifnonnull 11
        10: .line 553
            goto 18
        11: .line 556
      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 557
            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 558
            aload 7 /* v */
            astore 5 /* list1Prev */
        14: .line 559
            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 560
      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 561
            aload 7 /* v */
            astore 6 /* list2Prev */
        18: .line 550
      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 565
            aload 5 /* list1Prev */
            ifnull 22
        21: .line 566
            aload 5 /* list1Prev */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker: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 568
      StackMap locals:
      StackMap stack:
            aload 6 /* list2Prev */
            ifnull 24
        23: .line 569
            aload 6 /* list2Prev */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker: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 572
      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;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifne 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 573
      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;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifne 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 575
      StackMap locals:
      StackMap stack:
            aload 3 /* list1 */
            aload 4 /* list2 */
            invokestatic jdk.internal.vm.compiler.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Ljdk/internal/vm/compiler/collections/Pair;
            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
    Signature: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;>;
    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 579
            iconst_0
            istore 1 /* sortedLen */
        start local 1 // int sortedLen
         1: .line 580
            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 581
            aload 2 /* interval */
            ifnull 5
         4: .line 582
            iinc 1 /* sortedLen */ 1
        end local 2 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         5: .line 580
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 586
            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 587
            iconst_0
            istore 3 /* sortedIdx */
        start local 3 // int sortedIdx
         9: .line 588
            iconst_m1
            istore 4 /* sortedFromMax */
        start local 4 // int sortedFromMax
        10: .line 592
            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 593
            aload 5 /* interval */
            ifnull 25
        13: .line 594
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            istore 9 /* from */
        start local 9 // int from
        14: .line 596
            iload 4 /* sortedFromMax */
            iload 9 /* from */
            if_icmpgt 18
        15: .line 597
            aload 2 /* sortedList */
            iload 3 /* sortedIdx */
            iinc 3 /* sortedIdx */ 1
            aload 5 /* interval */
            aastore
        16: .line 598
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
            istore 4 /* sortedFromMax */
        17: .line 599
            goto 25
        18: .line 603
      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 604
      StackMap locals: int
      StackMap stack:
            aload 2 /* sortedList */
            iload 10 /* j */
            iconst_1
            iadd
            aload 2 /* sortedList */
            iload 10 /* j */
            aaload
            aastore
        21: .line 603
            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 606
      StackMap locals:
      StackMap stack:
            aload 2 /* sortedList */
            iload 10 /* j */
            iconst_1
            iadd
            aload 5 /* interval */
            aastore
        24: .line 607
            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 592
      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 611
            aload 0 /* this */
            aload 2 /* sortedList */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        28: .line 612
            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 615
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
            iconst_m1
            if_icmpne 2
         1: .line 617
            return
         2: .line 620
      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 621
            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 622
            aload 1 /* oldList */
            arraylength
            istore 3 /* oldLen */
        start local 3 // int oldLen
         5: .line 623
            aload 2 /* newList */
            arraylength
            istore 4 /* newLen */
        start local 4 // int newLen
         6: .line 626
            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 629
            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 630
            iconst_0
            istore 6 /* oldIdx */
        start local 6 // int oldIdx
         9: .line 631
            iconst_0
            istore 7 /* newIdx */
        start local 7 // int newIdx
        10: .line 633
            goto 17
        11: .line 634
      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 635
      StackMap locals:
      StackMap stack:
            aload 5 /* combinedList */
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 1 /* oldList */
            iload 6 /* oldIdx */
            aaload
            aastore
        13: .line 636
            iinc 6 /* oldIdx */ 1
        14: .line 637
            goto 17
        15: .line 638
      StackMap locals:
      StackMap stack:
            aload 5 /* combinedList */
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 2 /* newList */
            iload 7 /* newIdx */
            aaload
            aastore
        16: .line 639
            iinc 7 /* newIdx */ 1
        17: .line 633
      StackMap locals:
      StackMap stack:
            iload 6 /* oldIdx */
            iload 7 /* newIdx */
            iadd
            aload 5 /* combinedList */
            arraylength
            if_icmplt 11
        18: .line 643
            aload 0 /* this */
            aload 5 /* combinedList */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
        19: .line 644
            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=5, 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 649
            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 651
            aload 4 /* result */
            ifnull 5
         2: .line 652
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 4
         3: .line 653
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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 */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 655
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            aload 4 /* result */
            areturn
         5: .line 657
      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 661
            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 662
      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 666
            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 667
            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 669
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            iload 2 /* opId */
            iconst_m1
            if_icmpeq 4
         3: .line 674
            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 677
      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 681
            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.phases.AllocationPhase$AllocationContext);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=4
        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.phases.AllocationPhase$AllocationContext context
         0: .line 689
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "LinearScan allocate"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 6 /* indent */
        start local 6 // org.graalvm.compiler.debug.Indent indent
         2: .line 691
            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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
         3: .line 693
            aconst_null
            astore 7
            aconst_null
            astore 8
         4: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "AfterLifetimeAnalysis"
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 9 /* s */
        start local 9 // org.graalvm.compiler.debug.DebugContext$Scope s
         5: .line 694
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsBeforeAllocation:()V
         6: .line 696
            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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
         7: .line 698
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options.LIROptLSRAOptimizeSpillPosition:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 9
         8: .line 699
            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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
         9: .line 701
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
        10: .line 703
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsAfterAllocation:()V
        11: .line 705
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
            ifeq 13
        12: .line 706
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verify:()Z
            pop
        13: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.beforeSpillMoveElimination:()V
        14: .line 709
            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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
        15: .line 710
            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 3 /* context */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
        16: .line 712
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
            ifeq 18
        17: .line 713
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyIntervals:()V
        18: .line 715
      StackMap locals:
      StackMap stack:
            aload 9 /* s */
            ifnull 26
            aload 9 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 7
            aload 9 /* s */
            ifnull 20
            aload 9 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        20: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 8
            aload 7
            ifnonnull 22
            aload 8
            astore 7
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 7
            aload 8
            if_acmpeq 23
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 7
            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.phases.AllocationPhase$AllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        24: astore 7 /* e */
        start local 7 // java.lang.Throwable e
        25: .line 716
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 7 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.Throwable e
        26: .line 718
      StackMap locals:
      StackMap stack:
            aload 6 /* indent */
            ifnull 32
            aload 6 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 4
            aload 6 /* indent */
            ifnull 28
            aload 6 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 6 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        28: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 5
            aload 4
            ifnonnull 30
            aload 5
            astore 4
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 4
            aload 5
            if_acmpeq 31
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 4
            athrow
        32: .line 719
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            0   33     1     target  Ljdk/vm/ci/code/TargetDescription;
            0   33     2  lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0   33     3    context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
            2   28     6     indent  Lorg/graalvm/compiler/debug/Indent;
            5   20     9          s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           25   26     7          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5    18      19  any
           4    21      21  any
           3    24      24  Class java.lang.Throwable
           2    26      27  any
           1    29      29  any
    MethodParameters:
           Name  Flags
      target     
      lirGenRes  
      context    

  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 722
            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 725
            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 729
            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 733
            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 737
            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 741
            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 745
            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=6, 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 750
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 29
         1: .line 751
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "intervals %s"
            aload 1 /* label */
            invokevirtual org.graalvm.compiler.debug.DebugContext.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 752
            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 753
            aload 5 /* interval */
            ifnull 7
         6: .line 754
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         7: .line 752
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 4
         9: .line 758
            aconst_null
            astore 5
            aconst_null
            astore 6
        10: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Basic Blocks"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* indent2 */
        start local 7 // org.graalvm.compiler.debug.Indent indent2
        11: .line 759
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: goto 16
        13: .line 760
      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 761
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.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 759
            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 763
            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 764
      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 766
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_3
            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 */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        30: .line 767
            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  

  boolean verify();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 771
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyIntervals:()V
         1: .line 773
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyRegisters:()V
         2: .line 775
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "no errors found"
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
         3: .line 777
            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 783
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "verifying register allocation"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 784
            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 785
            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 786
            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 787
      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 791
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "verifying intervals"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 792
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
            istore 4 /* len */
        start local 4 // int len
         3: .line 794
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 51
         5: .line 795
      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 796
            aload 6 /* i1 */
            ifnonnull 8
         7: .line 797
            goto 50
         8: .line 800
      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 802
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            iload 5 /* i */
            if_icmpeq 13
        10: .line 803
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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 */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;II)V
        11: .line 804
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
        12: .line 805
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 808
      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 809
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Interval %d has no type assigned"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        15: .line 810
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
        16: .line 811
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 814
      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 815
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Interval %d has no register assigned"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        19: .line 816
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
        20: .line 817
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 820
      StackMap locals:
      StackMap stack:
            aload 6 /* i1 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.first:()Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Range.isEndMarker:()Z
            ifeq 25
        22: .line 821
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Interval %d has no Range"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        23: .line 822
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
        24: .line 823
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 826
      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 827
      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 828
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Interval %d has zero length range"
            aload 6 /* i1 */
            getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        29: .line 829
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
        30: .line 830
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc ""
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 826
      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 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Range.isEndMarker:()Z
            ifeq 27
        end local 7 // org.graalvm.compiler.lir.alloc.lsra.Range r
        33: .line 834
            iload 5 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
        34: goto 49
        35: .line 835
      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 836
            aload 8 /* i2 */
            ifnonnull 38
        37: .line 837
            goto 48
        38: .line 842
      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 843
            goto 48
        40: .line 845
      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 846
            goto 48
        42: .line 848
      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 849
            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 850
            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 851
            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 852
            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 851
            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 834
      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 794
      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 856
            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 857
      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=6, locals=17, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScan this
         0: .line 876
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "verifying that no oops are in fixed intervals *"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 877
            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 881
            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;)Ljdk/internal/vm/compiler/collections/Pair;
            invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
            astore 5 /* fixedIntervals */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval fixedIntervals
         4: .line 884
            new org.graalvm.compiler.lir.alloc.lsra.Interval
            dup
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            iconst_m1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
            invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
            astore 6 /* otherIntervals */
        start local 6 // org.graalvm.compiler.lir.alloc.lsra.Interval otherIntervals
         5: .line 885
            aload 6 /* otherIntervals */
            ldc 2147483645
            ldc 2147483646
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.addRange:(II)V
         6: .line 886
            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 888
            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 889
            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.ArrayList instructions
        10: .line 891
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        11: goto 30
        12: .line 892
      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.ArrayList int
      StackMap stack:
            aload 12 /* instructions */
            iload 13 /* j */
            invokevirtual java.util.ArrayList.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 894
            aload 14 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.hasState:()Z
            ifeq 29
        14: .line 895
            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 896
            iconst_1
            istore 15 /* checkLive */
        start local 15 // boolean checkLive
        16: .line 902
            iload 15 /* checkLive */
            ifeq 29
        17: .line 903
            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 904
      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 910
            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 911
            aload 4 /* checkConsumer */
            iconst_0
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.ok:Z
        22: .line 913
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        23: .line 914
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        24: .line 915
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        25: .line 916
            aload 14 /* op */
            aload 4 /* checkConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        26: .line 918
            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 903
      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 */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
            ifeq 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 891
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        30: iload 13 /* j */
            aload 12 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 12
        end local 13 // int j
        end local 12 // java.util.ArrayList instructions
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        31: .line 888
            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 925
            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 926
      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/ArrayList<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 929
            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 933
            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 937
            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 941
            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 945
            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 949
            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 953
            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 626
            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.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  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