public class org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy extends org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy$AllocationStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy
  super_class: org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy$AllocationStrategy
{
  public void <init>(org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
        start local 1 // org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy plan
         0: .line 110
            aload 0 /* this */
            aload 1 /* plan */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokespecial org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy$AllocationStrategy.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy;)V
         1: .line 111
            return
        end local 1 // org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy plan
        end local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/alloc/trace/DefaultTraceRegisterAllocationPolicy$BottomUpStrategy;
            0    2     1  plan  Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy;
    MethodParameters:
      Name  Flags
      plan  

  public boolean shouldApplyTo(org.graalvm.compiler.core.common.alloc.Trace);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
         0: .line 115
            aload 1 /* trace */
            invokestatic org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy.containsExceptionEdge:(Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/lir/alloc/trace/DefaultTraceRegisterAllocationPolicy$BottomUpStrategy;
            0    3     1  trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
    MethodParameters:
       Name  Flags
      trace  

  private static boolean containsExceptionEdge(org.graalvm.compiler.core.common.alloc.Trace);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=1
        start local 0 // org.graalvm.compiler.core.common.alloc.Trace trace
         0: .line 119
            aload 0 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 9
      StackMap locals: org.graalvm.compiler.core.common.alloc.Trace top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* block */
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         2: .line 121
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: org.graalvm.compiler.core.common.alloc.Trace org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* succ */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase succ
         4: .line 122
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.isExceptionEntry:()Z
            ifeq 6
         5: .line 123
            iconst_1
            ireturn
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase succ
         6: .line 121
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         8: .line 119
            iinc 2 1
      StackMap locals: org.graalvm.compiler.core.common.alloc.Trace top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         9: iload 2
            iload 3
            if_icmplt 1
        10: .line 127
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.core.common.alloc.Trace trace
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0  trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            2    8     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            4    6     5   succ  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
       Name  Flags
      trace  

  protected org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase<org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext> initAllocator(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory, org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig, jdk.vm.ci.meta.AllocatableValue[], org.graalvm.compiler.core.common.alloc.TraceBuilderResult, boolean, org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo, java.util.ArrayList<org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy$AllocationStrategy>);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;ZLorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Ljava/util/ArrayList;)Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=10, args_size=10
        start local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        start local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        start local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig registerAllocationConfig
        start local 5 // jdk.vm.ci.meta.AllocatableValue[] cachedStackSlots
        start local 6 // org.graalvm.compiler.core.common.alloc.TraceBuilderResult resultTraces
        start local 7 // boolean neverSpillConstant
        start local 8 // org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo livenessInfo
        start local 9 // java.util.ArrayList strategies
         0: .line 134
            new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator
            dup
            aload 1 /* target */
            aload 2 /* lirGenRes */
            aload 3 /* spillMoveFactory */
            aload 4 /* registerAllocationConfig */
            aload 5 /* cachedStackSlots */
            aload 6 /* resultTraces */
            iload 7 /* neverSpillConstant */
            aload 8 /* livenessInfo */
            invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.<init>:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;ZLorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;)V
            areturn
        end local 9 // java.util.ArrayList strategies
        end local 8 // org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo livenessInfo
        end local 7 // boolean neverSpillConstant
        end local 6 // org.graalvm.compiler.core.common.alloc.TraceBuilderResult resultTraces
        end local 5 // jdk.vm.ci.meta.AllocatableValue[] cachedStackSlots
        end local 4 // org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig registerAllocationConfig
        end local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0                      this  Lorg/graalvm/compiler/lir/alloc/trace/DefaultTraceRegisterAllocationPolicy$BottomUpStrategy;
            0    1     1                    target  Ljdk/vm/ci/code/TargetDescription;
            0    1     2                 lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0    1     3          spillMoveFactory  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            0    1     4  registerAllocationConfig  Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
            0    1     5          cachedStackSlots  [Ljdk/vm/ci/meta/AllocatableValue;
            0    1     6              resultTraces  Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
            0    1     7        neverSpillConstant  Z
            0    1     8              livenessInfo  Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
            0    1     9                strategies  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy$AllocationStrategy;>;
    Signature: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;ZLorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy$AllocationStrategy;>;)Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase<Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;>;
    MethodParameters:
                          Name  Flags
      target                    
      lirGenRes                 
      spillMoveFactory          
      registerAllocationConfig  
      cachedStackSlots          
      resultTraces              
      neverSpillConstant        
      livenessInfo              
      strategies                
}
SourceFile: "DefaultTraceRegisterAllocationPolicy.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy
InnerClasses:
  public BottomUpStrategy = org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy of org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy
  public TraceAllocationContext = org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext of org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase
  protected abstract AllocationStrategy = org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy$AllocationStrategy of org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool