public class org.graalvm.compiler.phases.contract.NodeCostUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.phases.contract.NodeCostUtil
  super_class: java.lang.Object
{
  private static final org.graalvm.compiler.debug.CounterKey sizeComputationCount;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.CounterKey sizeVerificationCount;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double DELTA;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.001

  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 44
            ldc Lorg/graalvm/compiler/phases/contract/NodeCostUtil;
            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.phases.contract.NodeCostUtil.$assertionsDisabled:Z
         3: .line 46
            ldc "GraphCostComputationCount_Size"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.phases.contract.NodeCostUtil.sizeComputationCount:Lorg/graalvm/compiler/debug/CounterKey;
         4: .line 47
            ldc "GraphCostVerificationCount_Size"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.phases.contract.NodeCostUtil.sizeVerificationCount:Lorg/graalvm/compiler/debug/CounterKey;
         5: .line 123
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.phases.contract.NodeCostUtil this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.phases.contract.NodeCostUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/contract/NodeCostUtil;

  public static int computeNodesSize(java.lang.Iterable<org.graalvm.compiler.graph.Node>);
    descriptor: (Ljava/lang/Iterable;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Iterable nodes
         0: .line 50
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 51
            aload 0 /* nodes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Iterable int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         3: .line 52
            iload 1 /* size */
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.estimatedNodeSize:()Lorg/graalvm/compiler/nodeinfo/NodeSize;
            getfield org.graalvm.compiler.nodeinfo.NodeSize.value:I
            iadd
            istore 1 /* size */
        end local 2 // org.graalvm.compiler.graph.Node n
         4: .line 51
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 54
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.$assertionsDisabled:Z
            ifne 6
            iload 1 /* size */
            ifge 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 55
      StackMap locals: java.lang.Iterable int
      StackMap stack:
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // java.lang.Iterable nodes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  nodes  Ljava/lang/Iterable<Lorg/graalvm/compiler/graph/Node;>;
            1    7     1   size  I
            3    4     2      n  Lorg/graalvm/compiler/graph/Node;
    Signature: (Ljava/lang/Iterable<Lorg/graalvm/compiler/graph/Node;>;)I
    MethodParameters:
       Name  Flags
      nodes  

  public static int computeGraphSize(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 60
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.sizeComputationCount:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         1: .line 61
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         2: .line 62
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         4: .line 63
            iload 1 /* size */
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.estimatedNodeSize:()Lorg/graalvm/compiler/nodeinfo/NodeSize;
            getfield org.graalvm.compiler.nodeinfo.NodeSize.value:I
            iadd
            istore 1 /* size */
        end local 2 // org.graalvm.compiler.graph.Node n
         5: .line 62
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 65
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.$assertionsDisabled:Z
            ifne 7
            iload 1 /* size */
            ifge 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 66
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int
      StackMap stack:
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    8     1   size  I
            4    5     2      n  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
       Name  Flags
      graph  

  public static double computeGraphCycles(org.graalvm.compiler.nodes.StructuredGraph, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Z)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=18, args_size=2
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // boolean fullSchedule
         0: .line 73
            iload 1 /* fullSchedule */
            ifeq 6
         1: .line 74
            new org.graalvm.compiler.phases.schedule.SchedulePhase
            dup
            getstatic org.graalvm.compiler.phases.schedule.SchedulePhase$SchedulingStrategy.LATEST_OUT_OF_LOOPS:Lorg/graalvm/compiler/phases/schedule/SchedulePhase$SchedulingStrategy;
            iconst_1
            invokespecial org.graalvm.compiler.phases.schedule.SchedulePhase.<init>:(Lorg/graalvm/compiler/phases/schedule/SchedulePhase$SchedulingStrategy;Z)V
            astore 4 /* schedule */
        start local 4 // org.graalvm.compiler.phases.schedule.SchedulePhase schedule
         2: .line 75
            aload 4 /* schedule */
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.phases.schedule.SchedulePhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
         3: .line 76
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getLastSchedule:()Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            astore 3 /* cfg */
        start local 3 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         4: .line 77
            aload 0 /* graph */
            invokedynamic apply(Lorg/graalvm/compiler/nodes/StructuredGraph;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/phases/contract/NodeCostUtil.lambda$0(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable; (6)
                  (Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable;
            astore 2 /* blockToNodes */
        end local 4 // org.graalvm.compiler.phases.schedule.SchedulePhase schedule
        start local 2 // java.util.function.Function blockToNodes
         5: .line 78
            goto 19
        end local 3 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 2 // java.util.function.Function blockToNodes
         6: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* graph */
            iconst_1
            iconst_1
            iconst_0
            iconst_0
            invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.compute:(Lorg/graalvm/compiler/nodes/StructuredGraph;ZZZZ)Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            astore 3 /* cfg */
        start local 3 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         7: .line 80
            new org.graalvm.compiler.core.common.cfg.BlockMap
            dup
            aload 3 /* cfg */
            invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
            astore 4 /* nodes */
        start local 4 // org.graalvm.compiler.core.common.cfg.BlockMap nodes
         8: .line 81
            aload 3 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/nodes/cfg/Block;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.core.common.cfg.BlockMap top int int org.graalvm.compiler.nodes.cfg.Block[]
      StackMap stack:
         9: aload 8
            iload 6
            aaload
            astore 5 /* b */
        start local 5 // org.graalvm.compiler.nodes.cfg.Block b
        10: .line 82
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* curNodes */
        start local 9 // java.util.ArrayList curNodes
        11: .line 83
            aload 5 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getNodes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 11
            goto 14
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.core.common.cfg.BlockMap org.graalvm.compiler.nodes.cfg.Block int int org.graalvm.compiler.nodes.cfg.Block[] java.util.ArrayList top java.util.Iterator
      StackMap stack:
        12: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 10 /* node */
        start local 10 // org.graalvm.compiler.nodes.FixedNode node
        13: .line 84
            aload 9 /* curNodes */
            aload 10 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.graalvm.compiler.nodes.FixedNode node
        14: .line 83
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 86
            aload 4 /* nodes */
            aload 5 /* b */
            aload 9 /* curNodes */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
        end local 9 // java.util.ArrayList curNodes
        end local 5 // org.graalvm.compiler.nodes.cfg.Block b
        16: .line 81
            iinc 6 1
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.core.common.cfg.BlockMap top int int org.graalvm.compiler.nodes.cfg.Block[]
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 9
        18: .line 88
            aload 4 /* nodes */
            invokedynamic apply(Lorg/graalvm/compiler/core/common/cfg/BlockMap;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/phases/contract/NodeCostUtil.lambda$1(Lorg/graalvm/compiler/core/common/cfg/BlockMap;Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable; (6)
                  (Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable;
            astore 2 /* blockToNodes */
        end local 4 // org.graalvm.compiler.core.common.cfg.BlockMap nodes
        start local 2 // java.util.function.Function blockToNodes
        19: .line 90
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph
      StackMap stack:
            dconst_0
            dstore 4 /* weightedCycles */
        start local 4 // double weightedCycles
        20: .line 91
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 6 /* debug */
        start local 6 // org.graalvm.compiler.debug.DebugContext debug
        21: .line 92
            aconst_null
            astore 7
            aconst_null
            astore 8
        22: aload 6 /* debug */
            ldc "NodeCostSummary"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 9 /* s */
        start local 9 // org.graalvm.compiler.debug.DebugContext$Scope s
        23: .line 93
            aload 3 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/nodes/cfg/Block;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 36
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope top int int org.graalvm.compiler.nodes.cfg.Block[]
      StackMap stack:
        24: aload 13
            iload 11
            aaload
            astore 10 /* block */
        start local 10 // org.graalvm.compiler.nodes.cfg.Block block
        25: .line 94
            aload 2 /* blockToNodes */
            aload 10 /* block */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 15
            goto 34
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.cfg.Block int int org.graalvm.compiler.nodes.cfg.Block[] top java.util.Iterator
      StackMap stack:
        26: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 14 /* n */
        start local 14 // org.graalvm.compiler.graph.Node n
        27: .line 95
            aload 14 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.estimatedNodeCycles:()Lorg/graalvm/compiler/nodeinfo/NodeCycles;
            getfield org.graalvm.compiler.nodeinfo.NodeCycles.value:I
            i2d
            aload 10 /* block */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            dmul
            dstore 16 /* probWeighted */
        start local 16 // double probWeighted
        28: .line 96
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.$assertionsDisabled:Z
            ifne 29
            dload 16 /* probWeighted */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifne 29
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        29: .line 97
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.cfg.Block int int org.graalvm.compiler.nodes.cfg.Block[] org.graalvm.compiler.graph.Node java.util.Iterator double
      StackMap stack:
            dload 4 /* weightedCycles */
            dload 16 /* probWeighted */
            dadd
            dstore 4 /* weightedCycles */
        30: .line 98
            aload 6 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 34
        31: .line 99
            aload 6 /* debug */
            ldc "Node %s contributes cycles:%f size:%d to graph %s [block freq:%f]"
            aload 14 /* n */
            aload 14 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.estimatedNodeCycles:()Lorg/graalvm/compiler/nodeinfo/NodeCycles;
            getfield org.graalvm.compiler.nodeinfo.NodeCycles.value:I
            i2d
            aload 10 /* block */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            dmul
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
        32: .line 100
            aload 14 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.estimatedNodeSize:()Lorg/graalvm/compiler/nodeinfo/NodeSize;
            getfield org.graalvm.compiler.nodeinfo.NodeSize.value:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* graph */
            aload 10 /* block */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
        33: .line 99
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 16 // double probWeighted
        end local 14 // org.graalvm.compiler.graph.Node n
        34: .line 94
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.cfg.Block int int org.graalvm.compiler.nodes.cfg.Block[] top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 10 // org.graalvm.compiler.nodes.cfg.Block block
        35: .line 93
            iinc 11 1
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope top int int org.graalvm.compiler.nodes.cfg.Block[]
      StackMap stack:
        36: iload 11
            iload 12
            if_icmplt 24
        37: .line 104
            aload 9 /* s */
            ifnull 43
            aload 9 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 43
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int java.util.function.Function org.graalvm.compiler.nodes.cfg.ControlFlowGraph double org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        38: astore 7
            aload 9 /* s */
            ifnull 39
            aload 9 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 9 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        39: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        40: astore 8
            aload 7
            ifnonnull 41
            aload 8
            astore 7
            goto 42
      StackMap locals:
      StackMap stack:
        41: aload 7
            aload 8
            if_acmpeq 42
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        42: aload 7
            athrow
        43: .line 105
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.$assertionsDisabled:Z
            ifne 44
            dload 4 /* weightedCycles */
            dconst_0
            dcmpl
            ifge 44
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        44: .line 106
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.$assertionsDisabled:Z
            ifne 45
            dload 4 /* weightedCycles */
            invokestatic java.lang.Double.isFinite:(D)Z
            ifne 45
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        45: .line 107
      StackMap locals:
      StackMap stack:
            dload 4 /* weightedCycles */
            dreturn
        end local 6 // org.graalvm.compiler.debug.DebugContext debug
        end local 4 // double weightedCycles
        end local 3 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 2 // java.util.function.Function blockToNodes
        end local 1 // boolean fullSchedule
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   46     0           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   46     1    fullSchedule  Z
            5    6     2    blockToNodes  Ljava/util/function/Function<Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;>;
           19   46     2    blockToNodes  Ljava/util/function/Function<Lorg/graalvm/compiler/nodes/cfg/Block;Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;>;
            4    6     3             cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            7   46     3             cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            2    5     4        schedule  Lorg/graalvm/compiler/phases/schedule/SchedulePhase;
            8   19     4           nodes  Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/nodes/FixedNode;>;>;
           10   16     5               b  Lorg/graalvm/compiler/nodes/cfg/Block;
           11   16     9        curNodes  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/FixedNode;>;
           13   14    10            node  Lorg/graalvm/compiler/nodes/FixedNode;
           20   46     4  weightedCycles  D
           21   46     6           debug  Lorg/graalvm/compiler/debug/DebugContext;
           23   39     9               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           25   35    10           block  Lorg/graalvm/compiler/nodes/cfg/Block;
           27   34    14               n  Lorg/graalvm/compiler/graph/Node;
           28   34    16    probWeighted  D
      Exception table:
        from    to  target  type
          23    37      38  any
          22    40      40  any
    MethodParameters:
              Name  Flags
      graph         
      fullSchedule  

  private static int deltaCompare(double, double, double);
    descriptor: (DDD)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // double a
        start local 2 // double b
        start local 4 // double delta
         0: .line 111
            dload 0 /* a */
            dload 2 /* b */
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dload 4 /* delta */
            dcmpg
            ifgt 2
         1: .line 112
            iconst_0
            ireturn
         2: .line 114
      StackMap locals:
      StackMap stack:
            dload 0 /* a */
            dload 2 /* b */
            invokestatic java.lang.Double.compare:(DD)I
            ireturn
        end local 4 // double delta
        end local 2 // double b
        end local 0 // double a
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      a  D
            0    3     2      b  D
            0    3     4  delta  D
    MethodParameters:
       Name  Flags
      a      
      b      
      delta  

  public static void phaseFulfillsSizeContract(org.graalvm.compiler.nodes.StructuredGraph, int, int, org.graalvm.compiler.phases.contract.PhaseSizeContract);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;IILorg/graalvm/compiler/phases/contract/PhaseSizeContract;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=11, args_size=4
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // int codeSizeBefore
        start local 2 // int codeSizeAfter
        start local 3 // org.graalvm.compiler.phases.contract.PhaseSizeContract contract
         0: .line 126
            getstatic org.graalvm.compiler.phases.contract.NodeCostUtil.sizeVerificationCount:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         1: .line 127
            aload 3 /* contract */
            invokeinterface org.graalvm.compiler.phases.contract.PhaseSizeContract.codeSizeIncrease:()F
            f2d
            dstore 4 /* codeSizeIncrease */
        start local 4 // double codeSizeIncrease
         2: .line 128
            iload 1 /* codeSizeBefore */
            i2d
            ldc 0.001
            dmul
            dstore 6 /* graphSizeDelta */
        start local 6 // double graphSizeDelta
         3: .line 129
            iload 2 /* codeSizeAfter */
            i2d
            iload 1 /* codeSizeBefore */
            i2d
            dload 4 /* codeSizeIncrease */
            dmul
            dload 6 /* graphSizeDelta */
            invokestatic org.graalvm.compiler.phases.contract.NodeCostUtil.deltaCompare:(DDD)I
            ifle 11
         4: .line 130
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* method */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
         5: .line 131
            iload 2 /* codeSizeAfter */
            i2d
            iload 1 /* codeSizeBefore */
            i2d
            ddiv
            dstore 9 /* increase */
        start local 9 // double increase
         6: .line 132
            new org.graalvm.compiler.graph.VerificationError
            dup
            ldc "Phase %s expects to increase code size by at most a factor of %.2f but an increase of %.2f was seen (code size before: %d, after: %d)%s"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 133
            aload 3 /* contract */
            invokeinterface org.graalvm.compiler.phases.contract.PhaseSizeContract.contractorName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            dload 4 /* codeSizeIncrease */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            dload 9 /* increase */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_3
            iload 1 /* codeSizeBefore */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iload 2 /* codeSizeAfter */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
         8: .line 134
            aload 8 /* method */
            ifnull 9
            new java.lang.StringBuilder
            dup
            ldc " when compiling method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* method */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 10
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int int org.graalvm.compiler.phases.contract.PhaseSizeContract double double jdk.vm.ci.meta.ResolvedJavaMethod double
      StackMap stack: new 6 new 6 java.lang.String java.lang.Object[] java.lang.Object[] int
         9: ldc "."
        10: .line 132
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int int org.graalvm.compiler.phases.contract.PhaseSizeContract double double jdk.vm.ci.meta.ResolvedJavaMethod double
      StackMap stack: new 6 new 6 java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
            aastore
            invokespecial org.graalvm.compiler.graph.VerificationError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 9 // double increase
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
        11: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 6 // double graphSizeDelta
        end local 4 // double codeSizeIncrease
        end local 3 // org.graalvm.compiler.phases.contract.PhaseSizeContract contract
        end local 2 // int codeSizeAfter
        end local 1 // int codeSizeBefore
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0             graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   12     1    codeSizeBefore  I
            0   12     2     codeSizeAfter  I
            0   12     3          contract  Lorg/graalvm/compiler/phases/contract/PhaseSizeContract;
            2   12     4  codeSizeIncrease  D
            3   12     6    graphSizeDelta  D
            5   11     8            method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            6   11     9          increase  D
    MethodParameters:
                Name  Flags
      graph           
      codeSizeBefore  
      codeSizeAfter   
      contract        

  private static java.lang.Iterable lambda$0(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.cfg.Block);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.nodes.cfg.Block b
         0: .line 77
            aload 0
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getLastSchedule:()Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            areturn
        end local 1 // org.graalvm.compiler.nodes.cfg.Block b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     b  Lorg/graalvm/compiler/nodes/cfg/Block;

  private static java.lang.Iterable lambda$1(org.graalvm.compiler.core.common.cfg.BlockMap, org.graalvm.compiler.nodes.cfg.Block);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/BlockMap;Lorg/graalvm/compiler/nodes/cfg/Block;)Ljava/lang/Iterable;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.nodes.cfg.Block b
         0: .line 88
            aload 0
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            areturn
        end local 1 // org.graalvm.compiler.nodes.cfg.Block b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     b  Lorg/graalvm/compiler/nodes/cfg/Block;
}
SourceFile: "NodeCostUtil.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public ScheduleResult = org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult of org.graalvm.compiler.nodes.StructuredGraph
  public final SchedulingStrategy = org.graalvm.compiler.phases.schedule.SchedulePhase$SchedulingStrategy of org.graalvm.compiler.phases.schedule.SchedulePhase