final class org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator
  super_class: java.lang.Object
{
  private final jdk.vm.ci.meta.AllocatableValue[] currentRegisterMapping;
    descriptor: [Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.AllocatableValue[] locations;
    descriptor: [Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] lastRegisterUsage;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] lastRegisterKill;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction> currentInstructions;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;

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

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

  private final org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor phiVisitor;
    descriptor: Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  final org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator this$0;
    descriptor: Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 251
            ldc Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            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.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
         0: .line 270
            aload 0 /* this */
            aload 1
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 386
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;)V
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiVisitor:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
         2: .line 500
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$1
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$1.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;)V
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocFixedRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
         3: .line 506
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$2
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$2.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;)V
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
         4: .line 512
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$3
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$3.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;)V
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
         5: .line 271
            aload 1
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.target:Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.getRegisters:()Ljdk/vm/ci/code/RegisterArray;
            astore 2 /* registers */
        start local 2 // jdk.vm.ci.code.RegisterArray registers
         6: .line 272
            aload 2 /* registers */
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            istore 3 /* numRegs */
        start local 3 // int numRegs
         7: .line 273
            aload 1
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.numVariables:()I
            istore 4 /* numVar */
        start local 4 // int numVar
         8: .line 274
            aload 0 /* this */
            iload 3 /* numRegs */
            anewarray jdk.vm.ci.meta.AllocatableValue
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentRegisterMapping:[Ljdk/vm/ci/meta/AllocatableValue;
         9: .line 275
            aload 0 /* this */
            iload 3 /* numRegs */
            newarray 10
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterUsage:[I
        10: .line 276
            aload 0 /* this */
            iload 3 /* numRegs */
            newarray 10
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterKill:[I
        11: .line 277
            aload 0 /* this */
            iload 4 /* numVar */
            anewarray jdk.vm.ci.meta.AllocatableValue
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.locations:[Ljdk/vm/ci/meta/AllocatableValue;
        12: .line 279
            aload 0 /* this */
            iconst_2
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
        13: .line 280
            return
        end local 4 // int numVar
        end local 3 // int numRegs
        end local 2 // jdk.vm.ci.code.RegisterArray registers
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            6   14     2  registers  Ljdk/vm/ci/code/RegisterArray;
            7   14     3    numRegs  I
            8   14     4     numVar  I
    MethodParameters:
        Name  Flags
      this$0  final

  private void setCurrentValue(jdk.vm.ci.code.Register, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
        start local 2 // jdk.vm.ci.meta.AllocatableValue val
         0: .line 283
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentRegisterMapping:[Ljdk/vm/ci/meta/AllocatableValue;
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            aload 2 /* val */
            aastore
         1: .line 284
            return
        end local 2 // jdk.vm.ci.meta.AllocatableValue val
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    2     1   reg  Ljdk/vm/ci/code/Register;
            0    2     2   val  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
      Name  Flags
      reg   
      val   

  private jdk.vm.ci.meta.AllocatableValue getCurrentValue(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 287
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentRegisterMapping:[Ljdk/vm/ci/meta/AllocatableValue;
            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.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    1     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  private int getLastRegisterUsage(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 291
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterUsage:[I
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iaload
            ireturn
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    1     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  private void setLastRegisterUsage(jdk.vm.ci.code.Register, int);
    descriptor: (Ljdk/vm/ci/code/Register;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
        start local 2 // int pos
         0: .line 295
            ldc "Register %s last used %d"
            aload 1 /* reg */
            iload 2 /* pos */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;I)V
         1: .line 296
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterUsage:[I
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iload 2 /* pos */
            iastore
         2: .line 297
            return
        end local 2 // int pos
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    3     1   reg  Ljdk/vm/ci/code/Register;
            0    3     2   pos  I
    MethodParameters:
      Name  Flags
      reg   
      pos   

  private int getLastRegisterKill(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 300
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterKill:[I
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iaload
            ireturn
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    1     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  private void setLastRegisterKill(jdk.vm.ci.code.Register, int);
    descriptor: (Ljdk/vm/ci/code/Register;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
        start local 2 // int pos
         0: .line 304
            ldc "Register %s killed %d"
            aload 1 /* reg */
            iload 2 /* pos */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;I)V
         1: .line 305
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterKill:[I
            aload 1 /* reg */
            getfield jdk.vm.ci.code.Register.number:I
            iload 2 /* pos */
            iastore
         2: .line 306
            return
        end local 2 // int pos
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    3     1   reg  Ljdk/vm/ci/code/Register;
            0    3     2   pos  I
    MethodParameters:
      Name  Flags
      reg   
      pos   

  private void setCurrentLocation(org.graalvm.compiler.lir.Variable, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.Variable var
        start local 2 // jdk.vm.ci.meta.AllocatableValue location
         0: .line 309
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.locations:[Ljdk/vm/ci/meta/AllocatableValue;
            aload 1 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            aload 2 /* location */
            aastore
         1: .line 310
            return
        end local 2 // jdk.vm.ci.meta.AllocatableValue location
        end local 1 // org.graalvm.compiler.lir.Variable var
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    2     1       var  Lorg/graalvm/compiler/lir/Variable;
            0    2     2  location  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
          Name  Flags
      var       
      location  

  private jdk.vm.ci.meta.AllocatableValue getCurrentLocation(org.graalvm.compiler.lir.Variable);
    descriptor: (Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.Variable var
         0: .line 313
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.locations:[Ljdk/vm/ci/meta/AllocatableValue;
            aload 1 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            aaload
            areturn
        end local 1 // org.graalvm.compiler.lir.Variable var
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    1     1   var  Lorg/graalvm/compiler/lir/Variable;
    MethodParameters:
      Name  Flags
      var   

  private void insertSpillMoveBefore(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.AllocatableValue dst
        start local 2 // jdk.vm.ci.meta.Value src
         0: .line 317
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            aload 1 /* dst */
            aload 2 /* src */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/LIRInstruction;
            astore 3 /* move */
        start local 3 // org.graalvm.compiler.lir.LIRInstruction move
         1: .line 318
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
            aload 3 /* move */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 319
            ldc "insert before %s"
            aload 3 /* move */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 320
            return
        end local 3 // org.graalvm.compiler.lir.LIRInstruction move
        end local 2 // jdk.vm.ci.meta.Value src
        end local 1 // jdk.vm.ci.meta.AllocatableValue dst
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    4     1   dst  Ljdk/vm/ci/meta/AllocatableValue;
            0    4     2   src  Ljdk/vm/ci/meta/Value;
            1    4     3  move  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      dst   
      src   

  private void insertSpillMoveAfter(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.AllocatableValue dst
        start local 2 // jdk.vm.ci.meta.Value src
         0: .line 323
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 3 /* inst */
        start local 3 // org.graalvm.compiler.lir.LIRInstruction inst
         1: .line 324
            aload 3 /* inst */
            instanceof org.graalvm.compiler.lir.StandardOp$BlockEndOp
            ifne 6
         2: .line 325
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            aload 1 /* dst */
            aload 2 /* src */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/LIRInstruction;
            astore 4 /* move */
        start local 4 // org.graalvm.compiler.lir.LIRInstruction move
         3: .line 326
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            aload 4 /* move */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 327
            ldc "insert after %s"
            aload 4 /* move */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 4 // org.graalvm.compiler.lir.LIRInstruction move
         5: .line 328
            goto 7
         6: .line 329
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
            ldc "Block end op. No from %s to %s necessary."
            aload 2 /* src */
            aload 1 /* dst */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 331
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 2 // jdk.vm.ci.meta.Value src
        end local 1 // jdk.vm.ci.meta.AllocatableValue dst
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    8     1   dst  Ljdk/vm/ci/meta/AllocatableValue;
            0    8     2   src  Ljdk/vm/ci/meta/Value;
            1    8     3  inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            3    5     4  move  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      dst   
      src   

  private void insertInstructions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
         0: .line 335
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iadd
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iadd
            invokevirtual java.util.ArrayList.ensureCapacity:(I)V
         1: .line 336
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 1 /* inst */
        start local 1 // org.graalvm.compiler.lir.LIRInstruction inst
         2: .line 338
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifeq 7
         3: .line 339
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
         4: .line 340
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 5
            aload 1 /* inst */
            instanceof org.graalvm.compiler.lir.StandardOp$BlockEndOp
            ifeq 5
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot insert instruction after the block end op: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* inst */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 341
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(ILjava/util/Collection;)Z
            pop
         6: .line 342
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         7: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifeq 11
         8: .line 346
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 9
            aload 1 /* inst */
            instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
            ifeq 9
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot insert instruction before the label op: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* inst */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         9: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(ILjava/util/Collection;)Z
            pop
        10: .line 348
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        11: .line 350
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            2   12     1  inst  Lorg/graalvm/compiler/lir/LIRInstruction;

  private void allocateTrace(org.graalvm.compiler.core.common.alloc.Trace);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
         0: .line 354
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: ldc "BottomUpAllocator"
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;[Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 4 /* s */
        start local 4 // org.graalvm.compiler.debug.Debug$Scope s
         2: ldc "%s (Trace%d)"
            aload 1 /* trace */
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;I)Lorg/graalvm/compiler/debug/Indent;
            astore 5 /* indent */
        start local 5 // org.graalvm.compiler.debug.Indent indent
         3: .line 355
            aconst_null
            astore 6 /* successorBlock */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
         4: .line 356
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            arraylength
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         5: goto 12
         6: .line 357
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int
      StackMap stack:
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iload 7 /* i */
            aaload
            astore 8 /* block */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         7: .line 359
            aload 6 /* successorBlock */
            ifnull 9
         8: .line 360
            aload 0 /* this */
            aload 6 /* successorBlock */
            aload 8 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolvePhis:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         9: .line 362
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 0 /* this */
            aload 8 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        10: .line 363
            aload 8 /* block */
            astore 6 /* successorBlock */
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        11: .line 356
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            ifge 6
        end local 7 // int i
        13: .line 365
            aload 0 /* this */
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveLocalDataFlow:(Lorg/graalvm/compiler/core/common/alloc/Trace;)V
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
        14: .line 366
            aload 5 /* indent */
            ifnull 17
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 17
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        15: astore 2
            aload 5 /* indent */
            ifnull 16
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 5 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        17: aload 4 /* s */
            ifnull 27
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 3
            aload 2
            ifnonnull 19
            aload 3
            astore 2
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 2
            aload 3
            if_acmpeq 20
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 4 /* s */
            ifnull 21
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 4 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
        21: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 3
            aload 2
            ifnonnull 23
            aload 3
            astore 2
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 2
            aload 3
            if_acmpeq 24
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 2
            athrow
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace
      StackMap stack: java.lang.Throwable
        25: astore 2 /* e */
        start local 2 // java.lang.Throwable e
        26: .line 367
            aload 2 /* e */
            invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable e
        27: .line 369
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   28     1           trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            2   21     4               s  Lorg/graalvm/compiler/debug/Debug$Scope;
            3   16     5          indent  Lorg/graalvm/compiler/debug/Indent;
            4   14     6  successorBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            5   13     7               i  I
            7   11     8           block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           26   27     2               e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    14      15  any
           2    17      18  any
           1    22      22  any
           0    25      25  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      trace  

  private void resolvePhis(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 378
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiVisitor:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor.loads:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         1: .line 379
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* successorBlock */
            aload 2 /* block */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiVisitor:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.forEachPhiValuePair:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;)V
         2: .line 380
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiVisitor:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor.loads:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifle 5
         3: .line 381
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 3 /* instructions */
        start local 3 // java.util.ArrayList instructions
         4: .line 382
            aload 3 /* instructions */
            aload 3 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiVisitor:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator$PhiVisitor;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor.loads:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(ILjava/util/Collection;)Z
            pop
        end local 3 // java.util.ArrayList instructions
         5: .line 384
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    6     1  successorBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    6     2           block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            4    5     3    instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
                Name  Flags
      successorBlock  
      block           

  private void resolveLocalDataFlow(org.graalvm.compiler.core.common.alloc.Trace);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
         0: .line 414
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* block */
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         2: .line 415
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         3: aload 9
            iload 7
            aaload
            astore 6 /* pred */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase pred
         4: .line 416
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resultTraces:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
            aload 6 /* pred */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            aload 1 /* trace */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         5: .line 417
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 6 /* pred */
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resolveFindInsertPos:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         6: .line 418
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 2 /* block */
            aload 6 /* pred */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resolveLoopBackEdgeVisitor:Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;
            invokestatic org.graalvm.compiler.lir.ssi.SSIUtil.forEachValuePair:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;)V
         7: .line 419
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.resolveAndAppendMoves:()V
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase pred
         8: .line 415
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 3
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        10: .line 414
            iinc 3 1
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 1
        12: .line 423
            return
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   13     1  trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            2   10     2  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            4    8     6   pred  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
       Name  Flags
      trace  

  private void allocateBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 427
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: ldc "handle block %s"
            aload 1 /* block */
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         2: .line 428
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.getLIR:()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;
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
         3: .line 429
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            goto 9
         4: .line 430
      StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 5 /* inst */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction inst
         5: .line 431
            aload 5 /* inst */
            ifnull 8
         6: .line 432
            aload 5 /* inst */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setId:(I)V
         7: .line 433
            aload 0 /* this */
            aload 5 /* inst */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateInstruction:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
        end local 5 // org.graalvm.compiler.lir.LIRInstruction inst
         8: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            iconst_1
            isub
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            ifge 4
        10: .line 436
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocatedBlocks:Ljava/util/BitSet;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual java.util.BitSet.set:(I)V
        11: .line 437
            aload 4 /* indent */
            ifnull 17
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 2
            aload 4 /* indent */
            ifnull 13
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 3
            aload 2
            ifnonnull 15
            aload 3
            astore 2
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2
            aload 3
            if_acmpeq 16
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
        17: .line 438
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   18     1   block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2   13     4  indent  Lorg/graalvm/compiler/debug/Indent;
            5    8     5    inst  Lorg/graalvm/compiler/lir/LIRInstruction;
      Exception table:
        from    to  target  type
           2    11      12  any
           1    14      14  any
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  private void allocateInstruction(org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
         0: .line 442
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 2
            aload 1 /* op */
            ifnull 1
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            if_icmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 443
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: ldc "handle inst: %d: %s"
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            aload 1 /* op */
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;ILjava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         4: .line 444
            aconst_null
            astore 5
            aconst_null
            astore 6
         5: ldc "output pos"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* indent1 */
        start local 7 // org.graalvm.compiler.debug.Indent indent1
         6: .line 446
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.destroysCallerSavedRegisters:()Z
            ifeq 8
         7: .line 447
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.spillCallerSavedRegisters:()V
         8: .line 451
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.lir.LIRInstruction java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack:
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocFixedRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         9: .line 452
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocFixedRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        10: .line 453
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocFixedRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        11: .line 455
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        12: .line 456
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        13: .line 457
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        14: .line 462
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        15: .line 463
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        16: .line 464
            aload 7 /* indent1 */
            ifnull 22
            aload 7 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 5
            aload 7 /* indent1 */
            ifnull 18
            aload 7 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent indent1
      StackMap locals:
      StackMap stack:
        18: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 6
            aload 5
            ifnonnull 20
            aload 6
            astore 5
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 5
            aload 6
            if_acmpeq 21
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 5
            athrow
        22: .line 465
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
        23: ldc "input pos"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* indent1 */
        start local 7 // org.graalvm.compiler.debug.Indent indent1
        24: .line 467
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            iconst_1
            iadd
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
        25: .line 470
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocFixedRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachInput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        26: .line 472
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachInput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        27: .line 474
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        28: .line 475
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachState:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        29: .line 476
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachInput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        30: .line 477
            aload 7 /* indent1 */
            ifnull 36
            aload 7 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 36
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.lir.LIRInstruction 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
        31: astore 5
            aload 7 /* indent1 */
            ifnull 32
            aload 7 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent indent1
      StackMap locals:
      StackMap stack:
        32: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 6
            aload 5
            ifnonnull 34
            aload 6
            astore 5
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 5
            aload 6
            if_acmpeq 35
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 5
            athrow
        36: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertInstructions:()V
        37: .line 481
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            iconst_1
            iadd
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
        38: .line 482
            aload 4 /* indent */
            ifnull 44
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 44
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 2
            aload 4 /* indent */
            ifnull 40
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        40: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: astore 3
            aload 2
            ifnonnull 42
            aload 3
            astore 2
            goto 43
      StackMap locals:
      StackMap stack:
        42: aload 2
            aload 3
            if_acmpeq 43
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        43: aload 2
            athrow
        44: .line 483
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.lir.LIRInstruction op
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   45     0     this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   45     1       op  Lorg/graalvm/compiler/lir/LIRInstruction;
            4   40     4   indent  Lorg/graalvm/compiler/debug/Indent;
            6   18     7  indent1  Lorg/graalvm/compiler/debug/Indent;
           24   32     7  indent1  Lorg/graalvm/compiler/debug/Indent;
      Exception table:
        from    to  target  type
           6    16      17  any
           5    19      19  any
          24    30      31  any
          23    33      33  any
           4    38      39  any
           3    41      41  any
    MethodParameters:
      Name  Flags
      op    

  private void spillCallerSavedRegisters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
         0: .line 486
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.callerSaveRegs:Ljdk/vm/ci/code/RegisterArray;
            invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.Register
            astore 1 /* reg */
        start local 1 // jdk.vm.ci.code.Register reg
         2: .line 487
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.attributes:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
            invokevirtual jdk.vm.ci.code.RegisterAttributes.isAllocatable:()Z
            ifeq 7
         3: .line 488
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.evacuateRegisterAndSpill:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            pop
         4: .line 489
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.checkRegisterUsage:(Ljdk/vm/ci/code/Register;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 490
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.code.Register java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.evacuateRegisterAndSpill:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            pop
         6: .line 492
            aload 0 /* this */
            aload 1 /* reg */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setLastRegisterUsage:(Ljdk/vm/ci/code/Register;I)V
        end local 1 // jdk.vm.ci.code.Register reg
         7: .line 486
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 495
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 10
         9: .line 496
            ldc "operation destroys all caller-save registers"
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
        10: .line 498
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            2    7     1   reg  Ljdk/vm/ci/code/Register;

  private jdk.vm.ci.meta.Value allocFixedRegister(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.Value value
         0: .line 520
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         1: .line 521
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            astore 2 /* reg */
        start local 2 // jdk.vm.ci.code.Register reg
         2: .line 522
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            aload 2 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.checkRegisterUsage:(Ljdk/vm/ci/code/Register;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 523
      StackMap locals: jdk.vm.ci.code.Register
      StackMap stack:
            aload 0 /* this */
            aload 2 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.evacuateRegisterAndSpill:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            pop
         4: .line 524
            aload 0 /* this */
            aload 2 /* reg */
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.asAllocatableValue:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setRegisterUsage:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
        end local 2 // jdk.vm.ci.code.Register reg
         5: .line 526
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // jdk.vm.ci.meta.Value value
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    6     1  value  Ljdk/vm/ci/meta/Value;
            2    5     2    reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
       Name  Flags
      value  

  private jdk.vm.ci.meta.Value allocRegister(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet<org.graalvm.compiler.lir.LIRInstruction$OperandFlag>);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction instruction
        start local 2 // jdk.vm.ci.meta.Value value
        start local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        start local 4 // java.util.EnumSet flags
         0: .line 530
            aload 2 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 15
            aload 1 /* instruction */
            aload 2 /* value */
            aload 3 /* mode */
            aload 4 /* flags */
            invokestatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.requiresRegisters:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Z
            ifeq 15
         1: .line 531
            aload 2 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            astore 5 /* var */
        start local 5 // org.graalvm.compiler.lir.Variable var
         2: .line 533
            aload 0 /* this */
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 6 /* currentLocation */
        start local 6 // jdk.vm.ci.meta.AllocatableValue currentLocation
         3: .line 534
            aload 6 /* currentLocation */
            ifnonnull 5
         4: .line 536
            aload 0 /* this */
            aload 5 /* var */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegister:(Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
            areturn
         5: .line 539
      StackMap locals: org.graalvm.compiler.lir.Variable jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            aload 6 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 8
         6: .line 541
            aload 0 /* this */
            aload 6 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setLastRegisterUsage:(Ljdk/vm/ci/code/Register;I)V
         7: .line 542
            aload 6 /* currentLocation */
            areturn
         8: .line 544
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 9
            aload 6 /* currentLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* var */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocRegister:(Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
            astore 7 /* allocatedRegister */
        start local 7 // jdk.vm.ci.meta.Value allocatedRegister
        10: .line 547
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.USE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 13
        11: .line 550
            aload 0 /* this */
            aload 6 /* currentLocation */
            aload 7 /* allocatedRegister */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertSpillMoveBefore:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
        12: .line 551
            goto 14
        13: .line 552
      StackMap locals: jdk.vm.ci.meta.Value
      StackMap stack:
            aload 0 /* this */
            aload 6 /* currentLocation */
            aload 7 /* allocatedRegister */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertSpillMoveAfter:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
        14: .line 554
      StackMap locals:
      StackMap stack:
            aload 7 /* allocatedRegister */
            areturn
        end local 7 // jdk.vm.ci.meta.Value allocatedRegister
        end local 6 // jdk.vm.ci.meta.AllocatableValue currentLocation
        end local 5 // org.graalvm.compiler.lir.Variable var
        15: .line 556
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 4 // java.util.EnumSet flags
        end local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 2 // jdk.vm.ci.meta.Value value
        end local 1 // org.graalvm.compiler.lir.LIRInstruction instruction
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   16     1        instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   16     2              value  Ljdk/vm/ci/meta/Value;
            0   16     3               mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            0   16     4              flags  Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
            2   15     5                var  Lorg/graalvm/compiler/lir/Variable;
            3   15     6    currentLocation  Ljdk/vm/ci/meta/AllocatableValue;
           10   15     7  allocatedRegister  Ljdk/vm/ci/meta/Value;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;)Ljdk/vm/ci/meta/Value;
    MethodParameters:
             Name  Flags
      instruction  
      value        
      mode         
      flags        

  private jdk.vm.ci.meta.Value allocRegister(org.graalvm.compiler.lir.Variable, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.Variable var
        start local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 560
            aload 1 /* var */
            invokevirtual org.graalvm.compiler.lir.Variable.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            astore 3 /* platformKind */
        start local 3 // jdk.vm.ci.meta.PlatformKind platformKind
         1: .line 561
            aload 0 /* this */
            aload 3 /* platformKind */
            aload 2 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.findFreeRegister:(Ljdk/vm/ci/meta/PlatformKind;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/code/Register;
            astore 4 /* freeRegister */
        start local 4 // jdk.vm.ci.code.Register freeRegister
         2: .line 562
            aload 4 /* freeRegister */
            ifnonnull 6
         3: .line 564
            aload 0 /* this */
            aload 3 /* platformKind */
            aload 2 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.findLockedRegister:(Ljdk/vm/ci/meta/PlatformKind;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/code/Register;
            astore 4 /* freeRegister */
         4: .line 565
            aload 4 /* freeRegister */
            ifnonnull 6
         5: .line 566
            new org.graalvm.compiler.lir.alloc.OutOfRegistersException
            dup
            ldc "TraceRA[BottomUp]: no register found"
            invokespecial org.graalvm.compiler.lir.alloc.OutOfRegistersException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 570
      StackMap locals: jdk.vm.ci.meta.PlatformKind jdk.vm.ci.code.Register
      StackMap stack:
            aload 0 /* this */
            aload 4 /* freeRegister */
            aload 1 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setRegisterUsage:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
         7: .line 571
            aload 4 /* freeRegister */
            aload 1 /* var */
            invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 5 /* registerValue */
        start local 5 // jdk.vm.ci.code.RegisterValue registerValue
         8: .line 572
            aload 0 /* this */
            aload 1 /* var */
            aload 5 /* registerValue */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
         9: .line 573
            ldc "AllocateRegister[%5s] %s for %s"
            aload 2 /* mode */
            aload 4 /* freeRegister */
            aload 1 /* var */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 574
            aload 5 /* registerValue */
            areturn
        end local 5 // jdk.vm.ci.code.RegisterValue registerValue
        end local 4 // jdk.vm.ci.code.Register freeRegister
        end local 3 // jdk.vm.ci.meta.PlatformKind platformKind
        end local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 1 // org.graalvm.compiler.lir.Variable var
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   11     1            var  Lorg/graalvm/compiler/lir/Variable;
            0   11     2           mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1   11     3   platformKind  Ljdk/vm/ci/meta/PlatformKind;
            2   11     4   freeRegister  Ljdk/vm/ci/code/Register;
            8   11     5  registerValue  Ljdk/vm/ci/code/RegisterValue;
    MethodParameters:
      Name  Flags
      var   
      mode  

  private jdk.vm.ci.meta.Value allocStackOrRegister(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet<org.graalvm.compiler.lir.LIRInstruction$OperandFlag>);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction instruction
        start local 2 // jdk.vm.ci.meta.Value value
        start local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        start local 4 // java.util.EnumSet flags
         0: .line 578
            aload 2 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         1: .line 579
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpeq 2
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.TEMP:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 4
      StackMap locals:
      StackMap stack:
         2: aload 1 /* instruction */
            instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
            ifne 4
         3: .line 580
            aload 0 /* this */
            aload 2 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.freeRegister:(Ljdk/vm/ci/code/Register;)V
         4: .line 582
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
         5: .line 584
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 32
         6: .line 585
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 7
            aload 1 /* instruction */
            aload 2 /* value */
            aload 3 /* mode */
            aload 4 /* flags */
            invokestatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.requiresRegisters:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Z
            ifeq 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Should have a register already: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 586
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            astore 5 /* var */
        start local 5 // org.graalvm.compiler.lir.Variable var
         8: .line 588
            aload 0 /* this */
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 6 /* currentLocation */
        start local 6 // jdk.vm.ci.meta.AllocatableValue currentLocation
         9: .line 589
            aload 6 /* currentLocation */
            ifnull 20
        10: .line 591
            aload 6 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 18
        11: .line 592
            aload 6 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            astore 7 /* reg */
        start local 7 // jdk.vm.ci.code.Register reg
        12: .line 593
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 17
            aload 0 /* this */
            aload 7 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.killedAtDef:(Ljdk/vm/ci/code/Register;)Z
            ifeq 17
        13: .line 594
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocateSpillSlot:(Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 8 /* spillSlot */
        start local 8 // jdk.vm.ci.meta.AllocatableValue spillSlot
        14: .line 595
            aload 0 /* this */
            aload 8 /* spillSlot */
            aload 6 /* currentLocation */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertSpillMoveBefore:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
        15: .line 596
            ldc "AllocateStackOrReg[%5s] temporary use %s for %s since current location %s is destroyed at def"
            aload 3 /* mode */
            aload 8 /* spillSlot */
            aload 5 /* var */
            aload 6 /* currentLocation */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 597
            aload 8 /* spillSlot */
            areturn
        end local 8 // jdk.vm.ci.meta.AllocatableValue spillSlot
        17: .line 600
      StackMap locals: org.graalvm.compiler.lir.Variable jdk.vm.ci.meta.AllocatableValue jdk.vm.ci.code.Register
      StackMap stack:
            aload 0 /* this */
            aload 7 /* reg */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setLastRegisterUsage:(Ljdk/vm/ci/code/Register;I)V
        end local 7 // jdk.vm.ci.code.Register reg
        18: .line 602
      StackMap locals:
      StackMap stack:
            iconst_3
            ldc "AllocateStackOrReg[%5s] %s already in %s"
            aload 3 /* mode */
            aload 5 /* var */
            aload 6 /* currentLocation */
            invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 603
            aload 6 /* currentLocation */
            areturn
        20: .line 606
      StackMap locals:
      StackMap stack:
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.Variable.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            astore 7 /* platformKind */
        start local 7 // jdk.vm.ci.meta.PlatformKind platformKind
        21: .line 607
            aload 0 /* this */
            aload 7 /* platformKind */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.findFreeRegister:(Ljdk/vm/ci/meta/PlatformKind;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/code/Register;
            astore 8 /* freeRegister */
        start local 8 // jdk.vm.ci.code.Register freeRegister
        22: .line 608
            aload 8 /* freeRegister */
            ifnonnull 26
        23: .line 610
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocateSpillSlot:(Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 9 /* spillSlot */
        start local 9 // jdk.vm.ci.meta.AllocatableValue spillSlot
        24: .line 611
            aload 0 /* this */
            aload 5 /* var */
            aload 9 /* spillSlot */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
        25: .line 612
            aload 9 /* spillSlot */
            areturn
        end local 9 // jdk.vm.ci.meta.AllocatableValue spillSlot
        26: .line 614
      StackMap locals: jdk.vm.ci.meta.PlatformKind jdk.vm.ci.code.Register
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 27
            aload 8 /* freeRegister */
            ifnonnull 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* freeRegister */
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setRegisterUsage:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
        28: .line 617
            aload 8 /* freeRegister */
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 9 /* registerValue */
        start local 9 // jdk.vm.ci.code.RegisterValue registerValue
        29: .line 618
            aload 0 /* this */
            aload 5 /* var */
            aload 9 /* registerValue */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
        30: .line 619
            ldc "AllocateStackOrReg[%5s] %s for %s"
            aload 3 /* mode */
            aload 8 /* freeRegister */
            aload 5 /* var */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 620
            aload 9 /* registerValue */
            areturn
        end local 9 // jdk.vm.ci.code.RegisterValue registerValue
        end local 8 // jdk.vm.ci.code.Register freeRegister
        end local 7 // jdk.vm.ci.meta.PlatformKind platformKind
        end local 6 // jdk.vm.ci.meta.AllocatableValue currentLocation
        end local 5 // org.graalvm.compiler.lir.Variable var
        32: .line 622
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.lir.LIRInstruction jdk.vm.ci.meta.Value org.graalvm.compiler.lir.LIRInstruction$OperandMode java.util.EnumSet
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 4 // java.util.EnumSet flags
        end local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 2 // jdk.vm.ci.meta.Value value
        end local 1 // org.graalvm.compiler.lir.LIRInstruction instruction
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   33     1      instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   33     2            value  Ljdk/vm/ci/meta/Value;
            0   33     3             mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            0   33     4            flags  Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
            8   32     5              var  Lorg/graalvm/compiler/lir/Variable;
            9   32     6  currentLocation  Ljdk/vm/ci/meta/AllocatableValue;
           12   18     7              reg  Ljdk/vm/ci/code/Register;
           14   17     8        spillSlot  Ljdk/vm/ci/meta/AllocatableValue;
           21   32     7     platformKind  Ljdk/vm/ci/meta/PlatformKind;
           22   32     8     freeRegister  Ljdk/vm/ci/code/Register;
           24   26     9        spillSlot  Ljdk/vm/ci/meta/AllocatableValue;
           29   32     9    registerValue  Ljdk/vm/ci/code/RegisterValue;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;)Ljdk/vm/ci/meta/Value;
    MethodParameters:
             Name  Flags
      instruction  
      value        
      mode         
      flags        

  private boolean killedAtDef(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 626
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getLastRegisterKill:(Ljdk/vm/ci/code/Register;)I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            iconst_1
            isub
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    2     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  private jdk.vm.ci.code.Register findFreeRegister(jdk.vm.ci.meta.PlatformKind, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Ljdk/vm/ci/meta/PlatformKind;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/code/Register;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.PlatformKind kind
        start local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 634
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.registerAllocationConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            aload 1 /* kind */
            invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getAllocatableRegisters:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig$AllocatableRegisters;
            astore 3 /* allocatableRegisters */
        start local 3 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters allocatableRegisters
         1: .line 635
            aload 3 /* allocatableRegisters */
            getfield org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters.allocatableRegisters:[Ljdk/vm/ci/code/Register;
            astore 4 /* availableRegs */
        start local 4 // jdk.vm.ci.code.Register[] availableRegs
         2: .line 636
            aload 4 /* availableRegs */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.meta.PlatformKind org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters jdk.vm.ci.code.Register[] top int int jdk.vm.ci.code.Register[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* reg */
        start local 5 // jdk.vm.ci.code.Register reg
         4: .line 637
            aload 0 /* this */
            aload 5 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 9 /* currentVal */
        start local 9 // jdk.vm.ci.meta.AllocatableValue currentVal
         5: .line 638
            aload 9 /* currentVal */
            ifnonnull 7
            aload 0 /* this */
            aload 5 /* reg */
            aload 2 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.isCurrentlyUsed:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
            ifne 7
         6: .line 639
            aload 5 /* reg */
            areturn
        end local 9 // jdk.vm.ci.meta.AllocatableValue currentVal
        end local 5 // jdk.vm.ci.code.Register reg
         7: .line 636
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 3
         9: .line 642
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 23
        10: .line 643
            aconst_null
            astore 5
            aconst_null
            astore 6
        11: ldc "All Registers occupied:"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* i */
        start local 7 // org.graalvm.compiler.debug.Indent i
        12: .line 644
            aload 4 /* availableRegs */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 16
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.meta.PlatformKind org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters jdk.vm.ci.code.Register[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int jdk.vm.ci.code.Register[]
      StackMap stack:
        13: aload 11
            iload 9
            aaload
            astore 8 /* reg */
        start local 8 // jdk.vm.ci.code.Register reg
        14: .line 645
            ldc "%6s: last used %4d %s"
            aload 8 /* reg */
            aload 0 /* this */
            aload 8 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getLastRegisterUsage:(Ljdk/vm/ci/code/Register;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            aload 8 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 8 // jdk.vm.ci.code.Register reg
        15: .line 644
            iinc 9 1
      StackMap locals:
      StackMap stack:
        16: iload 9
            iload 10
            if_icmplt 13
        17: .line 647
            aload 7 /* i */
            ifnull 23
            aload 7 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 23
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.meta.PlatformKind org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters jdk.vm.ci.code.Register[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        18: astore 5
            aload 7 /* i */
            ifnull 19
            aload 7 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent i
      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 649
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // jdk.vm.ci.code.Register[] availableRegs
        end local 3 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters allocatableRegisters
        end local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 1 // jdk.vm.ci.meta.PlatformKind kind
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   24     0                  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   24     1                  kind  Ljdk/vm/ci/meta/PlatformKind;
            0   24     2                  mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1   24     3  allocatableRegisters  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig$AllocatableRegisters;
            2   24     4         availableRegs  [Ljdk/vm/ci/code/Register;
            4    7     5                   reg  Ljdk/vm/ci/code/Register;
            5    7     9            currentVal  Ljdk/vm/ci/meta/AllocatableValue;
           12   19     7                     i  Lorg/graalvm/compiler/debug/Indent;
           14   15     8                   reg  Ljdk/vm/ci/code/Register;
      Exception table:
        from    to  target  type
          12    17      18  any
          11    20      20  any
    MethodParameters:
      Name  Flags
      kind  
      mode  

  private jdk.vm.ci.code.Register findLockedRegister(jdk.vm.ci.meta.PlatformKind, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Ljdk/vm/ci/meta/PlatformKind;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/code/Register;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.PlatformKind kind
        start local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 657
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.registerAllocationConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            aload 1 /* kind */
            invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getAllocatableRegisters:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig$AllocatableRegisters;
            astore 3 /* allocatableRegisters */
        start local 3 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters allocatableRegisters
         1: .line 658
            aload 3 /* allocatableRegisters */
            getfield org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters.allocatableRegisters:[Ljdk/vm/ci/code/Register;
            astore 4 /* availableRegs */
        start local 4 // jdk.vm.ci.code.Register[] availableRegs
         2: .line 662
            aconst_null
            astore 5 /* lockedReg */
        start local 5 // jdk.vm.ci.code.Register lockedReg
         3: .line 663
            aload 4 /* availableRegs */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.meta.PlatformKind org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters jdk.vm.ci.code.Register[] jdk.vm.ci.code.Register top int int jdk.vm.ci.code.Register[]
      StackMap stack:
         4: aload 9
            iload 7
            aaload
            astore 6 /* reg */
        start local 6 // jdk.vm.ci.code.Register reg
         5: .line 664
            aload 0 /* this */
            aload 6 /* reg */
            aload 2 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.isCurrentlyUsed:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
            ifne 8
            aload 0 /* this */
            aload 6 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.isActiveFixedRegister:(Ljdk/vm/ci/code/Register;)Z
            ifne 8
         6: .line 665
            aload 6 /* reg */
            astore 5 /* lockedReg */
         7: .line 666
            goto 10
        end local 6 // jdk.vm.ci.code.Register reg
         8: .line 663
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 4
        10: .line 669
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator jdk.vm.ci.meta.PlatformKind org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters jdk.vm.ci.code.Register[] jdk.vm.ci.code.Register
      StackMap stack:
            aload 5 /* lockedReg */
            ifnonnull 12
        11: .line 670
            aconst_null
            areturn
        12: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* lockedReg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.evacuateRegisterAndSpill:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            pop
        13: .line 673
            aload 5 /* lockedReg */
            areturn
        end local 5 // jdk.vm.ci.code.Register lockedReg
        end local 4 // jdk.vm.ci.code.Register[] availableRegs
        end local 3 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters allocatableRegisters
        end local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 1 // jdk.vm.ci.meta.PlatformKind kind
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   14     1                  kind  Ljdk/vm/ci/meta/PlatformKind;
            0   14     2                  mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1   14     3  allocatableRegisters  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig$AllocatableRegisters;
            2   14     4         availableRegs  [Ljdk/vm/ci/code/Register;
            3   14     5             lockedReg  Ljdk/vm/ci/code/Register;
            5    8     6                   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      kind  
      mode  

  private boolean isActiveFixedRegister(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 677
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ireturn
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    1     1   reg  Ljdk/vm/ci/code/Register;
    MethodParameters:
      Name  Flags
      reg   

  private boolean isCurrentlyUsed(jdk.vm.ci.code.Register, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
        start local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 681
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getLastRegisterUsage:(Ljdk/vm/ci/code/Register;)I
            istore 3 /* lastRegUsage */
        start local 3 // int lastRegUsage
         1: .line 682
            iload 3 /* lastRegUsage */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            if_icmpne 3
         2: .line 683
            iconst_1
            ireturn
         3: .line 685
      StackMap locals: int
      StackMap stack:
            aload 2 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 4
            iload 3 /* lastRegUsage */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            bipush -2
            iand
            if_icmpne 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // int lastRegUsage
        end local 2 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    5     1           reg  Ljdk/vm/ci/code/Register;
            0    5     2          mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1    5     3  lastRegUsage  I
    MethodParameters:
      Name  Flags
      reg   
      mode  

  private void freeRegister(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 689
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 2 /* val */
        start local 2 // jdk.vm.ci.meta.AllocatableValue val
         1: .line 690
            aload 0 /* this */
            aload 1 /* reg */
            aconst_null
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentValue:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
         2: .line 691
            aload 0 /* this */
            aload 1 /* reg */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setLastRegisterKill:(Ljdk/vm/ci/code/Register;I)V
         3: .line 692
            aload 2 /* val */
            ifnull 8
            aload 2 /* val */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 8
         4: .line 693
            aload 2 /* val */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            astore 3 /* var */
        start local 3 // org.graalvm.compiler.lir.Variable var
         5: .line 694
            aload 0 /* this */
            aload 3 /* var */
            aconst_null
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
         6: .line 695
            ldc "Free Registers %s (was %s)"
            aload 1 /* reg */
            aload 3 /* var */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // org.graalvm.compiler.lir.Variable var
         7: .line 696
            goto 9
         8: .line 697
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            ldc "Free Registers %s"
            aload 1 /* reg */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 699
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.meta.AllocatableValue val
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   10     1   reg  Ljdk/vm/ci/code/Register;
            1   10     2   val  Ljdk/vm/ci/meta/AllocatableValue;
            5    7     3   var  Lorg/graalvm/compiler/lir/Variable;
    MethodParameters:
      Name  Flags
      reg   

  private void setRegisterUsage(jdk.vm.ci.code.Register, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
        start local 2 // jdk.vm.ci.meta.AllocatableValue currentValue
         0: .line 702
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.checkRegisterUsage:(Ljdk/vm/ci/code/Register;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reg */
            aload 2 /* currentValue */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentValue:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
         2: .line 704
            aload 0 /* this */
            aload 1 /* reg */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setLastRegisterUsage:(Ljdk/vm/ci/code/Register;I)V
         3: .line 705
            return
        end local 2 // jdk.vm.ci.meta.AllocatableValue currentValue
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    4     1           reg  Ljdk/vm/ci/code/Register;
            0    4     2  currentValue  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
              Name  Flags
      reg           
      currentValue  

  private boolean checkRegisterUsage(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 708
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 2 /* currentValue */
        start local 2 // jdk.vm.ci.meta.AllocatableValue currentValue
         1: .line 709
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getLastRegisterUsage:(Ljdk/vm/ci/code/Register;)I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            if_icmplt 3
            aload 2 /* currentValue */
            ifnull 3
            aload 2 /* currentValue */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
            aload 2 /* currentValue */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            aload 1 /* reg */
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifne 3
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            ldc "Register %s is occupied"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* reg */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 710
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // jdk.vm.ci.meta.AllocatableValue currentValue
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    4     1           reg  Ljdk/vm/ci/code/Register;
            1    4     2  currentValue  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
      Name  Flags
      reg   

  private jdk.vm.ci.meta.AllocatableValue evacuateRegisterAndSpill(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 719
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.evacuateRegister:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 2 /* val */
        start local 2 // jdk.vm.ci.meta.AllocatableValue val
         1: .line 720
            aload 0 /* this */
            aload 2 /* val */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.spillVariable:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/code/Register;)V
         2: .line 721
            aload 2 /* val */
            areturn
        end local 2 // jdk.vm.ci.meta.AllocatableValue val
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    3     1   reg  Ljdk/vm/ci/code/Register;
            1    3     2   val  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
      Name  Flags
      reg   

  private jdk.vm.ci.meta.AllocatableValue evacuateRegister(jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.code.Register reg
         0: .line 730
            aload 0 /* this */
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 2 /* val */
        start local 2 // jdk.vm.ci.meta.AllocatableValue val
         1: .line 731
            aload 2 /* val */
            ifnonnull 3
         2: .line 732
            aconst_null
            areturn
         3: .line 734
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reg */
            aconst_null
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentValue:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/AllocatableValue;)V
         4: .line 735
            aload 2 /* val */
            areturn
        end local 2 // jdk.vm.ci.meta.AllocatableValue val
        end local 1 // jdk.vm.ci.code.Register reg
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    5     1   reg  Ljdk/vm/ci/code/Register;
            1    5     2   val  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
      Name  Flags
      reg   

  private void spillVariable(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.code.Register);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/code/Register;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.AllocatableValue val
        start local 2 // jdk.vm.ci.code.Register reg
         0: .line 739
            aload 1 /* val */
            ifnull 6
            aload 1 /* val */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 6
         1: .line 740
            aload 1 /* val */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            astore 3 /* var */
        start local 3 // org.graalvm.compiler.lir.Variable var
         2: .line 741
            ldc "Spill Variable %s from %s"
            aload 3 /* var */
            aload 2 /* reg */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 743
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            aload 3 /* var */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocateSpillSlot:(Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 4 /* spillSlot */
        start local 4 // jdk.vm.ci.meta.AllocatableValue spillSlot
         4: .line 744
            aload 0 /* this */
            aload 3 /* var */
            aload 4 /* spillSlot */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.setCurrentLocation:(Lorg/graalvm/compiler/lir/Variable;Ljdk/vm/ci/meta/AllocatableValue;)V
         5: .line 745
            aload 0 /* this */
            aload 2 /* reg */
            aload 3 /* var */
            invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            aload 4 /* spillSlot */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertSpillMoveAfter:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
        end local 4 // jdk.vm.ci.meta.AllocatableValue spillSlot
        end local 3 // org.graalvm.compiler.lir.Variable var
         6: .line 747
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.code.Register reg
        end local 1 // jdk.vm.ci.meta.AllocatableValue val
        end local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    7     1        val  Ljdk/vm/ci/meta/AllocatableValue;
            0    7     2        reg  Ljdk/vm/ci/code/Register;
            2    6     3        var  Lorg/graalvm/compiler/lir/Variable;
            4    6     4  spillSlot  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
      Name  Flags
      val   
      reg   

  static org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator access$0(org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;)Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 251
            aload 0
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.this$0:Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "BottomUpAllocator.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator
InnerClasses:
  public final AllocatableRegisters = org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig$AllocatableRegisters of org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig
  public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
  public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  public abstract BlockEndOp = org.graalvm.compiler.lir.StandardOp$BlockEndOp of org.graalvm.compiler.lir.StandardOp
  public final LabelOp = org.graalvm.compiler.lir.StandardOp$LabelOp of org.graalvm.compiler.lir.StandardOp
  private final Allocator = org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator of org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator
  org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$1
  org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$2
  org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$3
  private final PhiVisitor = org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor of org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool
  public abstract PhiValueVisitor = org.graalvm.compiler.lir.ssa.SSAUtil$PhiValueVisitor of org.graalvm.compiler.lir.ssa.SSAUtil