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 java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction> phiResolutionMoves;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;

  private boolean requireResolution;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  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 244
            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 263
            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 375
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
         2: .line 601
            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 607
            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 613
            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 264
            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 265
            aload 2 /* registers */
            invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
            istore 3 /* numRegs */
        start local 3 // int numRegs
         7: .line 266
            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 267
            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 268
            aload 0 /* this */
            iload 3 /* numRegs */
            newarray 10
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterUsage:[I
        10: .line 269
            aload 0 /* this */
            iload 3 /* numRegs */
            newarray 10
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.lastRegisterKill:[I
        11: .line 270
            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 272
            aload 0 /* this */
            iconst_2
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
        13: .line 273
            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 276
            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 277
            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 280
            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 284
            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=4, 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 288
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Register %s last used %d"
            aload 1 /* reg */
            iload 2 /* pos */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;I)V
         1: .line 289
            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 290
            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 293
            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=4, 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 297
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Register %s killed %d"
            aload 1 /* reg */
            iload 2 /* pos */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;I)V
         1: .line 298
            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 299
            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 302
            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 303
            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 306
            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 310
            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 311
            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 312
            aload 3 /* move */
            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.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            ldc "BottomUp: spill move before"
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setComment:(Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/String;)V
         3: .line 313
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "insert before %s"
            aload 3 /* move */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 314
            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    5     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    5     1   dst  Ljdk/vm/ci/meta/AllocatableValue;
            0    5     2   src  Ljdk/vm/ci/meta/Value;
            1    5     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=4, 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 317
            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 318
            aload 3 /* inst */
            instanceof org.graalvm.compiler.lir.StandardOp$BlockEndOp
            ifne 7
         2: .line 319
            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 320
            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 321
            aload 4 /* move */
            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.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            ldc "BottomUp: spill move after"
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setComment:(Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/String;)V
         5: .line 322
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "insert after %s"
            aload 4 /* move */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 4 // org.graalvm.compiler.lir.LIRInstruction move
         6: .line 323
            goto 9
         7: .line 324
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Block end op. No from %s to %s necessary."
            aload 2 /* src */
            aload 1 /* dst */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 325
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.requireResolution:Z
         9: .line 327
      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   10     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   10     1   dst  Ljdk/vm/ci/meta/AllocatableValue;
            0   10     2   src  Ljdk/vm/ci/meta/Value;
            1   10     3  inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            3    6     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 331
            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 332
            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 334
            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 335
            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 336
            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 337
      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 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.clear:()V
         7: .line 341
      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 342
            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 343
      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 344
            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 346
      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=4, locals=12, 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 350
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "BottomUpAllocator"
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;[Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 4 /* s */
        start local 4 // org.graalvm.compiler.debug.DebugContext$Scope s
         2: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "%s (Trace%d)"
            aload 1 /* trace */
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.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 351
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 6 /* blocks */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
         4: .line 352
            aload 6 /* blocks */
            arraylength
            iconst_1
            isub
            istore 7 /* lastBlockIdx */
        start local 7 // int lastBlockIdx
         5: .line 353
            aload 6 /* blocks */
            iload 7 /* lastBlockIdx */
            aaload
            astore 8 /* successorBlock */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
         6: .line 355
            aload 0 /* this */
            aload 8 /* successorBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            pop
         7: .line 357
            iload 7 /* lastBlockIdx */
            iconst_1
            isub
            istore 9 /* i */
        start local 9 // int i
         8: goto 16
         9: .line 358
      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.DebugContext$Scope org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase int
      StackMap stack:
            aload 6 /* blocks */
            iload 9 /* i */
            aaload
            astore 10 /* block */
        start local 10 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        10: .line 360
            aload 0 /* this */
            aload 10 /* block */
            aload 8 /* successorBlock */
            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
        11: .line 361
            aload 0 /* this */
            aload 10 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            istore 11 /* needResolution */
        start local 11 // boolean needResolution
        12: .line 363
            iload 11 /* needResolution */
            ifeq 14
        13: .line 365
            aload 0 /* this */
            aload 10 /* block */
            aload 8 /* successorBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveIntraTraceEdge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        14: .line 367
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase int
      StackMap stack:
            aload 10 /* block */
            astore 8 /* successorBlock */
        end local 11 // boolean needResolution
        end local 10 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        15: .line 357
            iinc 9 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            ifge 9
        end local 9 // int i
        17: .line 369
            aload 0 /* this */
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveLoopBackEdge:(Lorg/graalvm/compiler/core/common/alloc/Trace;)V
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase successorBlock
        end local 7 // int lastBlockIdx
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
        18: .line 370
            aload 5 /* indent */
            ifnull 21
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 21
      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.DebugContext$Scope org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        19: astore 2
            aload 5 /* indent */
            ifnull 20
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 5 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        20: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        21: aload 4 /* s */
            ifnull 31
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 31
      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 4 /* s */
            ifnull 25
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 4 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        25: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 3
            aload 2
            ifnonnull 27
            aload 3
            astore 2
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 2
            aload 3
            if_acmpeq 28
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 2
            athrow
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.alloc.Trace
      StackMap stack: java.lang.Throwable
        29: astore 2 /* e */
        start local 2 // java.lang.Throwable e
        30: .line 371
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 2 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable e
        31: .line 373
      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   32     0            this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   32     1           trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            2   25     4               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            3   20     5          indent  Lorg/graalvm/compiler/debug/Indent;
            4   18     6          blocks  [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            5   18     7    lastBlockIdx  I
            6   18     8  successorBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            8   17     9               i  I
           10   15    10           block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           12   15    11  needResolution  Z
           30   31     2               e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    18      19  any
           2    21      22  any
           1    26      26  any
           0    29      29  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=6, 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 from
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
         0: .line 383
            aload 2 /* to */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.isMerge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 13
         1: .line 384
            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 /* from */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.phiOut:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/StandardOp$JumpOp;
            astore 3 /* jump */
        start local 3 // org.graalvm.compiler.lir.StandardOp$JumpOp jump
         2: .line 385
            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 /* to */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.phiIn:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/StandardOp$LabelOp;
            astore 4 /* label */
        start local 4 // org.graalvm.compiler.lir.StandardOp$LabelOp label
         3: .line 387
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 389
      StackMap locals: org.graalvm.compiler.lir.StandardOp$JumpOp org.graalvm.compiler.lir.StandardOp$LabelOp
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 390
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* jump */
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.lir.StandardOp$JumpOp.getOutgoingValue:(I)Ljdk/vm/ci/meta/Value;
            aload 4 /* label */
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.lir.StandardOp$LabelOp.getIncomingValue:(I)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.visitPhiValuePair:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
         7: .line 389
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 4 /* label */
            invokevirtual org.graalvm.compiler.lir.StandardOp$LabelOp.getPhiSize:()I
            if_icmplt 6
        end local 5 // int i
         9: .line 392
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 13
        10: .line 393
            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 /* from */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 5 /* instructions */
        start local 5 // java.util.ArrayList instructions
        11: .line 394
            aload 5 /* instructions */
            aload 5 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(ILjava/util/Collection;)Z
            pop
        12: .line 395
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        end local 5 // java.util.ArrayList instructions
        end local 4 // org.graalvm.compiler.lir.StandardOp$LabelOp label
        end local 3 // org.graalvm.compiler.lir.StandardOp$JumpOp jump
        13: .line 398
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase from
        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          from  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   14     2            to  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2   13     3          jump  Lorg/graalvm/compiler/lir/StandardOp$JumpOp;
            3   13     4         label  Lorg/graalvm/compiler/lir/StandardOp$LabelOp;
            5    9     5             i  I
           11   13     5  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
      from  
      to    

  private void visitPhiValuePair(jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // jdk.vm.ci.meta.Value phiOut
        start local 2 // jdk.vm.ci.meta.Value phiIn
         0: .line 401
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 1
            aload 2 /* phiIn */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 1
            aload 2 /* phiIn */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "PHI defined values is not a register or stack slot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* phiIn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 402
      StackMap locals:
      StackMap stack:
            aload 2 /* phiIn */
            invokestatic jdk.vm.ci.code.ValueUtil.asAllocatableValue:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 3 /* in */
        start local 3 // jdk.vm.ci.meta.AllocatableValue in
         2: .line 404
            aload 3 /* in */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 3
            aload 0 /* this */
            aload 3 /* in */
            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.getCurrentValue:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/meta/AllocatableValue;
            goto 4
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
         3: aload 3 /* in */
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.AllocatableValue
         4: astore 4 /* dest */
        start local 4 // jdk.vm.ci.meta.AllocatableValue dest
         5: .line 406
            aload 1 /* phiOut */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isConstantValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 8
         6: .line 408
            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 4 /* dest */
            aload 1 /* phiOut */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asConstant:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Constant;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createLoad:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/LIRInstruction;
            astore 5 /* move */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction move
         7: .line 409
            goto 10
        end local 5 // org.graalvm.compiler.lir.LIRInstruction move
         8: .line 410
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 9
            aload 1 /* phiOut */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifne 9
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a variable or constant: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* phiOut */
            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 412
      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.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            aload 4 /* dest */
            aload 1 /* phiOut */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            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 5 /* move */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction move
        10: .line 414
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Inserting load %s"
            aload 5 /* move */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 415
            aload 5 /* move */
            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.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            ldc "BottomUp: phi resolution"
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setComment:(Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/String;)V
        12: .line 416
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.phiResolutionMoves:Ljava/util/ArrayList;
            aload 5 /* move */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 417
            return
        end local 5 // org.graalvm.compiler.lir.LIRInstruction move
        end local 4 // jdk.vm.ci.meta.AllocatableValue dest
        end local 3 // jdk.vm.ci.meta.AllocatableValue in
        end local 2 // jdk.vm.ci.meta.Value phiIn
        end local 1 // jdk.vm.ci.meta.Value phiOut
        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  phiOut  Ljdk/vm/ci/meta/Value;
            0   14     2   phiIn  Ljdk/vm/ci/meta/Value;
            2   14     3      in  Ljdk/vm/ci/meta/AllocatableValue;
            5   14     4    dest  Ljdk/vm/ci/meta/AllocatableValue;
            7    8     5    move  Lorg/graalvm/compiler/lir/LIRInstruction;
           10   14     5    move  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
        Name  Flags
      phiOut  
      phiIn   

  private void resolveLoopBackEdge(org.graalvm.compiler.core.common.alloc.Trace);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, 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 435
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 2 /* blocks */
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
         1: .line 436
            aload 2 /* blocks */
            aload 2 /* blocks */
            arraylength
            iconst_1
            isub
            aaload
            astore 3 /* endBlock */
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase endBlock
         2: .line 437
            aload 3 /* endBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.isLoopEnd:()Z
            ifeq 8
         3: .line 438
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 4
            aload 3 /* endBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 439
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 3 /* endBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            astore 4 /* targetBlock */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase targetBlock
         5: .line 440
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 6
            aload 4 /* targetBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.isLoopHeader:()Z
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "Successor %s or loop end %s is not a loop header?"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* targetBlock */
            aastore
            dup
            iconst_1
            aload 3 /* endBlock */
            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
         6: .line 441
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      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.resultTraces:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
            aload 4 /* targetBlock */
            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
         7: .line 442
            aload 0 /* this */
            aload 3 /* endBlock */
            aload 4 /* targetBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveLoopBackEdge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase targetBlock
         8: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase endBlock
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
        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    9     0         this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    9     1        trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            1    9     2       blocks  [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            2    9     3     endBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            5    8     4  targetBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
       Name  Flags
      trace  

  private void resolveLoopBackEdge(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=5, locals=9, 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 from
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
         0: .line 448
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 1
            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 1 /* from */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            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 2 /* to */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not on the same trace? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* from */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* to */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 449
      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;
            aload 1 /* from */
            aload 2 /* to */
            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
         2: .line 450
            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;
            astore 3 /* lir */
        start local 3 // org.graalvm.compiler.lir.LIR lir
         3: .line 452
            aload 2 /* to */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.isMerge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 13
         4: .line 453
            aload 3 /* lir */
            aload 1 /* from */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.phiOut:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/StandardOp$JumpOp;
            astore 4 /* blockEnd */
        start local 4 // org.graalvm.compiler.lir.StandardOp$JumpOp blockEnd
         5: .line 454
            aload 3 /* lir */
            aload 2 /* to */
            invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.phiIn:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/StandardOp$LabelOp;
            astore 5 /* label */
        start local 5 // org.graalvm.compiler.lir.StandardOp$LabelOp label
         6: .line 456
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 12
         8: .line 457
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIR org.graalvm.compiler.lir.StandardOp$JumpOp org.graalvm.compiler.lir.StandardOp$LabelOp int
      StackMap stack:
            aload 5 /* label */
            iload 6 /* i */
            invokevirtual org.graalvm.compiler.lir.StandardOp$LabelOp.getIncomingValue:(I)Ljdk/vm/ci/meta/Value;
            astore 7 /* incomingValue */
        start local 7 // jdk.vm.ci.meta.Value incomingValue
         9: .line 458
            aload 4 /* blockEnd */
            iload 6 /* i */
            invokevirtual org.graalvm.compiler.lir.StandardOp$JumpOp.getOutgoingValue:(I)Ljdk/vm/ci/meta/Value;
            astore 8 /* outgoingValue */
        start local 8 // jdk.vm.ci.meta.Value outgoingValue
        10: .line 459
            aload 0 /* this */
            aload 7 /* incomingValue */
            aload 8 /* outgoingValue */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveValuePair:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
        end local 8 // jdk.vm.ci.meta.Value outgoingValue
        end local 7 // jdk.vm.ci.meta.Value incomingValue
        11: .line 456
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            aload 5 /* label */
            invokevirtual org.graalvm.compiler.lir.StandardOp$LabelOp.getPhiSize:()I
            if_icmplt 8
        end local 6 // int i
        end local 5 // org.graalvm.compiler.lir.StandardOp$LabelOp label
        end local 4 // org.graalvm.compiler.lir.StandardOp$JumpOp blockEnd
        13: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* from */
            aload 2 /* to */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveTraceEdge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        14: .line 463
            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
        15: .line 464
            return
        end local 3 // org.graalvm.compiler.lir.LIR lir
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase from
        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           from  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   16     2             to  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            3   16     3            lir  Lorg/graalvm/compiler/lir/LIR;
            5   13     4       blockEnd  Lorg/graalvm/compiler/lir/StandardOp$JumpOp;
            6   13     5          label  Lorg/graalvm/compiler/lir/StandardOp$LabelOp;
            7   13     6              i  I
            9   11     7  incomingValue  Ljdk/vm/ci/meta/Value;
           10   11     8  outgoingValue  Ljdk/vm/ci/meta/Value;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
      Name  Flags
      from  
      to    

  private void resolveIntraTraceEdge(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=5, locals=3, 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 from
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
         0: .line 467
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 1
            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 1 /* from */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            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 2 /* to */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not on the same trace? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* from */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* to */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 468
      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;
            aload 1 /* from */
            aload 2 /* to */
            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
         2: .line 469
            aload 0 /* this */
            aload 1 /* from */
            aload 2 /* to */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveTraceEdge:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         3: .line 470
            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
         4: .line 471
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase from
        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  from  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    5     2    to  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
      Name  Flags
      from  
      to    

  private void resolveTraceEdge(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=3, locals=8, 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 from
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
         0: .line 474
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 1 /* from */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getOutLocation:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[Ljdk/vm/ci/meta/Value;
            astore 3 /* out */
        start local 3 // jdk.vm.ci.meta.Value[] out
         1: .line 475
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 2 /* to */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getInLocation:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[Ljdk/vm/ci/meta/Value;
            astore 4 /* in */
        start local 4 // jdk.vm.ci.meta.Value[] in
         2: .line 477
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 3
            aload 3 /* out */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 478
      StackMap locals: jdk.vm.ci.meta.Value[] jdk.vm.ci.meta.Value[]
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 4
            aload 4 /* in */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 479
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.$assertionsDisabled:Z
            ifne 5
            aload 3 /* out */
            arraylength
            aload 4 /* in */
            arraylength
            if_icmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 481
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 482
      StackMap locals: int
      StackMap stack:
            aload 4 /* in */
            iload 5 /* i */
            aaload
            astore 6 /* incomingValue */
        start local 6 // jdk.vm.ci.meta.Value incomingValue
         8: .line 483
            aload 3 /* out */
            iload 5 /* i */
            aaload
            astore 7 /* outgoingValue */
        start local 7 // jdk.vm.ci.meta.Value outgoingValue
         9: .line 484
            aload 0 /* this */
            aload 6 /* incomingValue */
            aload 7 /* outgoingValue */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.resolveValuePair:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
        end local 7 // jdk.vm.ci.meta.Value outgoingValue
        end local 6 // jdk.vm.ci.meta.Value incomingValue
        10: .line 481
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 3 /* out */
            arraylength
            if_icmplt 7
        end local 5 // int i
        12: .line 486
            return
        end local 4 // jdk.vm.ci.meta.Value[] in
        end local 3 // jdk.vm.ci.meta.Value[] out
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase to
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase from
        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           from  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   13     2             to  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1   13     3            out  [Ljdk/vm/ci/meta/Value;
            2   13     4             in  [Ljdk/vm/ci/meta/Value;
            6   12     5              i  I
            8   10     6  incomingValue  Ljdk/vm/ci/meta/Value;
            9   10     7  outgoingValue  Ljdk/vm/ci/meta/Value;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
      Name  Flags
      from  
      to    

  private void resolveValuePair(jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)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.meta.Value incomingValue
        start local 2 // jdk.vm.ci.meta.Value outgoingValue
         0: .line 489
            aload 1 /* incomingValue */
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
            ifne 2
            aload 2 /* outgoingValue */
            aload 1 /* incomingValue */
            invokestatic org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.isMoveToSelf:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Z
            ifne 2
         1: .line 490
            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;
            aload 2 /* outgoingValue */
            aload 1 /* incomingValue */
            invokestatic org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase.addMapping:(Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolutionPhase$MoveResolver;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
         2: .line 492
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.meta.Value outgoingValue
        end local 1 // jdk.vm.ci.meta.Value incomingValue
        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  incomingValue  Ljdk/vm/ci/meta/Value;
            0    3     2  outgoingValue  Ljdk/vm/ci/meta/Value;
    MethodParameters:
               Name  Flags
      incomingValue  
      outgoingValue  

  private boolean allocateBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    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 500
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.requireResolution:Z
         1: .line 502
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "handle block %s"
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         3: .line 503
            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;
         4: .line 504
            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 10
         5: .line 505
      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
         6: .line 506
            aload 5 /* inst */
            ifnull 9
         7: .line 507
            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
         8: .line 508
            aload 0 /* this */
            aload 5 /* inst */
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateInstruction:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 5 // org.graalvm.compiler.lir.LIRInstruction inst
         9: .line 504
      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:
        10: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentInstructionIndex:I
            ifge 5
        11: .line 511
            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
        12: .line 512
            aload 4 /* indent */
            ifnull 18
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 2
            aload 4 /* indent */
            ifnull 14
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 3
            aload 2
            ifnonnull 16
            aload 3
            astore 2
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 2
            aload 3
            if_acmpeq 17
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 2
            athrow
        18: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.requireResolution:Z
            ireturn
        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   19     0    this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   19     1   block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            3   14     4  indent  Lorg/graalvm/compiler/debug/Indent;
            6    9     5    inst  Lorg/graalvm/compiler/lir/LIRInstruction;
      Exception table:
        from    to  target  type
           3    12      13  any
           2    15      15  any
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
       Name  Flags
      block  

  private void allocateInstruction(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 518
            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 519
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "handle inst: %d: %s"
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;ILjava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 5 /* indent */
        start local 5 // org.graalvm.compiler.debug.Indent indent
         4: .line 520
            aconst_null
            astore 6
            aconst_null
            astore 7
         5: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "output pos"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 8 /* indent1 */
        start local 8 // org.graalvm.compiler.debug.Indent indent1
         6: .line 522
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.destroysCallerSavedRegisters:()Z
            ifeq 8
         7: .line 523
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.spillCallerSavedRegisters:()V
         8: .line 527
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.core.common.cfg.AbstractBlockBase 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 528
            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 529
            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 531
            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 532
            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 533
            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 538
            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 539
            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 540
            aload 1 /* op */
            instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
            ifeq 18
        17: .line 541
            aload 0 /* this */
            aload 2 /* block */
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.processIncoming:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;)V
        18: .line 543
      StackMap locals:
      StackMap stack:
            aload 8 /* indent1 */
            ifnull 24
            aload 8 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 6
            aload 8 /* indent1 */
            ifnull 20
            aload 8 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 8 // org.graalvm.compiler.debug.Indent indent1
      StackMap locals:
      StackMap stack:
        20: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 7
            aload 6
            ifnonnull 22
            aload 7
            astore 6
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 6
            aload 7
            if_acmpeq 23
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 6
            athrow
        24: .line 544
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        25: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "input pos"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 8 /* indent1 */
        start local 8 // org.graalvm.compiler.debug.Indent indent1
        26: .line 546
            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
        27: .line 549
            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
        28: .line 551
            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
        29: .line 553
            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
        30: .line 554
            aload 1 /* op */
            instanceof org.graalvm.compiler.lir.StandardOp$BlockEndOp
            ifeq 32
        31: .line 555
            aload 0 /* this */
            aload 2 /* block */
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.processOutgoing:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;)V
        32: .line 557
      StackMap locals: 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.allocStackOrRegisterProcedure:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachState:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        33: .line 558
            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
        34: .line 559
            aload 8 /* indent1 */
            ifnull 40
            aload 8 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 6
            aload 8 /* indent1 */
            ifnull 36
            aload 8 /* indent1 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 8 // org.graalvm.compiler.debug.Indent indent1
      StackMap locals:
      StackMap stack:
        36: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: astore 7
            aload 6
            ifnonnull 38
            aload 7
            astore 6
            goto 39
      StackMap locals:
      StackMap stack:
        38: aload 6
            aload 7
            if_acmpeq 39
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        39: aload 6
            athrow
        40: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.insertInstructions:()V
        41: .line 563
            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
        42: .line 564
            aload 5 /* indent */
            ifnull 48
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        43: astore 3
            aload 5 /* indent */
            ifnull 44
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 5 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        44: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 4
            aload 3
            ifnonnull 46
            aload 4
            astore 3
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 3
            aload 4
            if_acmpeq 47
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        47: aload 3
            athrow
        48: .line 565
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        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   49     0     this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   49     1       op  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   49     2    block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            4   44     5   indent  Lorg/graalvm/compiler/debug/Indent;
            6   20     8  indent1  Lorg/graalvm/compiler/debug/Indent;
           26   36     8  indent1  Lorg/graalvm/compiler/debug/Indent;
      Exception table:
        from    to  target  type
           6    18      19  any
           5    21      21  any
          26    34      35  any
          25    37      37  any
           4    42      43  any
           3    45      45  any
    Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      op     
      block  

  private void processIncoming(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, 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 block
        start local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
         0: .line 568
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockIn:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
            astore 3 /* vars */
        start local 3 // int[] vars
         1: .line 569
            aload 3 /* vars */
            arraylength
            anewarray jdk.vm.ci.meta.Value
            astore 4 /* locs */
        start local 4 // jdk.vm.ci.meta.Value[] locs
         2: .line 570
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 8
         4: .line 571
      StackMap locals: int[] jdk.vm.ci.meta.Value[] int
      StackMap stack:
            aload 3 /* vars */
            iload 5 /* i */
            iaload
            istore 6 /* varNum */
        start local 6 // int varNum
         5: .line 572
            iload 6 /* varNum */
            iflt 7
         6: .line 573
            aload 4 /* locs */
            iload 5 /* i */
            aload 0 /* this */
            aload 2 /* instruction */
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            iload 6 /* varNum */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getVariable:(I)Lorg/graalvm/compiler/lir/Variable;
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.StandardOp$LabelOp.incomingFlags:Ljava/util/EnumSet;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegister:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
            aastore
        end local 6 // int varNum
         7: .line 570
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 3 /* vars */
            arraylength
            if_icmplt 4
        end local 5 // int i
         9: .line 576
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 1 /* block */
            aload 4 /* locs */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setInLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
        10: .line 577
            return
        end local 4 // jdk.vm.ci.meta.Value[] locs
        end local 3 // int[] vars
        end local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        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   11     0         this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0   11     1        block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   11     2  instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            1   11     3         vars  [I
            2   11     4         locs  [Ljdk/vm/ci/meta/Value;
            3    9     5            i  I
            5    7     6       varNum  I
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/LIRInstruction;)V
    MethodParameters:
             Name  Flags
      block        
      instruction  

  private void processOutgoing(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, 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 block
        start local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
         0: .line 580
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockOut:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
            astore 3 /* vars */
        start local 3 // int[] vars
         1: .line 581
            aload 3 /* vars */
            arraylength
            anewarray jdk.vm.ci.meta.Value
            astore 4 /* locs */
        start local 4 // jdk.vm.ci.meta.Value[] locs
         2: .line 582
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 583
      StackMap locals: int[] jdk.vm.ci.meta.Value[] int
      StackMap stack:
            aload 4 /* locs */
            iload 5 /* i */
            aload 0 /* this */
            aload 2 /* instruction */
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 3 /* vars */
            iload 5 /* i */
            iaload
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getVariable:(I)Lorg/graalvm/compiler/lir/Variable;
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.StandardOp$JumpOp.outgoingFlags:Ljava/util/EnumSet;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocStackOrRegister:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
            aastore
         5: .line 582
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            aload 3 /* vars */
            arraylength
            if_icmplt 4
        end local 5 // int i
         7: .line 585
            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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            aload 1 /* block */
            aload 4 /* locs */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setOutLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
         8: .line 586
            return
        end local 4 // jdk.vm.ci.meta.Value[] locs
        end local 3 // int[] vars
        end local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        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    9     0         this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            0    9     1        block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    9     2  instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            1    9     3         vars  [I
            2    9     4         locs  [Ljdk/vm/ci/meta/Value;
            3    7     5            i  I
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/LIRInstruction;)V
    MethodParameters:
             Name  Flags
      block        
      instruction  

  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 589
            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 6
      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 590
            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 6
         3: .line 591
            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 592
            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 593
      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 */
            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
         6: .line 589
      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
         7: .line 596
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 9
         8: .line 597
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "operation destroys all caller-save registers"
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
         9: .line 599
      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   10     0  this  Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator$Allocator;
            2    6     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 621
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         1: .line 622
            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 623
            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 624
      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 625
            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 627
      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 631
            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 632
            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 634
            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 635
            aload 6 /* currentLocation */
            ifnonnull 5
         4: .line 637
            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 640
      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 642
            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 643
            aload 6 /* currentLocation */
            areturn
         8: .line 645
      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 647
      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 648
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.USE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 13
        11: .line 651
            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 652
            goto 14
        13: .line 653
      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 655
      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 657
      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=5, 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 661
            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 662
            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 663
            aload 4 /* freeRegister */
            ifnonnull 6
         3: .line 665
            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 666
            aload 4 /* freeRegister */
            ifnonnull 6
         5: .line 667
            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 671
      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 672
            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 673
            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 674
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "AllocateRegister[%5s] %s for %s"
            aload 2 /* mode */
            aload 4 /* freeRegister */
            aload 1 /* var */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 675
            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=6, 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 679
            aload 2 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         1: .line 680
            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 681
            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 683
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
         5: .line 685
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 32
         6: .line 686
            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 687
      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 689
            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 690
            aload 6 /* currentLocation */
            ifnull 20
        10: .line 692
            aload 6 /* currentLocation */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 18
        11: .line 693
            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 694
            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 695
            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 696
            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 697
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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 */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 698
            aload 8 /* spillSlot */
            areturn
        end local 8 // jdk.vm.ci.meta.AllocatableValue spillSlot
        17: .line 701
      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 703
      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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_3
            ldc "AllocateStackOrReg[%5s] %s already in %s"
            aload 3 /* mode */
            aload 5 /* var */
            aload 6 /* currentLocation */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 704
            aload 6 /* currentLocation */
            areturn
        20: .line 707
      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 708
            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 709
            aload 8 /* freeRegister */
            ifnonnull 26
        23: .line 711
            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 712
            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 713
            aload 9 /* spillSlot */
            areturn
        end local 9 // jdk.vm.ci.meta.AllocatableValue spillSlot
        26: .line 715
      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 717
      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 718
            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 719
            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 720
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "AllocateStackOrReg[%5s] %s for %s"
            aload 3 /* mode */
            aload 8 /* freeRegister */
            aload 5 /* var */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 721
            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 723
      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 727
            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=6, 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 735
            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 736
            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 737
            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 738
            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 739
            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 740
            aload 5 /* reg */
            areturn
        end local 9 // jdk.vm.ci.meta.AllocatableValue currentVal
        end local 5 // jdk.vm.ci.code.Register reg
         7: .line 737
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 3
         9: .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;
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 23
        10: .line 744
            aconst_null
            astore 5
            aconst_null
            astore 6
        11: 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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "All Registers occupied:"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* i */
        start local 7 // org.graalvm.compiler.debug.Indent i
        12: .line 745
            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 746
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            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;
            invokevirtual org.graalvm.compiler.debug.DebugContext.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 745
            iinc 9 1
      StackMap locals:
      StackMap stack:
        16: iload 9
            iload 10
            if_icmplt 13
        17: .line 748
            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 750
      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 758
            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 759
            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 763
            aconst_null
            astore 5 /* lockedReg */
        start local 5 // jdk.vm.ci.code.Register lockedReg
         3: .line 764
            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 765
            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 766
            aload 6 /* reg */
            astore 5 /* lockedReg */
         7: .line 767
            goto 10
        end local 6 // jdk.vm.ci.code.Register reg
         8: .line 764
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 4
        10: .line 770
      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 771
            aconst_null
            areturn
        12: .line 773
      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 774
            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 778
            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 782
            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 783
            iload 3 /* lastRegUsage */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.currentOpId:I
            if_icmpne 3
         2: .line 784
            iconst_1
            ireturn
         3: .line 786
      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=4, 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 790
            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 791
            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 792
            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 793
            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 794
            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 795
            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 796
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Free Registers %s (was %s)"
            aload 1 /* reg */
            aload 3 /* var */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // org.graalvm.compiler.lir.Variable var
         7: .line 797
            goto 9
         8: .line 798
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Free Registers %s"
            aload 1 /* reg */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 800
      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 803
            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 804
      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 805
            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 806
            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 809
            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 810
            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 811
      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 820
            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 821
            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 822
            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 831
            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 832
            aload 2 /* val */
            ifnonnull 3
         2: .line 833
            aconst_null
            areturn
         3: .line 835
      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 836
            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=4, 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 840
            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 841
            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 842
            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.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Spill Variable %s from %s"
            aload 3 /* var */
            aload 2 /* reg */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 844
            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 845
            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 846
            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 848
      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   
}
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.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  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 JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
  public final LabelOp = org.graalvm.compiler.lir.StandardOp$LabelOp of org.graalvm.compiler.lir.StandardOp
  public abstract MoveResolver = org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase$MoveResolver of org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase
  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
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool