public class org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase extends org.graalvm.compiler.phases.Phase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase
  super_class: org.graalvm.compiler.phases.Phase
{
  private static final java.lang.String GROUP_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "~profiled weight"

  private static final java.lang.String GROUP_NAME_WITHOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "~profiled weight (invoke-free sections)"

  private static final java.lang.String GROUP_NAME_INVOKES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "~profiled invokes"

  private static final boolean WITH_SECTION_HEADER;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean WITH_INVOKE_FREE_SECTIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean WITH_INVOKES;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 100
            ldc "ProfileCompiledMethodsPhase.WITH_SECTION_HEADER"
            ldc "false"
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_SECTION_HEADER:Z
         1: .line 101
            ldc "ProfileCompiledMethodsPhase.WITH_FREE_SECTIONS"
            ldc "false"
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_INVOKE_FREE_SECTIONS:Z
         2: .line 102
            ldc "ProfileCompiledMethodsPhase.WITH_INVOKES"
            ldc "true"
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_INVOKES:Z
            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.common.ProfileCompiledMethodsPhase this
         0: .line 86
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
            return
        end local 0 // org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/common/ProfileCompiledMethodsPhase;

  private static java.lang.String getProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String def
         0: .line 93
            invokestatic jdk.vm.ci.services.Services.getSavedProperties:()Ljava/util/Map;
            aload 0 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* value */
        start local 2 // java.lang.String value
         1: .line 94
            aload 2 /* value */
            ifnonnull 3
         2: .line 95
            aload 1 /* def */
            areturn
         3: .line 97
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String def
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   name  Ljava/lang/String;
            0    4     1    def  Ljava/lang/String;
            1    4     2  value  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  
      def   

  protected void run(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 106
            new org.graalvm.compiler.phases.schedule.SchedulePhase
            dup
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokespecial org.graalvm.compiler.phases.schedule.SchedulePhase.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
            astore 2 /* schedule */
        start local 2 // org.graalvm.compiler.phases.schedule.SchedulePhase schedule
         1: .line 107
            aload 2 /* schedule */
            aload 1 /* graph */
            iconst_0
            invokevirtual org.graalvm.compiler.phases.schedule.SchedulePhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Z)V
         2: .line 109
            aload 1 /* graph */
            iconst_1
            iconst_1
            iconst_1
            iconst_1
            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
         3: .line 110
            aload 3 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getLoops:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.schedule.SchedulePhase org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.Loop
            astore 4 /* loop */
        start local 4 // org.graalvm.compiler.core.common.cfg.Loop loop
         5: .line 111
            aload 3 /* cfg */
            aload 4 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            dstore 6 /* loopProbability */
        start local 6 // double loopProbability
         6: .line 112
            dload 6 /* loopProbability */
            ldc 4.656612875245797E-10
            dcmpl
            ifle 8
         7: .line 113
            aload 4 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 4 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
            aload 4 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getChildren:()Ljava/util/List;
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getLastSchedule:()Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            aload 3 /* cfg */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.addSectionCounters:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/Collection;Ljava/util/Collection;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
        end local 6 // double loopProbability
        end local 4 // org.graalvm.compiler.core.common.cfg.Loop loop
         8: .line 110
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 117
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 4 /* current */
        start local 4 // org.graalvm.compiler.nodes.FixedWithNextNode current
        10: .line 118
            goto 12
        11: .line 119
      StackMap locals: org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.schedule.SchedulePhase org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FixedWithNextNode
      StackMap stack:
            aload 4 /* current */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 4 /* current */
        12: .line 118
      StackMap locals:
      StackMap stack:
            aload 4 /* current */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifne 11
        13: .line 121
            aload 4 /* current */
            aload 3 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/nodes/cfg/Block;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getLoops:()Ljava/util/List;
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getLastSchedule:()Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            aload 3 /* cfg */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.addSectionCounters:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/Collection;Ljava/util/Collection;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
        14: .line 123
            getstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_INVOKES:Z
            ifeq 21
        15: .line 124
            aload 1 /* 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 6
            goto 20
      StackMap locals: org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.schedule.SchedulePhase org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FixedWithNextNode top java.util.Iterator
      StackMap stack:
        16: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* node */
        start local 5 // org.graalvm.compiler.graph.Node node
        17: .line 125
            aload 5 /* node */
            instanceof org.graalvm.compiler.nodes.Invoke
            ifeq 20
        18: .line 126
            aload 5 /* node */
            checkcast org.graalvm.compiler.nodes.Invoke
            astore 7 /* invoke */
        start local 7 // org.graalvm.compiler.nodes.Invoke invoke
        19: .line 127
            ldc "~profiled invokes"
            aload 7 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetName:()Ljava/lang/String;
            lconst_1
            iconst_1
            aload 7 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokestatic org.graalvm.compiler.nodes.debug.DynamicCounterNode.addCounterBefore:(Ljava/lang/String;Ljava/lang/String;JZLorg/graalvm/compiler/nodes/FixedNode;)V
        end local 7 // org.graalvm.compiler.nodes.Invoke invoke
        end local 5 // org.graalvm.compiler.graph.Node node
        20: .line 124
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        21: .line 132
      StackMap locals: org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.schedule.SchedulePhase org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FixedWithNextNode
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.nodes.FixedWithNextNode current
        end local 3 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 2 // org.graalvm.compiler.phases.schedule.SchedulePhase schedule
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lorg/graalvm/compiler/phases/common/ProfileCompiledMethodsPhase;
            0   22     1            graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   22     2         schedule  Lorg/graalvm/compiler/phases/schedule/SchedulePhase;
            3   22     3              cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            5    8     4             loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            6    8     6  loopProbability  D
           10   22     4          current  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           17   20     5             node  Lorg/graalvm/compiler/graph/Node;
           19   20     7           invoke  Lorg/graalvm/compiler/nodes/Invoke;
    MethodParameters:
       Name  Flags
      graph  

  private static void addSectionCounters(org.graalvm.compiler.nodes.FixedWithNextNode, java.util.Collection<org.graalvm.compiler.nodes.cfg.Block>, java.util.Collection<org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>>, org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult, org.graalvm.compiler.nodes.cfg.ControlFlowGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/Collection;Ljava/util/Collection;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.nodes.FixedWithNextNode start
        start local 1 // java.util.Collection sectionBlocks
        start local 2 // java.util.Collection childLoops
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult schedule
        start local 4 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         0: .line 135
            new java.util.HashSet
            dup
            aload 1 /* sectionBlocks */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 5 /* blocks */
        start local 5 // java.util.HashSet blocks
         1: .line 136
            aload 2 /* childLoops */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 4
      StackMap locals: org.graalvm.compiler.nodes.FixedWithNextNode java.util.Collection java.util.Collection org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult org.graalvm.compiler.nodes.cfg.ControlFlowGraph java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.Loop
            astore 6 /* loop */
        start local 6 // org.graalvm.compiler.core.common.cfg.Loop loop
         3: .line 137
            aload 5 /* blocks */
            aload 6 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
            invokevirtual java.util.HashSet.removeAll:(Ljava/util/Collection;)Z
            pop
        end local 6 // org.graalvm.compiler.core.common.cfg.Loop loop
         4: .line 136
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 139
            aload 3 /* schedule */
            aload 5 /* blocks */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.getSectionWeight:(Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Ljava/util/Collection;)D
            aload 4 /* cfg */
            aload 0 /* start */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            ddiv
            d2l
            invokestatic org.graalvm.compiler.nodes.debug.DynamicCounterNode.clampIncrement:(J)J
            lstore 6 /* increment */
        start local 6 // long increment
         6: .line 140
            ldc "~profiled weight"
            aload 0 /* start */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.sectionHead:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/String;
            lload 6 /* increment */
            iconst_1
            aload 0 /* start */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokestatic org.graalvm.compiler.nodes.debug.DynamicCounterNode.addCounterBefore:(Ljava/lang/String;Ljava/lang/String;JZLorg/graalvm/compiler/nodes/FixedNode;)V
         7: .line 141
            getstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_INVOKE_FREE_SECTIONS:Z
            ifeq 9
            aload 5 /* blocks */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.hasInvoke:(Ljava/util/Collection;)Z
            ifne 9
         8: .line 142
            ldc "~profiled weight (invoke-free sections)"
            aload 0 /* start */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.sectionHead:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/String;
            lload 6 /* increment */
            iconst_1
            aload 0 /* start */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokestatic org.graalvm.compiler.nodes.debug.DynamicCounterNode.addCounterBefore:(Ljava/lang/String;Ljava/lang/String;JZLorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 144
      StackMap locals: org.graalvm.compiler.nodes.FixedWithNextNode java.util.Collection java.util.Collection org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult org.graalvm.compiler.nodes.cfg.ControlFlowGraph java.util.HashSet long
      StackMap stack:
            return
        end local 6 // long increment
        end local 5 // java.util.HashSet blocks
        end local 4 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult schedule
        end local 2 // java.util.Collection childLoops
        end local 1 // java.util.Collection sectionBlocks
        end local 0 // org.graalvm.compiler.nodes.FixedWithNextNode start
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0          start  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            0   10     1  sectionBlocks  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0   10     2     childLoops  Ljava/util/Collection<Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;>;
            0   10     3       schedule  Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            0   10     4            cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            1   10     5         blocks  Ljava/util/HashSet<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            3    4     6           loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            6   10     6      increment  J
    Signature: (Lorg/graalvm/compiler/nodes/FixedWithNextNode;Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;Ljava/util/Collection<Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;>;Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
    MethodParameters:
               Name  Flags
      start          
      sectionBlocks  
      childLoops     
      schedule       
      cfg            

  private static java.lang.String sectionHead(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 147
            getstatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.WITH_SECTION_HEADER:Z
            ifeq 2
         1: .line 148
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.toString:()Ljava/lang/String;
            areturn
         2: .line 150
      StackMap locals:
      StackMap stack:
            ldc ""
            areturn
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  private static double getSectionWeight(org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult, java.util.Collection<org.graalvm.compiler.nodes.cfg.Block>);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Ljava/util/Collection;)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult schedule
        start local 1 // java.util.Collection blocks
         0: .line 155
            dconst_0
            dstore 2 /* count */
        start local 2 // double count
         1: .line 156
            aload 1 /* blocks */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult java.util.Collection double top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 4 /* block */
        start local 4 // org.graalvm.compiler.nodes.cfg.Block block
         3: .line 157
            aload 4 /* block */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getRelativeFrequency:()D
            dstore 6 /* blockProbability */
        start local 6 // double blockProbability
         4: .line 158
            aload 0 /* schedule */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult.getBlockToNodesMap:()Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 4 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 7
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult java.util.Collection double org.graalvm.compiler.nodes.cfg.Block java.util.Iterator double top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 8 /* node */
        start local 8 // org.graalvm.compiler.graph.Node node
         6: .line 159
            dload 2 /* count */
            dload 6 /* blockProbability */
            aload 8 /* node */
            invokestatic org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase.getNodeWeight:(Lorg/graalvm/compiler/graph/Node;)D
            dmul
            dadd
            dstore 2 /* count */
        end local 8 // org.graalvm.compiler.graph.Node node
         7: .line 158
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // double blockProbability
        end local 4 // org.graalvm.compiler.nodes.cfg.Block block
         8: .line 156
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult java.util.Collection double top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 162
            dload 2 /* count */
            dreturn
        end local 2 // double count
        end local 1 // java.util.Collection blocks
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult schedule
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0          schedule  Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;
            0   10     1            blocks  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            1   10     2             count  D
            3    8     4             block  Lorg/graalvm/compiler/nodes/cfg/Block;
            4    8     6  blockProbability  D
            6    7     8              node  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;)D
    MethodParameters:
          Name  Flags
      schedule  
      blocks    

  private static double getNodeWeight(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 166
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractMergeNode
            ifeq 2
         1: .line 167
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.AbstractMergeNode
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phiPredecessorCount:()I
            i2d
            dreturn
         2: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractBeginNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractEndNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.java.MonitorIdNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.ParameterNode
            ifne 4
         3: .line 169
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.CallTargetNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.spi.ValueProxy
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifne 4
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.ReinterpretNode
            ifeq 5
         4: .line 170
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
         5: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
            ifeq 7
         6: .line 172
            ldc 10.0
            dreturn
         7: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 9
         8: .line 174
            ldc 2.0
            dreturn
         9: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.LogicNode
            ifne 10
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.ConvertNode
            ifne 10
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.NotNode
            ifeq 11
        10: .line 176
      StackMap locals:
      StackMap stack:
            dconst_1
            dreturn
        11: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.IntegerDivRemNode
            ifne 12
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.FloatDivNode
            ifne 12
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.RemNode
            ifeq 13
        12: .line 178
      StackMap locals:
      StackMap stack:
            ldc 10.0
            dreturn
        13: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 15
        14: .line 180
            ldc 3.0
            dreturn
        15: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.Invoke
            ifeq 17
        16: .line 182
            ldc 5.0
            dreturn
        17: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.IfNode
            ifne 18
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.SafepointNode
            ifne 18
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.BinaryNode
            ifeq 19
        18: .line 184
      StackMap locals:
      StackMap stack:
            dconst_1
            dreturn
        19: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.extended.SwitchNode
            ifeq 21
        20: .line 186
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            i2d
            dreturn
        21: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.ReturnNode
            ifne 22
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.UnwindNode
            ifne 22
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.DeoptimizeNode
            ifeq 23
        22: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            i2d
            dreturn
        23: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifeq 25
        24: .line 190
            ldc 10.0
            dreturn
        25: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.VirtualState
            ifeq 27
        26: .line 192
            dconst_0
            dreturn
        27: .line 194
      StackMap locals:
      StackMap stack:
            ldc 2.0
            dreturn
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  private static boolean hasInvoke(java.util.Collection<org.graalvm.compiler.nodes.cfg.Block>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=6, args_size=1
        start local 0 // java.util.Collection blocks
         0: .line 198
            iconst_0
            istore 1 /* hasInvoke */
        start local 1 // boolean hasInvoke
         1: .line 199
            aload 0 /* blocks */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: java.util.Collection int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 2 /* block */
        start local 2 // org.graalvm.compiler.nodes.cfg.Block block
         3: .line 200
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getNodes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: java.util.Collection int org.graalvm.compiler.nodes.cfg.Block java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 4 /* fixed */
        start local 4 // org.graalvm.compiler.nodes.FixedNode fixed
         5: .line 201
            aload 4 /* fixed */
            instanceof org.graalvm.compiler.nodes.Invoke
            ifeq 7
         6: .line 202
            iconst_1
            istore 1 /* hasInvoke */
        end local 4 // org.graalvm.compiler.nodes.FixedNode fixed
         7: .line 200
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // org.graalvm.compiler.nodes.cfg.Block block
         8: .line 199
      StackMap locals: java.util.Collection int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 206
            iload 1 /* hasInvoke */
            ireturn
        end local 1 // boolean hasInvoke
        end local 0 // java.util.Collection blocks
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0     blocks  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            1   10     1  hasInvoke  Z
            3    8     2      block  Lorg/graalvm/compiler/nodes/cfg/Block;
            5    7     4      fixed  Lorg/graalvm/compiler/nodes/FixedNode;
    Signature: (Ljava/util/Collection<Lorg/graalvm/compiler/nodes/cfg/Block;>;)Z
    MethodParameters:
        Name  Flags
      blocks  

  public boolean checkContract();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase this
         0: .line 211
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.phases.common.ProfileCompiledMethodsPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/common/ProfileCompiledMethodsPhase;
}
SourceFile: "ProfileCompiledMethodsPhase.java"
InnerClasses:
  public ScheduleResult = org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult of org.graalvm.compiler.nodes.StructuredGraph