final class org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
  super_class: java.lang.Object
{
  static final double UNSET_FREQUENCY;
    descriptor: D
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -0.0

  final org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode parent;
    descriptor: Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    flags: (0x0010) ACC_FINAL

  final java.util.Map<org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey, org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode> children;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;

  final java.util.function.Function<org.graalvm.compiler.graph.NodeSourcePosition, java.lang.String> label;
    descriptor: Ljava/util/function/Function;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/function/Function<Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/lang/String;>;

  org.graalvm.compiler.graph.NodeSourcePosition position;
    descriptor: Lorg/graalvm/compiler/graph/NodeSourcePosition;
    flags: (0x0000) 

  final java.util.List<org.graalvm.compiler.graph.Node> graalNodes;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;

  double frequency;
    descriptor: D
    flags: (0x0000) 

  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 710
            ldc Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics;
            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.truffle.compiler.ExpansionStatistics$TreeNode.$assertionsDisabled:Z
         3: .line 712
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode, org.graalvm.compiler.graph.NodeSourcePosition, java.util.function.Function<org.graalvm.compiler.graph.NodeSourcePosition, java.lang.String>);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/util/function/Function;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode parent
        start local 2 // org.graalvm.compiler.graph.NodeSourcePosition position
        start local 3 // java.util.function.Function label
         0: .line 723
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 715
            aload 0 /* this */
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
         2: .line 719
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
         3: .line 721
            aload 0 /* this */
            ldc -0.0
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
         4: .line 724
            aload 0 /* this */
            aload 1 /* parent */
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.parent:Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
         5: .line 725
            aload 0 /* this */
            aload 2 /* position */
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
         6: .line 726
            aload 0 /* this */
            aload 3 /* label */
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.label:Ljava/util/function/Function;
         7: .line 727
            return
        end local 3 // java.util.function.Function label
        end local 2 // org.graalvm.compiler.graph.NodeSourcePosition position
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode parent
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    8     1    parent  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    8     2  position  Lorg/graalvm/compiler/graph/NodeSourcePosition;
            0    8     3     label  Ljava/util/function/Function<Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/lang/String;>;
    Signature: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/util/function/Function<Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      parent    
      position  
      label     

  java.util.Set<jdk.vm.ci.meta.ResolvedJavaMethod> findSpecializationMethods(java.util.concurrent.ConcurrentHashMap<jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Boolean>);
    descriptor: (Ljava/util/concurrent/ConcurrentHashMap;)Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // java.util.concurrent.ConcurrentHashMap cache
         0: .line 730
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* specializations */
        start local 2 // java.util.Set specializations
         1: .line 731
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.getTruffleNodeId:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)I
            istore 3 /* nodeId */
        start local 3 // int nodeId
         2: .line 733
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.concurrent.ConcurrentHashMap java.util.Set int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* node */
        start local 4 // org.graalvm.compiler.graph.Node node
         4: .line 734
            aload 4 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6 /* currentPos */
        start local 6 // org.graalvm.compiler.graph.NodeSourcePosition currentPos
         5: .line 735
            goto 13
         6: .line 736
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.concurrent.ConcurrentHashMap java.util.Set int org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack:
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getSourceLanguage:()Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            astore 7 /* sourceLang */
        start local 7 // org.graalvm.compiler.graph.SourceLanguagePosition sourceLang
         7: .line 737
            aload 7 /* sourceLang */
            ifnull 9
            aload 7 /* sourceLang */
            invokeinterface org.graalvm.compiler.graph.SourceLanguagePosition.getNodeId:()I
            iload 3 /* nodeId */
            if_icmpeq 9
         8: .line 739
            goto 14
         9: .line 741
      StackMap locals: org.graalvm.compiler.graph.SourceLanguagePosition
      StackMap stack:
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* method */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
        10: .line 742
            aload 8 /* method */
            ifnull 12
            aload 8 /* method */
            aload 1 /* cache */
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.isSpecializationMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/concurrent/ConcurrentHashMap;)Z
            ifeq 12
        11: .line 743
            aload 2 /* specializations */
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 745
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getCaller:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6 /* currentPos */
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 7 // org.graalvm.compiler.graph.SourceLanguagePosition sourceLang
        13: .line 735
      StackMap locals:
      StackMap stack:
            aload 6 /* currentPos */
            ifnonnull 6
        end local 6 // org.graalvm.compiler.graph.NodeSourcePosition currentPos
        end local 4 // org.graalvm.compiler.graph.Node node
        14: .line 733
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.concurrent.ConcurrentHashMap java.util.Set int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 748
            aload 0 /* this */
            aload 2 /* specializations */
            iload 3 /* nodeId */
            aload 1 /* cache */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.findSpecializationMethodsWithNodeId:(Ljava/util/Set;ILjava/util/concurrent/ConcurrentHashMap;)V
        16: .line 750
            aload 2 /* specializations */
            areturn
        end local 3 // int nodeId
        end local 2 // java.util.Set specializations
        end local 1 // java.util.concurrent.ConcurrentHashMap cache
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   17     1            cache  Ljava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;
            1   17     2  specializations  Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
            2   17     3           nodeId  I
            4   14     4             node  Lorg/graalvm/compiler/graph/Node;
            5   14     6       currentPos  Lorg/graalvm/compiler/graph/NodeSourcePosition;
            7   13     7       sourceLang  Lorg/graalvm/compiler/graph/SourceLanguagePosition;
           10   13     8           method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    Signature: (Ljava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;)Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
    MethodParameters:
       Name  Flags
      cache  

  private static boolean isSpecializationMethod(jdk.vm.ci.meta.ResolvedJavaMethod, java.util.concurrent.ConcurrentHashMap<jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Boolean>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/concurrent/ConcurrentHashMap;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 1 // java.util.concurrent.ConcurrentHashMap cache
         0: .line 759
            aload 1 /* cache */
            aload 0 /* method */
            invokedynamic apply()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/truffle/compiler/ExpansionStatistics$TreeNode.lambda$0(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Boolean; (6)
                  (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Boolean;
            invokevirtual java.util.concurrent.ConcurrentHashMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.util.concurrent.ConcurrentHashMap cache
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    1     1   cache  Ljava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;)Z
    MethodParameters:
        Name  Flags
      method  
      cache   

  private void findSpecializationMethodsWithNodeId(java.util.Set<jdk.vm.ci.meta.ResolvedJavaMethod>, int, java.util.concurrent.ConcurrentHashMap<jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Boolean>);
    descriptor: (Ljava/util/Set;ILjava/util/concurrent/ConcurrentHashMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // java.util.Set specializations
        start local 2 // int nodeId
        start local 3 // java.util.concurrent.ConcurrentHashMap cache
         0: .line 763
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Set int java.util.concurrent.ConcurrentHashMap top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* node */
        start local 4 // org.graalvm.compiler.graph.Node node
         2: .line 764
            aload 4 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6 /* currentPos */
        start local 6 // org.graalvm.compiler.graph.NodeSourcePosition currentPos
         3: .line 765
            goto 10
         4: .line 766
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Set int java.util.concurrent.ConcurrentHashMap org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack:
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getSourceLanguage:()Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            astore 7 /* sourceLang */
        start local 7 // org.graalvm.compiler.graph.SourceLanguagePosition sourceLang
         5: .line 767
            aload 7 /* sourceLang */
            ifnull 9
            aload 7 /* sourceLang */
            invokeinterface org.graalvm.compiler.graph.SourceLanguagePosition.getNodeId:()I
            iload 2 /* nodeId */
            if_icmpne 9
         6: .line 768
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* method */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
         7: .line 769
            aload 8 /* method */
            ifnull 9
            aload 8 /* method */
            aload 3 /* cache */
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.isSpecializationMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/concurrent/ConcurrentHashMap;)Z
            ifeq 9
         8: .line 770
            aload 1 /* specializations */
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod method
         9: .line 773
      StackMap locals: org.graalvm.compiler.graph.SourceLanguagePosition
      StackMap stack:
            aload 6 /* currentPos */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getCaller:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6 /* currentPos */
        end local 7 // org.graalvm.compiler.graph.SourceLanguagePosition sourceLang
        10: .line 765
      StackMap locals:
      StackMap stack:
            aload 6 /* currentPos */
            ifnonnull 4
        end local 6 // org.graalvm.compiler.graph.NodeSourcePosition currentPos
        end local 4 // org.graalvm.compiler.graph.Node node
        11: .line 763
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Set int java.util.concurrent.ConcurrentHashMap top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        12: .line 776
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 15
      StackMap locals:
      StackMap stack:
        13: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 4 /* child */
        start local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode child
        14: .line 777
            aload 4 /* child */
            aload 1 /* specializations */
            iload 2 /* nodeId */
            aload 3 /* cache */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.findSpecializationMethodsWithNodeId:(Ljava/util/Set;ILjava/util/concurrent/ConcurrentHashMap;)V
        end local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode child
        15: .line 776
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 779
            return
        end local 3 // java.util.concurrent.ConcurrentHashMap cache
        end local 2 // int nodeId
        end local 1 // java.util.Set specializations
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   17     1  specializations  Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
            0   17     2           nodeId  I
            0   17     3            cache  Ljava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;
            2   11     4             node  Lorg/graalvm/compiler/graph/Node;
            3   11     6       currentPos  Lorg/graalvm/compiler/graph/NodeSourcePosition;
            5   10     7       sourceLang  Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            7    9     8           method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           14   15     4            child  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    Signature: (Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;ILjava/util/concurrent/ConcurrentHashMap<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Boolean;>;)V
    MethodParameters:
                 Name  Flags
      specializations  
      nodeId           
      cache            

  <T> void acceptStats(java.util.Map<T, org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats>, java.util.function.Function<org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode, T>, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/util/function/Function;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // java.util.Map stats
        start local 2 // java.util.function.Function keyFactory
        start local 3 // java.lang.String compilation
         0: .line 782
            aload 2 /* keyFactory */
            aload 0 /* this */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* key */
        start local 4 // java.lang.Object key
         1: .line 783
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.createSums:()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            astore 5 /* newSum */
        start local 5 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums newSum
         2: .line 784
            aload 1 /* stats */
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats
            astore 6 /* stat */
        start local 6 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats stat
         3: .line 785
            aload 6 /* stat */
            ifnonnull 6
         4: .line 786
            new org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats
            dup
            invokespecial org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats.<init>:()V
            astore 6 /* stat */
         5: .line 787
            aload 1 /* stats */
            aload 4 /* key */
            aload 6 /* stat */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 789
      StackMap locals: java.lang.Object org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats
      StackMap stack:
            aload 6 /* stat */
            aload 5 /* newSum */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            aload 3 /* compilation */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getGraalNodeId:()I
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats.accept:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/lang/String;I)V
         7: .line 790
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Map java.util.function.Function java.lang.String java.lang.Object org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 7 /* tree */
        start local 7 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
         9: .line 791
            aload 7 /* tree */
            aload 1 /* stats */
            aload 2 /* keyFactory */
            aload 3 /* compilation */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.acceptStats:(Ljava/util/Map;Ljava/util/function/Function;Ljava/lang/String;)V
        end local 7 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
        10: .line 790
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 793
            return
        end local 6 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats stat
        end local 5 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums newSum
        end local 4 // java.lang.Object key
        end local 3 // java.lang.String compilation
        end local 2 // java.util.function.Function keyFactory
        end local 1 // java.util.Map stats
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   12     1        stats  Ljava/util/Map<TT;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Stats;>;
            0   12     2   keyFactory  Ljava/util/function/Function<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;TT;>;
            0   12     3  compilation  Ljava/lang/String;
            1   12     4          key  TT;
            2   12     5       newSum  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            3   12     6         stat  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Stats;
            9   10     7         tree  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Map<TT;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Stats;>;Ljava/util/function/Function<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;TT;>;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      stats        
      keyFactory   
      compilation  

  int getGraalNodeId();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 797
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 798
            iconst_m1
            ireturn
         2: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            invokevirtual org.graalvm.compiler.graph.Node.getId:()I
            ireturn
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode groupByNode();
    descriptor: ()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 804
            aload 0 /* this */
            new org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            dup
            aconst_null
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokedynamic apply()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/truffle/compiler/ExpansionStatistics$TreeNode.lambda$1(Lorg/graalvm/compiler/graph/NodeSourcePosition;)Ljava/lang/String; (6)
                  (Lorg/graalvm/compiler/graph/NodeSourcePosition;)Ljava/lang/String;
            invokespecial org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.<init>:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/util/function/Function;)V
         1: .line 810
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  org/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode.lambda$2(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)I (6)
                  (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)I
         2: .line 804
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.newGroup:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            areturn
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode newGroup(org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode, java.util.Comparator<org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode>);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode newNode
        start local 2 // java.util.Comparator comparison
         0: .line 822
            aload 1 /* newNode */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.merge:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)V
         1: .line 823
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* child */
        start local 3 // java.util.Map$Entry child
         3: .line 824
            aload 1 /* newNode */
            aload 3 /* child */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey
            aload 3 /* child */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            aload 2 /* comparison */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.tryMerge:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)V
        end local 3 // java.util.Map$Entry child
         4: .line 823
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 826
            aload 1 /* newNode */
            areturn
        end local 2 // java.util.Comparator comparison
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode newNode
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    6     1     newNode  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    6     2  comparison  Ljava/util/Comparator<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
            3    4     3       child  Ljava/util/Map$Entry<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
    Signature: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;)Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    MethodParameters:
            Name  Flags
      newNode     
      comparison  

  private void tryMerge(org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey, org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode, java.util.Comparator<org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode>);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey method
        start local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
        start local 3 // java.util.Comparator groupCriteria
         0: .line 830
            aload 3 /* groupCriteria */
            aload 0 /* this */
            aload 2 /* tree */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifne 22
         1: .line 832
            aload 0 /* this */
            aload 2 /* tree */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.merge:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)V
         2: .line 833
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            ifnonnull 4
         3: .line 834
            aload 0 /* this */
            aload 2 /* tree */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
         4: .line 837
      StackMap locals:
      StackMap stack:
            aload 2 /* tree */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* child */
        start local 4 // java.util.Map$Entry child
         6: .line 838
            aload 0 /* this */
            aload 4 /* child */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey
            aload 4 /* child */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            aload 3 /* groupCriteria */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.tryMerge:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)V
        end local 4 // java.util.Map$Entry child
         7: .line 837
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 842
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* toRemove */
        start local 4 // java.util.Set toRemove
         9: .line 843
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* mergeChildren */
        start local 5 // java.util.Map mergeChildren
        10: .line 844
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        12: .line 845
            aload 5 /* mergeChildren */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.getTruffleNodeId:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 8 /* mergeTarget */
        start local 8 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode mergeTarget
        13: .line 846
            aload 8 /* mergeTarget */
            ifnull 18
        14: .line 847
            aload 8 /* mergeTarget */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.merge:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)V
        15: .line 848
            aload 8 /* mergeTarget */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        16: .line 849
            aload 4 /* toRemove */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 850
            goto 19
        18: .line 851
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator java.util.Set java.util.Map java.util.Map$Entry java.util.Iterator org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
      StackMap stack:
            aload 5 /* mergeChildren */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.getTruffleNodeId:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode mergeTarget
        end local 6 // java.util.Map$Entry entry
        19: .line 844
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        20: .line 854
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 4 /* toRemove */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        end local 5 // java.util.Map mergeChildren
        end local 4 // java.util.Set toRemove
        21: .line 855
            goto 28
        22: .line 856
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.util.Comparator
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 4 /* newGroup */
        start local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode newGroup
        23: .line 857
            aload 4 /* newGroup */
            ifnonnull 26
        24: .line 858
            new org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            dup
            aload 0 /* this */
            aload 2 /* tree */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.label:Ljava/util/function/Function;
            invokespecial org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.<init>:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljava/util/function/Function;)V
            astore 4 /* newGroup */
        25: .line 859
            goto 27
        26: .line 860
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
      StackMap stack:
            getstatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.$assertionsDisabled:Z
            ifne 27
            aload 4 /* newGroup */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.parent:Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            aload 0 /* this */
            if_acmpeq 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            aload 1 /* method */
            aload 2 /* tree */
            aload 4 /* newGroup */
            aload 3 /* groupCriteria */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.newGroup:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator;)Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode newGroup
        28: .line 864
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Comparator groupCriteria
        end local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey method
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   29     1         method  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;
            0   29     2           tree  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   29     3  groupCriteria  Ljava/util/Comparator<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
            6    7     4          child  Ljava/util/Map$Entry<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
            9   21     4       toRemove  Ljava/util/Set<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;>;
           10   21     5  mergeChildren  Ljava/util/Map<Ljava/lang/Integer;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
           12   19     6          entry  Ljava/util/Map$Entry<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;
           13   19     8    mergeTarget  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
           23   28     4       newGroup  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    Signature: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$MethodKey;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Ljava/util/Comparator<Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;>;)V
    MethodParameters:
               Name  Flags
      method         
      tree           
      groupCriteria  

  private void merge(org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode input
         0: .line 867
            aload 1 /* input */
            ifnonnull 2
         1: .line 868
            return
         2: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            aload 1 /* input */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 871
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
            aload 1 /* input */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
            invokestatic java.lang.Math.max:(DD)D
            putfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
         4: .line 872
            return
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode input
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    5     1  input  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    MethodParameters:
       Name  Flags
      input  

  void print(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // java.io.PrintWriter writer
         0: .line 875
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.maxLabelLength:()I
            iconst_5
            iadd
            sipush 150
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* width */
        start local 2 // int width
         1: .line 876
            aload 1 /* writer */
            iload 2 /* width */
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.printHeader:(Ljava/io/PrintWriter;I)V
         2: .line 877
            aload 0 /* this */
            aload 1 /* writer */
            iload 2 /* width */
            ldc ""
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.printRec:(Ljava/io/PrintWriter;ILjava/lang/String;)V
         3: .line 878
            return
        end local 2 // int width
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    4     1  writer  Ljava/io/PrintWriter;
            1    4     2   width  I
    MethodParameters:
        Name  Flags
      writer  

  private int maxLabelLength();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 881
            iconst_0
            istore 1 /* maxLength */
        start local 1 // int maxLength
         1: .line 882
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 2 /* tree */
        start local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
         3: .line 883
            aload 2 /* tree */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.maxLabelLength:()I
            iload 1 /* maxLength */
            invokestatic java.lang.Math.max:(II)I
            istore 1 /* maxLength */
        end local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
         4: .line 882
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 885
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.depth:()I
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getLabel:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_1
            iadd
            iload 1 /* maxLength */
            invokestatic java.lang.Math.max:(II)I
            ireturn
        end local 1 // int maxLength
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            1    6     1  maxLength  I
            3    4     2       tree  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private int depth();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 889
            iconst_0
            istore 1 /* maxDepth */
        start local 1 // int maxDepth
         1: .line 890
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 2 /* tree */
        start local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
         3: .line 891
            aload 2 /* tree */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.depth:()I
            iload 1 /* maxDepth */
            invokestatic java.lang.Math.max:(II)I
            istore 1 /* maxDepth */
        end local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
         4: .line 890
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 893
            iload 1 /* maxDepth */
            iconst_1
            iadd
            ireturn
        end local 1 // int maxDepth
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            1    6     1  maxDepth  I
            3    4     2      tree  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums createRecursiveSum();
    descriptor: ()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 897
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.createSums:()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            astore 1 /* stats */
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums stats
         1: .line 898
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 2 /* child */
        start local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode child
         3: .line 899
            aload 1 /* stats */
            aload 2 /* child */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.createRecursiveSum:()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.add:(Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;)Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            astore 1 /* stats */
        end local 2 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode child
         4: .line 898
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 901
            aload 1 /* stats */
            areturn
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums stats
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            1    6     1  stats  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            3    4     2  child  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums createSums();
    descriptor: ()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 905
            new org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getGraalNodeId:()I
            invokespecial org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.<init>:(Ljava/util/List;Lorg/graalvm/compiler/graph/NodeSourcePosition;I)V
            areturn
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private static void printHeader(java.io.PrintWriter, int);
    descriptor: (Ljava/io/PrintWriter;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.io.PrintWriter writer
        start local 1 // int width
         0: .line 909
            aload 0 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "%-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         1: .line 910
            ldc "sFrequency | Count    Size  Cycles   Ifs Loops Invokes Allocs | Self Count  Size Cycles   Ifs Loops Invokes Allocs | IRNode ASTNode Lang:File:Line:Chars %n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Name"
            aastore
         2: .line 909
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
         3: .line 911
            return
        end local 1 // int width
        end local 0 // java.io.PrintWriter writer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  writer  Ljava/io/PrintWriter;
            0    4     1   width  I
    MethodParameters:
        Name  Flags
      writer  
      width   

  private void printRec(java.io.PrintWriter, int, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
        start local 1 // java.io.PrintWriter writer
        start local 2 // int width
        start local 3 // java.lang.String sep
         0: .line 914
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.createSums:()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            astore 4 /* shallowStats */
        start local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums shallowStats
         1: .line 915
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.createRecursiveSum:()Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            astore 5 /* deepStats */
        start local 5 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums deepStats
         2: .line 917
            iload 2 /* width */
            aload 3 /* sep */
            invokevirtual java.lang.String.length:()I
            isub
            bipush 10
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* useWidth */
        start local 6 // int useWidth
         3: .line 918
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "%s%-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* useWidth */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "s %8.2f | %5d %7d %7d %5d %5d %7d %6d | %10d %5d %6d %5d %5d %7d %6d | %s %n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            bipush 18
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* sep */
            aastore
            dup
            iconst_1
         4: .line 919
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getLabel:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         5: .line 920
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getFrequency:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_3
         6: .line 921
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.count:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.size:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.cycles:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
         7: .line 922
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.conditions:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 7
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.loops:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 8
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.invokes:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 9
            aload 5 /* deepStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.allocs:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 10
         8: .line 923
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.count:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 11
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.size:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 12
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.cycles:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 13
         9: .line 924
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.conditions:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 14
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.loops:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 15
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.invokes:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 16
            aload 4 /* shallowStats */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums.allocs:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 17
        10: .line 925
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getSourceString:()Ljava/lang/String;
            aastore
        11: .line 918
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        12: .line 926
            new java.lang.StringBuilder
            dup
            aload 3 /* sep */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* newSep */
        start local 7 // java.lang.String newSep
        13: .line 927
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.children:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 16
      StackMap locals: org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode java.io.PrintWriter int java.lang.String org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums int java.lang.String top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode
            astore 8 /* tree */
        start local 8 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
        15: .line 928
            aload 8 /* tree */
            aload 1 /* writer */
            iload 2 /* width */
            aload 7 /* newSep */
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.printRec:(Ljava/io/PrintWriter;ILjava/lang/String;)V
        end local 8 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode tree
        16: .line 927
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 930
            return
        end local 7 // java.lang.String newSep
        end local 6 // int useWidth
        end local 5 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums deepStats
        end local 4 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums shallowStats
        end local 3 // java.lang.String sep
        end local 2 // int width
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0   18     1        writer  Ljava/io/PrintWriter;
            0   18     2         width  I
            0   18     3           sep  Ljava/lang/String;
            1   18     4  shallowStats  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            2   18     5     deepStats  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$Sums;
            3   18     6      useWidth  I
           13   18     7        newSep  Ljava/lang/String;
           15   16     8          tree  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
    MethodParameters:
        Name  Flags
      writer  
      width   
      sep     

  private double getFrequency();
    descriptor: ()D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 933
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.parent:Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            ifnonnull 2
         1: .line 938
            dconst_1
            dreturn
         2: .line 940
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
            ldc -0.0
            dcmpl
            ifne 4
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.parent:Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            ifnull 4
         3: .line 941
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.parent:Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            invokevirtual org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.getFrequency:()D
            dreturn
         4: .line 943
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.frequency:D
            dreturn
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private java.lang.String getSourceString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 949
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            ifnonnull 2
         1: .line 950
            ldc " - "
            areturn
         2: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getSourceLanguage:()Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            astore 1 /* source */
        start local 1 // org.graalvm.compiler.graph.SourceLanguagePosition source
         3: .line 953
            ldc ""
            astore 2 /* irNode */
        start local 2 // java.lang.String irNode
         4: .line 954
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 6
         5: .line 955
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.graalNodes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            invokevirtual org.graalvm.compiler.graph.Node.getId:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 2 /* irNode */
         6: .line 958
      StackMap locals: org.graalvm.compiler.graph.SourceLanguagePosition java.lang.String
      StackMap stack:
            ldc ""
            astore 3 /* astNode */
        start local 3 // java.lang.String astNode
         7: .line 959
            ldc ""
            astore 4 /* sourceString */
        start local 4 // java.lang.String sourceString
         8: .line 960
            aload 1 /* source */
            ifnull 12
         9: .line 961
            aload 1 /* source */
            invokeinterface org.graalvm.compiler.graph.SourceLanguagePosition.getNodeId:()I
            iconst_m1
            if_icmpeq 11
        10: .line 962
            aload 1 /* source */
            invokeinterface org.graalvm.compiler.graph.SourceLanguagePosition.getNodeId:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 3 /* astNode */
        11: .line 964
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.formatSource:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)Ljava/lang/String;
            astore 4 /* sourceString */
        12: .line 966
      StackMap locals:
      StackMap stack:
            ldc "%6s %7s %6s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* irNode */
            aastore
            dup
            iconst_1
            aload 3 /* astNode */
            aastore
            dup
            iconst_2
            aload 4 /* sourceString */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String sourceString
        end local 3 // java.lang.String astNode
        end local 2 // java.lang.String irNode
        end local 1 // org.graalvm.compiler.graph.SourceLanguagePosition source
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            3   13     1        source  Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            4   13     2        irNode  Ljava/lang/String;
            7   13     3       astNode  Ljava/lang/String;
            8   13     4  sourceString  Ljava/lang/String;

  private java.lang.String getLabel();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
         0: .line 970
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.label:Ljava/util/function/Function;
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;

  private static java.lang.Boolean lambda$0(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
         0: .line 759
            invokestatic org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/common/TruffleCompilerRuntime;
            aload 0 /* m */
            invokeinterface org.graalvm.compiler.truffle.common.TruffleCompilerRuntime.isSpecializationMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljdk/vm/ci/meta/ResolvedJavaMethod;

  private static java.lang.String lambda$1(org.graalvm.compiler.graph.NodeSourcePosition);
    descriptor: (Lorg/graalvm/compiler/graph/NodeSourcePosition;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.NodeSourcePosition n
         0: .line 805
            aload 0 /* n */
            ifnull 2
            aload 0 /* n */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getSourceLanguage:()Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            ifnull 2
         1: .line 806
            aload 0 /* n */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getSourceLanguage:()Lorg/graalvm/compiler/graph/SourceLanguagePosition;
            invokeinterface org.graalvm.compiler.graph.SourceLanguagePosition.getNodeClassName:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.formatClassName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         2: .line 808
      StackMap locals:
      StackMap stack:
            ldc "<call-root>"
            areturn
        end local 0 // org.graalvm.compiler.graph.NodeSourcePosition n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     n  Lorg/graalvm/compiler/graph/NodeSourcePosition;

  private static int lambda$2(org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode, org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode);
    descriptor: (Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode t0
        start local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode t1
         0: .line 811
            aload 0 /* t0 */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.getTruffleNodeId:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)I
            istore 2 /* id0 */
        start local 2 // int id0
         1: .line 812
            aload 1 /* t1 */
            getfield org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode.position:Lorg/graalvm/compiler/graph/NodeSourcePosition;
            invokestatic org.graalvm.compiler.truffle.compiler.ExpansionStatistics.getTruffleNodeId:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)I
            istore 3 /* id1 */
        start local 3 // int id1
         2: .line 813
            iload 2 /* id0 */
            iload 3 /* id1 */
            if_icmpeq 3
            iload 2 /* id0 */
            iconst_m1
            if_icmpeq 4
            iload 3 /* id1 */
            iconst_m1
            if_icmpne 4
         3: .line 814
      StackMap locals: int int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 816
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int id1
        end local 2 // int id0
        end local 1 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode t1
        end local 0 // org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode t0
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    t0  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            0    5     1    t1  Lorg/graalvm/compiler/truffle/compiler/ExpansionStatistics$TreeNode;
            1    5     2   id0  I
            2    5     3   id1  I
}
SourceFile: "ExpansionStatistics.java"
NestHost: org.graalvm.compiler.truffle.compiler.ExpansionStatistics
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private MethodKey = org.graalvm.compiler.truffle.compiler.ExpansionStatistics$MethodKey of org.graalvm.compiler.truffle.compiler.ExpansionStatistics
  final Stats = org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Stats of org.graalvm.compiler.truffle.compiler.ExpansionStatistics
  Sums = org.graalvm.compiler.truffle.compiler.ExpansionStatistics$Sums of org.graalvm.compiler.truffle.compiler.ExpansionStatistics
  final TreeNode = org.graalvm.compiler.truffle.compiler.ExpansionStatistics$TreeNode of org.graalvm.compiler.truffle.compiler.ExpansionStatistics