public final class org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy extends org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy
  super_class: org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy
{
  private final double[] cumulativeTraceProbability;
    descriptor: [D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double budget;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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=5, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy this
        start local 1 // org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy plan
         0: .line 318
            aload 0 /* this */
            aload 1 /* plan */
            invokespecial org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy;)V
         1: .line 319
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.getTraceBuilderResult:()Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraces:()Ljava/util/ArrayList;
            astore 2 /* traces */
        start local 2 // java.util.ArrayList traces
         2: .line 320
            aload 0 /* this */
            aload 2 /* traces */
            invokevirtual java.util.ArrayList.size:()I
            newarray 7
            putfield org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.cumulativeTraceProbability:[D
         3: .line 321
            aload 2 /* traces */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.cumulativeTraceProbability:[D
            invokestatic org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.init:(Ljava/util/ArrayList;[D)D
            dstore 3 /* sumMethodProbability */
        start local 3 // double sumMethodProbability
         4: .line 322
            aload 0 /* this */
            dload 3 /* sumMethodProbability */
            getstatic org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$Options.TraceRAsumBudget:Lorg/graalvm/compiler/options/OptionKey;
            aload 1 /* plan */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dmul
            putfield org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.budget:D
         5: .line 323
            return
        end local 3 // double sumMethodProbability
        end local 2 // java.util.ArrayList traces
        end local 1 // org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPolicy plan
        end local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Lorg/graalvm/compiler/lir/alloc/trace/DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy;
            0    6     1                  plan  Lorg/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPolicy;
            2    6     2                traces  Ljava/util/ArrayList<Lorg/graalvm/compiler/core/common/alloc/Trace;>;
            4    6     3  sumMethodProbability  D
    MethodParameters:
      Name  Flags
      plan  

  private static double init(java.util.ArrayList<org.graalvm.compiler.core.common.alloc.Trace>, );
    descriptor: (Ljava/util/ArrayList;[D)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // java.util.ArrayList traces
        start local 1 // double[] sumTraces
         0: .line 326
            dconst_0
            dstore 2 /* sumMethod */
        start local 2 // double sumMethod
         1: .line 327
            aload 0 /* traces */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: java.util.ArrayList double[] double top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.alloc.Trace
            astore 4 /* trace */
        start local 4 // org.graalvm.compiler.core.common.alloc.Trace trace
         3: .line 328
            dconst_0
            dstore 6 /* traceSum */
        start local 6 // double traceSum
         4: .line 329
            aload 4 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 8
      StackMap locals: java.util.ArrayList double[] double org.graalvm.compiler.core.common.alloc.Trace java.util.Iterator double top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         5: aload 11
            iload 9
            aaload
            astore 8 /* block */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         6: .line 330
            dload 6 /* traceSum */
            aload 8 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.probability:()D
            dadd
            dstore 6 /* traceSum */
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         7: .line 329
            iinc 9 1
      StackMap locals:
      StackMap stack:
         8: iload 9
            iload 10
            if_icmplt 5
         9: .line 332
            dload 2 /* sumMethod */
            dload 6 /* traceSum */
            dadd
            dstore 2 /* sumMethod */
        10: .line 334
            aload 1 /* sumTraces */
            aload 4 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            dload 2 /* sumMethod */
            dastore
        end local 6 // double traceSum
        end local 4 // org.graalvm.compiler.core.common.alloc.Trace trace
        11: .line 327
      StackMap locals: java.util.ArrayList double[] double top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 336
            dload 2 /* sumMethod */
            dreturn
        end local 2 // double sumMethod
        end local 1 // double[] sumTraces
        end local 0 // java.util.ArrayList traces
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0     traces  Ljava/util/ArrayList<Lorg/graalvm/compiler/core/common/alloc/Trace;>;
            0   13     1  sumTraces  [D
            1   13     2  sumMethod  D
            3   11     4      trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            4   11     6   traceSum  D
            6    7     8      block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Ljava/util/ArrayList<Lorg/graalvm/compiler/core/common/alloc/Trace;>;[D)D
    MethodParameters:
           Name  Flags
      traces     
      sumTraces  

  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=4, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
         0: .line 341
            aload 0 /* this */
            aload 1 /* trace */
            invokespecial org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy.shouldApplyTo:(Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
            ifne 2
         1: .line 342
            iconst_0
            ireturn
         2: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.cumulativeTraceProbability:[D
            aload 1 /* trace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            daload
            dstore 2 /* cumTraceProb */
        start local 2 // double cumTraceProb
         3: .line 345
            dload 2 /* cumTraceProb */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy.budget:D
            dcmpl
            ifle 4
            iconst_1
            ireturn
      StackMap locals: double
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // double cumTraceProb
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace trace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/graalvm/compiler/lir/alloc/trace/DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy;
            0    5     1         trace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            3    5     2  cumTraceProb  D
    MethodParameters:
       Name  Flags
      trace  
}
SourceFile: "DefaultTraceRegisterAllocationPolicy.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy
InnerClasses:
  public final BottomUpFrequencyBudgetStrategy = org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpFrequencyBudgetStrategy of org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy
  public BottomUpStrategy = org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$BottomUpStrategy of org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy
  public Options = org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy$Options of org.graalvm.compiler.lir.alloc.trace.DefaultTraceRegisterAllocationPolicy