public class org.graalvm.compiler.nodes.util.GraphUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.nodes.util.GraphUtil
  super_class: java.lang.Object
{
  public static final int MAX_FRAMESTATE_SEARCH_DEPTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  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 103
            ldc Lorg/graalvm/compiler/nodes/util/GraphUtil;
            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.nodes.util.GraphUtil.$assertionsDisabled:Z
         3: .line 110
            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.nodes.util.GraphUtil this
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.nodes.util.GraphUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/util/GraphUtil;

  private static void killCFGInner(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedNode node
         0: .line 113
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:()Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 1 /* markedNodes */
        start local 1 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
         1: .line 114
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 2 /* unmarkedMerges */
        start local 2 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
         2: .line 117
            aload 0 /* node */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
         3: .line 119
            aload 0 /* node */
            aload 1 /* markedNodes */
            aload 2 /* unmarkedMerges */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.markFixedNodes:(Lorg/graalvm/compiler/nodes/FixedNode;Ljdk/internal/vm/compiler/collections/EconomicSet;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
         4: .line 121
            aload 1 /* markedNodes */
            aload 2 /* unmarkedMerges */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.fixSurvivingAffectedMerges:(Ljdk/internal/vm/compiler/collections/EconomicSet;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
         5: .line 123
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         6: .line 124
            aload 3 /* debug */
            iconst_4
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After fixing merges (killCFG %s)"
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 127
            aload 1 /* markedNodes */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.markUsages:(Ljdk/internal/vm/compiler/collections/EconomicSet;)V
         8: .line 130
            aload 1 /* markedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.debug.DebugContext top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* marked */
        start local 4 // org.graalvm.compiler.graph.Node marked
        10: .line 131
            aload 4 /* marked */
            invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* input */
        start local 6 // org.graalvm.compiler.graph.Node input
        12: .line 132
            aload 1 /* markedNodes */
            aload 6 /* input */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 15
        13: .line 133
            aload 4 /* marked */
            aload 6 /* input */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.Node.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
        14: .line 134
            aload 6 /* input */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
        end local 6 // org.graalvm.compiler.graph.Node input
        15: .line 131
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 4 // org.graalvm.compiler.graph.Node marked
        16: .line 130
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.debug.DebugContext top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        17: .line 138
            aload 3 /* debug */
            iconst_5
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After disconnecting non-marked inputs (killCFG %s)"
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 140
            aload 1 /* markedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals:
      StackMap stack:
        19: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* marked */
        start local 4 // org.graalvm.compiler.graph.Node marked
        20: .line 141
            aload 4 /* marked */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifeq 22
        21: .line 142
            aload 4 /* marked */
            invokevirtual org.graalvm.compiler.graph.Node.markDeleted:()V
        end local 4 // org.graalvm.compiler.graph.Node marked
        22: .line 140
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        23: .line 145
            return
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
        end local 1 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
        end local 0 // org.graalvm.compiler.nodes.FixedNode node
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            node  Lorg/graalvm/compiler/nodes/FixedNode;
            1   24     1     markedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            2   24     2  unmarkedMerges  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;
            6   24     3           debug  Lorg/graalvm/compiler/debug/DebugContext;
           10   16     4          marked  Lorg/graalvm/compiler/graph/Node;
           12   15     6           input  Lorg/graalvm/compiler/graph/Node;
           20   22     4          marked  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  private static void markFixedNodes(org.graalvm.compiler.nodes.FixedNode, jdk.internal.vm.compiler.collections.EconomicSet<org.graalvm.compiler.graph.Node>, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List<org.graalvm.compiler.nodes.AbstractEndNode>>);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Ljdk/internal/vm/compiler/collections/EconomicSet;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // org.graalvm.compiler.nodes.FixedNode node
        start local 1 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
        start local 2 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
         0: .line 148
            new org.graalvm.compiler.graph.NodeStack
            dup
            invokespecial org.graalvm.compiler.graph.NodeStack.<init>:()V
            astore 3 /* workStack */
        start local 3 // org.graalvm.compiler.graph.NodeStack workStack
         1: .line 149
            aload 3 /* workStack */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
         2: .line 150
            goto 38
         3: .line 151
      StackMap locals: org.graalvm.compiler.graph.NodeStack
      StackMap stack:
            aload 3 /* workStack */
            invokevirtual org.graalvm.compiler.graph.NodeStack.pop:()Lorg/graalvm/compiler/graph/Node;
            astore 4 /* fixedNode */
        start local 4 // org.graalvm.compiler.graph.Node fixedNode
         4: .line 152
            aload 1 /* markedNodes */
            aload 4 /* fixedNode */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
         5: .line 153
            aload 4 /* fixedNode */
            instanceof org.graalvm.compiler.nodes.AbstractMergeNode
            ifeq 11
         6: .line 154
            aload 2 /* unmarkedMerges */
            aload 4 /* fixedNode */
            checkcast org.graalvm.compiler.nodes.AbstractMergeNode
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 156
            goto 11
         8: .line 157
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 4 /* fixedNode */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 4 /* fixedNode */
         9: .line 158
            aload 4 /* fixedNode */
            ifnull 11
        10: .line 159
            aload 1 /* markedNodes */
            aload 4 /* fixedNode */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        11: .line 156
      StackMap locals:
      StackMap stack:
            aload 4 /* fixedNode */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifne 8
        12: .line 162
            aload 4 /* fixedNode */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 18
        13: .line 163
            aload 4 /* fixedNode */
            invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.NodeStack org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
        14: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* successor */
        start local 5 // org.graalvm.compiler.graph.Node successor
        15: .line 164
            aload 3 /* workStack */
            aload 5 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
        end local 5 // org.graalvm.compiler.graph.Node successor
        16: .line 163
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 166
            goto 38
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.NodeStack org.graalvm.compiler.graph.Node
      StackMap stack:
        18: aload 4 /* fixedNode */
            instanceof org.graalvm.compiler.nodes.AbstractEndNode
            ifeq 38
        19: .line 167
            aload 4 /* fixedNode */
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            astore 5 /* end */
        start local 5 // org.graalvm.compiler.nodes.AbstractEndNode end
        20: .line 168
            aload 5 /* end */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            astore 6 /* merge */
        start local 6 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        21: .line 169
            aload 6 /* merge */
            ifnull 38
        22: .line 170
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 24
            aload 1 /* markedNodes */
            aload 6 /* merge */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 24
            aload 6 /* merge */
            instanceof org.graalvm.compiler.nodes.LoopBeginNode
            ifeq 23
            aload 5 /* end */
            instanceof org.graalvm.compiler.nodes.LoopEndNode
            ifne 24
      StackMap locals: org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.AbstractMergeNode
      StackMap stack:
        23: new java.lang.AssertionError
            dup
            aload 6 /* merge */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        24: .line 171
      StackMap locals:
      StackMap stack:
            aload 6 /* merge */
            instanceof org.graalvm.compiler.nodes.LoopBeginNode
            ifeq 30
        25: .line 172
            aload 5 /* end */
            aload 6 /* merge */
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            if_acmpne 28
        26: .line 173
            aload 3 /* workStack */
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
        27: .line 174
            goto 38
        28: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* markedNodes */
            aload 6 /* merge */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 177
            goto 38
        30: .line 180
      StackMap locals:
      StackMap stack:
            aload 2 /* unmarkedMerges */
            aload 6 /* merge */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* endsSeen */
        start local 7 // java.util.List endsSeen
        31: .line 181
            aload 7 /* endsSeen */
            ifnonnull 34
        32: .line 182
            new java.util.ArrayList
            dup
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* endsSeen */
        33: .line 183
            aload 2 /* unmarkedMerges */
            aload 6 /* merge */
            aload 7 /* endsSeen */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 185
      StackMap locals: java.util.List
      StackMap stack:
            aload 7 /* endsSeen */
            aload 5 /* end */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        35: .line 186
            aload 5 /* end */
            instanceof org.graalvm.compiler.nodes.LoopEndNode
            ifne 38
            aload 7 /* endsSeen */
            invokeinterface java.util.List.size:()I
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
            if_icmpne 38
        36: .line 187
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 37
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
            aload 1 /* markedNodes */
            invokedynamic apply(Ljdk/internal/vm/compiler/collections/EconomicSet;)Lorg/graalvm/compiler/graph/iterators/NodePredicate;
              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:
                  (Lorg/graalvm/compiler/graph/Node;)Z
                  org/graalvm/compiler/nodes/util/GraphUtil.lambda$0(Ljdk/internal/vm/compiler/collections/EconomicSet;Lorg/graalvm/compiler/graph/Node;)Z (6)
                  (Lorg/graalvm/compiler/graph/Node;)Z
            invokevirtual org.graalvm.compiler.graph.NodeInputList.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
            invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.isEmpty:()Z
            ifne 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* workStack */
            aload 6 /* merge */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
        end local 7 // java.util.List endsSeen
        end local 6 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        end local 5 // org.graalvm.compiler.nodes.AbstractEndNode end
        end local 4 // org.graalvm.compiler.graph.Node fixedNode
        38: .line 150
      StackMap locals: org.graalvm.compiler.nodes.FixedNode jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.compiler.graph.NodeStack
      StackMap stack:
            aload 3 /* workStack */
            invokevirtual org.graalvm.compiler.graph.NodeStack.isEmpty:()Z
            ifeq 3
        39: .line 194
            return
        end local 3 // org.graalvm.compiler.graph.NodeStack workStack
        end local 2 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
        end local 1 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
        end local 0 // org.graalvm.compiler.nodes.FixedNode node
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            node  Lorg/graalvm/compiler/nodes/FixedNode;
            0   40     1     markedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            0   40     2  unmarkedMerges  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;
            1   40     3       workStack  Lorg/graalvm/compiler/graph/NodeStack;
            4   38     4       fixedNode  Lorg/graalvm/compiler/graph/Node;
           15   16     5       successor  Lorg/graalvm/compiler/graph/Node;
           20   38     5             end  Lorg/graalvm/compiler/nodes/AbstractEndNode;
           21   38     6           merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
           31   38     7        endsSeen  Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;
    Signature: (Lorg/graalvm/compiler/nodes/FixedNode;Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;)V
    MethodParameters:
                Name  Flags
      node            
      markedNodes     
      unmarkedMerges  

  private static void fixSurvivingAffectedMerges(jdk.internal.vm.compiler.collections.EconomicSet<org.graalvm.compiler.graph.Node>, jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List<org.graalvm.compiler.nodes.AbstractEndNode>>);
    descriptor: (Ljdk/internal/vm/compiler/collections/EconomicSet;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
        start local 1 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
         0: .line 197
            aload 1 /* unmarkedMerges */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getEntries:()Ljdk/internal/vm/compiler/collections/MapCursor;
            astore 2 /* cursor */
        start local 2 // jdk.internal.vm.compiler.collections.MapCursor cursor
         1: .line 198
            goto 21
         2: .line 199
      StackMap locals: jdk.internal.vm.compiler.collections.MapCursor
      StackMap stack:
            aload 2 /* cursor */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractMergeNode
            astore 3 /* merge */
        start local 3 // org.graalvm.compiler.nodes.AbstractMergeNode merge
         3: .line 200
            aload 2 /* cursor */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor org.graalvm.compiler.nodes.AbstractMergeNode top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            astore 4 /* end */
        start local 4 // org.graalvm.compiler.nodes.AbstractEndNode end
         5: .line 201
            aload 3 /* merge */
            aload 4 /* end */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        end local 4 // org.graalvm.compiler.nodes.AbstractEndNode end
         6: .line 200
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 203
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phiPredecessorCount:()I
            iconst_1
            if_icmpne 20
         8: .line 204
            aload 3 /* merge */
            instanceof org.graalvm.compiler.nodes.LoopBeginNode
            ifeq 18
         9: .line 205
            aload 3 /* merge */
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            astore 4 /* loopBegin */
        start local 4 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        10: .line 206
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 11
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEndCount:()I
            iconst_1
            if_icmpeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 207
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.LoopBeginNode
      StackMap stack:
            aload 4 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopExits:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            astore 5 /* loopExit */
        start local 5 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        13: .line 208
            aload 0 /* markedNodes */
            aload 5 /* loopExit */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 213
            aload 5 /* loopExit */
            aload 4 /* loopBegin */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
        end local 5 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        15: .line 207
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 216
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 4 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.reduceDegenerateLoopBegin:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
        end local 4 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        17: .line 217
            goto 21
        18: .line 218
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicMap jdk.internal.vm.compiler.collections.MapCursor org.graalvm.compiler.nodes.AbstractMergeNode
      StackMap stack:
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.reduceTrivialMerge:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
        19: .line 220
            goto 21
        20: .line 221
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 21
            aload 3 /* merge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.phiPredecessorCount:()I
            iconst_1
            if_icmpgt 21
            new java.lang.AssertionError
            dup
            aload 3 /* merge */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        21: .line 198
      StackMap locals:
      StackMap stack:
            aload 2 /* cursor */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.advance:()Z
            ifne 2
        22: .line 224
            return
        end local 2 // jdk.internal.vm.compiler.collections.MapCursor cursor
        end local 1 // jdk.internal.vm.compiler.collections.EconomicMap unmarkedMerges
        end local 0 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0     markedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            0   23     1  unmarkedMerges  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;
            1   23     2          cursor  Ljdk/internal/vm/compiler/collections/MapCursor<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;
            3   21     3           merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            5    6     4             end  Lorg/graalvm/compiler/nodes/AbstractEndNode;
           10   17     4       loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           13   15     5        loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
    Signature: (Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractEndNode;>;>;)V
    MethodParameters:
                Name  Flags
      markedNodes     
      unmarkedMerges  

  private static void markUsages(jdk.internal.vm.compiler.collections.EconomicSet<org.graalvm.compiler.graph.Node>);
    descriptor: (Ljdk/internal/vm/compiler/collections/EconomicSet;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
         0: .line 227
            new org.graalvm.compiler.graph.NodeStack
            dup
            aload 0 /* markedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.size:()I
            iconst_4
            iadd
            invokespecial org.graalvm.compiler.graph.NodeStack.<init>:(I)V
            astore 1 /* workStack */
        start local 1 // org.graalvm.compiler.graph.NodeStack workStack
         1: .line 228
            aload 0 /* markedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.NodeStack top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* marked */
        start local 2 // org.graalvm.compiler.graph.Node marked
         3: .line 229
            aload 1 /* workStack */
            aload 2 /* marked */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
        end local 2 // org.graalvm.compiler.graph.Node marked
         4: .line 228
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 231
            goto 13
         6: .line 232
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.NodeStack
      StackMap stack:
            aload 1 /* workStack */
            invokevirtual org.graalvm.compiler.graph.NodeStack.pop:()Lorg/graalvm/compiler/graph/Node;
            astore 2 /* marked */
        start local 2 // org.graalvm.compiler.graph.Node marked
         7: .line 233
            aload 2 /* marked */
            invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.NodeStack org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 3 /* usage */
        start local 3 // org.graalvm.compiler.graph.Node usage
         9: .line 234
            aload 0 /* markedNodes */
            aload 3 /* usage */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 12
        10: .line 235
            aload 1 /* workStack */
            aload 3 /* usage */
            invokevirtual org.graalvm.compiler.graph.NodeStack.push:(Lorg/graalvm/compiler/graph/Node;)V
        11: .line 236
            aload 0 /* markedNodes */
            aload 3 /* usage */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.graalvm.compiler.graph.Node usage
        12: .line 233
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 2 // org.graalvm.compiler.graph.Node marked
        13: .line 231
      StackMap locals: jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.NodeStack
      StackMap stack:
            aload 1 /* workStack */
            invokevirtual org.graalvm.compiler.graph.NodeStack.isEmpty:()Z
            ifeq 6
        14: .line 240
            return
        end local 1 // org.graalvm.compiler.graph.NodeStack workStack
        end local 0 // jdk.internal.vm.compiler.collections.EconomicSet markedNodes
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0  markedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            1   15     1    workStack  Lorg/graalvm/compiler/graph/NodeStack;
            3    4     2       marked  Lorg/graalvm/compiler/graph/Node;
            7   13     2       marked  Lorg/graalvm/compiler/graph/Node;
            9   12     3        usage  Lorg/graalvm/compiler/graph/Node;
    Signature: (Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
             Name  Flags
      markedNodes  

  public static void killCFG(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedNode node
         0: .line 244
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 1 /* debug */
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 245
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 1 /* debug */
            ldc "KillCFG"
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 4 /* scope */
        start local 4 // org.graalvm.compiler.debug.DebugContext$Scope scope
         3: .line 246
            aconst_null
            astore 5 /* unusedNodes */
        start local 5 // jdk.internal.vm.compiler.collections.EconomicSet unusedNodes
         4: .line 247
            aconst_null
            astore 6 /* unsafeNodes */
        start local 6 // jdk.internal.vm.compiler.collections.EconomicSet unsafeNodes
         5: .line 248
            aconst_null
            astore 7 /* nodeEventScope */
        start local 7 // org.graalvm.compiler.graph.Graph$NodeEventScope nodeEventScope
         6: .line 249
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            astore 8 /* options */
        start local 8 // org.graalvm.compiler.options.OptionValues options
         7: .line 250
            getstatic org.graalvm.compiler.graph.Graph$Options.VerifyGraalGraphEdges:Lorg/graalvm/compiler/options/OptionKey;
            aload 8 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 9 /* verifyGraalGraphEdges */
        start local 9 // boolean verifyGraalGraphEdges
         8: .line 251
            getstatic org.graalvm.compiler.nodes.util.GraphUtil$Options.VerifyKillCFGUnusedNodes:Lorg/graalvm/compiler/options/OptionKey;
            aload 8 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 10 /* verifyKillCFGUnusedNodes */
        start local 10 // boolean verifyKillCFGUnusedNodes
         9: .line 252
            iload 9 /* verifyGraalGraphEdges */
            ifeq 11
        10: .line 253
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.collectUnsafeNodes:(Lorg/graalvm/compiler/graph/Graph;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 6 /* unsafeNodes */
        11: .line 255
      StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope jdk.internal.vm.compiler.collections.EconomicSet jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.Graph$NodeEventScope org.graalvm.compiler.options.OptionValues int int
      StackMap stack:
            iload 10 /* verifyKillCFGUnusedNodes */
            ifeq 14
        12: .line 256
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            dup
            astore 5 /* unusedNodes */
            astore 11 /* collectedUnusedNodes */
        start local 11 // jdk.internal.vm.compiler.collections.EconomicSet collectedUnusedNodes
        13: .line 257
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.util.GraphUtil$1
            dup
            aload 11 /* collectedUnusedNodes */
            invokespecial org.graalvm.compiler.nodes.util.GraphUtil$1.<init>:(Ljdk/internal/vm/compiler/collections/EconomicSet;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeEvents:(Lorg/graalvm/compiler/graph/Graph$NodeEventListener;)Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            astore 7 /* nodeEventScope */
        end local 11 // jdk.internal.vm.compiler.collections.EconomicSet collectedUnusedNodes
        14: .line 266
      StackMap locals:
      StackMap stack:
            aload 1 /* debug */
            iconst_5
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "Before killCFG %s"
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 267
            aload 0 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFGInner:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        16: .line 268
            aload 1 /* debug */
            iconst_5
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After killCFG %s"
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        17: .line 269
            iload 9 /* verifyGraalGraphEdges */
            ifeq 21
        18: .line 270
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.collectUnsafeNodes:(Lorg/graalvm/compiler/graph/Graph;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 11 /* newUnsafeNodes */
        start local 11 // jdk.internal.vm.compiler.collections.EconomicSet newUnsafeNodes
        19: .line 271
            aload 11 /* newUnsafeNodes */
            aload 6 /* unsafeNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.removeAll:(Ljdk/internal/vm/compiler/collections/EconomicSet;)V
        20: .line 272
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 21
            aload 11 /* newUnsafeNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.isEmpty:()Z
            ifne 21
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "New unsafe nodes: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* newUnsafeNodes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 11 // jdk.internal.vm.compiler.collections.EconomicSet newUnsafeNodes
        21: .line 274
      StackMap locals:
      StackMap stack:
            iload 10 /* verifyKillCFGUnusedNodes */
            ifeq 30
        22: .line 275
            aload 7 /* nodeEventScope */
            invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
        23: .line 276
            aload 5 /* unusedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 11 /* iterator */
        start local 11 // java.util.Iterator iterator
        24: .line 277
            goto 28
        25: .line 278
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 11 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 12 /* curNode */
        start local 12 // org.graalvm.compiler.graph.Node curNode
        26: .line 279
            aload 12 /* curNode */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
            ifeq 28
        27: .line 280
            aload 11 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 12 // org.graalvm.compiler.graph.Node curNode
        28: .line 277
      StackMap locals:
      StackMap stack:
            aload 11 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        29: .line 283
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 30
            aload 5 /* unusedNodes */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.isEmpty:()Z
            ifne 30
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "New unused nodes: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* unusedNodes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 11 // java.util.Iterator iterator
        end local 10 // boolean verifyKillCFGUnusedNodes
        end local 9 // boolean verifyGraalGraphEdges
        end local 8 // org.graalvm.compiler.options.OptionValues options
        end local 7 // org.graalvm.compiler.graph.Graph$NodeEventScope nodeEventScope
        end local 6 // jdk.internal.vm.compiler.collections.EconomicSet unsafeNodes
        end local 5 // jdk.internal.vm.compiler.collections.EconomicSet unusedNodes
        30: .line 285
      StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack:
            aload 4 /* scope */
            ifnull 38
            aload 4 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 2
            aload 4 /* scope */
            ifnull 32
            aload 4 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 4 // org.graalvm.compiler.debug.DebugContext$Scope scope
      StackMap locals:
      StackMap stack:
        32: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 3
            aload 2
            ifnonnull 34
            aload 3
            astore 2
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 2
            aload 3
            if_acmpeq 35
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 2
            athrow
      StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.debug.DebugContext
      StackMap stack: java.lang.Throwable
        36: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        37: .line 286
            aload 1 /* debug */
            aload 2 /* t */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        38: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.nodes.FixedNode node
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   39     0                      node  Lorg/graalvm/compiler/nodes/FixedNode;
            1   39     1                     debug  Lorg/graalvm/compiler/debug/DebugContext;
            3   32     4                     scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            4   30     5               unusedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            5   30     6               unsafeNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            6   30     7            nodeEventScope  Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            7   30     8                   options  Lorg/graalvm/compiler/options/OptionValues;
            8   30     9     verifyGraalGraphEdges  Z
            9   30    10  verifyKillCFGUnusedNodes  Z
           13   14    11      collectedUnusedNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
           19   21    11            newUnsafeNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
           24   30    11                  iterator  Ljava/util/Iterator<Lorg/graalvm/compiler/graph/Node;>;
           26   28    12                   curNode  Lorg/graalvm/compiler/graph/Node;
           37   38     2                         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    30      31  any
           2    33      33  any
           1    36      36  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      node  

  private static jdk.internal.vm.compiler.collections.EconomicSet<org.graalvm.compiler.graph.Node> collectUnsafeNodes(org.graalvm.compiler.graph.Graph);
    descriptor: (Lorg/graalvm/compiler/graph/Graph;)Ljdk/internal/vm/compiler/collections/EconomicSet;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.graalvm.compiler.graph.Graph graph
         0: .line 294
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 1 /* unsafeNodes */
        start local 1 // jdk.internal.vm.compiler.collections.EconomicSet unsafeNodes
         1: .line 295
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.graph.Graph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.graalvm.compiler.graph.Graph jdk.internal.vm.compiler.collections.EconomicSet top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         3: .line 296
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.inputPositions:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.graalvm.compiler.graph.Graph jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Position
            astore 4 /* pos */
        start local 4 // org.graalvm.compiler.graph.Position pos
         5: .line 297
            aload 4 /* pos */
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Position.get:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            astore 6 /* input */
        start local 6 // org.graalvm.compiler.graph.Node input
         6: .line 298
            aload 6 /* input */
            ifnonnull 9
         7: .line 299
            aload 4 /* pos */
            invokevirtual org.graalvm.compiler.graph.Position.isInputOptional:()Z
            ifne 9
         8: .line 300
            aload 1 /* unsafeNodes */
            aload 2 /* n */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.graalvm.compiler.graph.Node input
        end local 4 // org.graalvm.compiler.graph.Position pos
         9: .line 296
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // org.graalvm.compiler.graph.Node n
        10: .line 295
      StackMap locals: org.graalvm.compiler.graph.Graph jdk.internal.vm.compiler.collections.EconomicSet top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 305
            aload 1 /* unsafeNodes */
            areturn
        end local 1 // jdk.internal.vm.compiler.collections.EconomicSet unsafeNodes
        end local 0 // org.graalvm.compiler.graph.Graph graph
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0        graph  Lorg/graalvm/compiler/graph/Graph;
            1   12     1  unsafeNodes  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            3   10     2            n  Lorg/graalvm/compiler/graph/Node;
            5    9     4          pos  Lorg/graalvm/compiler/graph/Position;
            6    9     6        input  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/graph/Graph;)Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
    MethodParameters:
       Name  Flags
      graph  

  public static boolean isFloatingNode(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node n
         0: .line 309
            aload 0 /* n */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.graalvm.compiler.graph.Node n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     n  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      n     

  private static boolean checkKill(org.graalvm.compiler.graph.Node, boolean);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.graph.Node node
        start local 1 // boolean mayKillGuard
         0: .line 313
            aload 0 /* node */
            iload 1 /* mayKillGuard */
            ifne 1
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.GuardNode
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: org.graalvm.compiler.graph.Node
         1: iconst_1
      StackMap locals: org.graalvm.compiler.graph.Node int
      StackMap stack: org.graalvm.compiler.graph.Node int
         2: ldc "must not be a guard node %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* node */
            aastore
            invokevirtual org.graalvm.compiler.graph.Node.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
            pop
         3: .line 314
            aload 0 /* node */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ldc "must be alive"
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.graph.Node.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
            pop
         4: .line 315
            aload 0 /* node */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.hasNoUsages:()Z
            ldc "cannot kill node %s because of usages: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* node */
            aastore
            dup
            iconst_1
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aastore
            invokevirtual org.graalvm.compiler.graph.Node.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
            pop
         5: .line 316
            aload 0 /* node */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: org.graalvm.compiler.graph.Node
         6: iconst_0
      StackMap locals: org.graalvm.compiler.graph.Node int
      StackMap stack: org.graalvm.compiler.graph.Node int
         7: ldc "cannot kill node %s because of predecessor: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* node */
            aastore
            dup
            iconst_1
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            aastore
            invokevirtual org.graalvm.compiler.graph.Node.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)Z
            pop
         8: .line 317
            iconst_1
            ireturn
        end local 1 // boolean mayKillGuard
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          node  Lorg/graalvm/compiler/graph/Node;
            0    9     1  mayKillGuard  Z
    MethodParameters:
              Name  Flags
      node          
      mayKillGuard  

  public static void killWithUnusedFloatingInputs(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 321
            aload 0 /* node */
            iconst_0
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;Z)V
         1: .line 322
            return
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  public static void killWithUnusedFloatingInputs(org.graalvm.compiler.graph.Node, boolean);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.graph.Node node
        start local 1 // boolean mayKillGuard
         0: .line 325
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 1
            aload 0 /* node */
            iload 1 /* mayKillGuard */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkKill:(Lorg/graalvm/compiler/graph/Node;Z)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.markDeleted:()V
         2: .line 327
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 21
      StackMap locals: org.graalvm.compiler.graph.Node int top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* in */
        start local 2 // org.graalvm.compiler.graph.Node in
         4: .line 328
            aload 2 /* in */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifeq 21
         5: .line 329
            aload 2 /* in */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.removeUsage:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
         6: .line 330
            aload 2 /* in */
            invokevirtual org.graalvm.compiler.graph.Node.hasNoUsages:()Z
            ifeq 8
         7: .line 331
            aload 0 /* node */
            aload 2 /* in */
            invokevirtual org.graalvm.compiler.graph.Node.maybeNotifyZeroUsages:(Lorg/graalvm/compiler/graph/Node;)V
         8: .line 333
      StackMap locals: org.graalvm.compiler.graph.Node int org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 2 /* in */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.isFloatingNode:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 21
         9: .line 334
            aload 2 /* in */
            invokevirtual org.graalvm.compiler.graph.Node.hasNoUsages:()Z
            ifeq 13
        10: .line 335
            aload 2 /* in */
            instanceof org.graalvm.compiler.nodes.GuardNode
            ifne 21
        11: .line 338
            aload 2 /* in */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        12: .line 340
            goto 21
      StackMap locals:
      StackMap stack:
        13: aload 2 /* in */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 21
        14: .line 341
            aload 2 /* in */
            invokevirtual org.graalvm.compiler.graph.Node.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: org.graalvm.compiler.graph.Node int org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* use */
        start local 4 // org.graalvm.compiler.graph.Node use
        16: .line 342
            aload 4 /* use */
            aload 2 /* in */
            if_acmpeq 18
        17: .line 343
            goto 21
        end local 4 // org.graalvm.compiler.graph.Node use
        18: .line 341
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        19: .line 346
            aload 2 /* in */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        20: .line 347
            aload 2 /* in */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 2 // org.graalvm.compiler.graph.Node in
        21: .line 327
      StackMap locals: org.graalvm.compiler.graph.Node int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        22: .line 352
            return
        end local 1 // boolean mayKillGuard
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          node  Lorg/graalvm/compiler/graph/Node;
            0   23     1  mayKillGuard  Z
            4   21     2            in  Lorg/graalvm/compiler/graph/Node;
           16   18     4           use  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
              Name  Flags
      node          
      mayKillGuard  

  public static void removeNewNodes(org.graalvm.compiler.graph.Graph, org.graalvm.compiler.graph.Graph$Mark);
    descriptor: (Lorg/graalvm/compiler/graph/Graph;Lorg/graalvm/compiler/graph/Graph$Mark;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.graph.Graph graph
        start local 1 // org.graalvm.compiler.graph.Graph$Mark mark
         0: .line 359
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 1
            aload 0 /* graph */
            aload 1 /* mark */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkNoOldToNewEdges:(Lorg/graalvm/compiler/graph/Graph;Lorg/graalvm/compiler/graph/Graph$Mark;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* graph */
            aload 1 /* mark */
            invokevirtual org.graalvm.compiler.graph.Graph.getNewNodes:(Lorg/graalvm/compiler/graph/Graph$Mark;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         3: .line 361
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.markDeleted:()V
         4: .line 362
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* in */
        start local 4 // org.graalvm.compiler.graph.Node in
         6: .line 363
            aload 4 /* in */
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.removeUsage:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
        end local 4 // org.graalvm.compiler.graph.Node in
         7: .line 362
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // org.graalvm.compiler.graph.Node n
         8: .line 360
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 366
            return
        end local 1 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 0 // org.graalvm.compiler.graph.Graph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  graph  Lorg/graalvm/compiler/graph/Graph;
            0   10     1   mark  Lorg/graalvm/compiler/graph/Graph$Mark;
            3    8     2      n  Lorg/graalvm/compiler/graph/Node;
            6    7     4     in  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
       Name  Flags
      graph  
      mark   

  private static boolean checkNoOldToNewEdges(org.graalvm.compiler.graph.Graph, org.graalvm.compiler.graph.Graph$Mark);
    descriptor: (Lorg/graalvm/compiler/graph/Graph;Lorg/graalvm/compiler/graph/Graph$Mark;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.graph.Graph graph
        start local 1 // org.graalvm.compiler.graph.Graph$Mark mark
         0: .line 369
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.graph.Graph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* old */
        start local 2 // org.graalvm.compiler.graph.Node old
         2: .line 370
            aload 0 /* graph */
            aload 1 /* mark */
            aload 2 /* old */
            invokevirtual org.graalvm.compiler.graph.Graph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 4
         3: .line 371
            goto 13
         4: .line 373
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 2 /* old */
            invokevirtual org.graalvm.compiler.graph.Node.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* n */
        start local 4 // org.graalvm.compiler.graph.Node n
         6: .line 374
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 7
            aload 0 /* graph */
            aload 1 /* mark */
            aload 4 /* n */
            invokevirtual org.graalvm.compiler.graph.Graph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* old */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // org.graalvm.compiler.graph.Node n
         7: .line 373
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 376
            aload 2 /* old */
            invokevirtual org.graalvm.compiler.graph.Node.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* n */
        start local 4 // org.graalvm.compiler.graph.Node n
        10: .line 377
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 11
            aload 0 /* graph */
            aload 1 /* mark */
            aload 4 /* n */
            invokevirtual org.graalvm.compiler.graph.Graph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* old */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // org.graalvm.compiler.graph.Node n
        11: .line 376
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 2 // org.graalvm.compiler.graph.Node old
        12: .line 369
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        13: .line 380
      StackMap locals: org.graalvm.compiler.graph.Graph org.graalvm.compiler.graph.Graph$Mark
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.graph.Graph$Mark mark
        end local 0 // org.graalvm.compiler.graph.Graph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0  graph  Lorg/graalvm/compiler/graph/Graph;
            0   14     1   mark  Lorg/graalvm/compiler/graph/Graph$Mark;
            2   12     2    old  Lorg/graalvm/compiler/graph/Node;
            6    7     4      n  Lorg/graalvm/compiler/graph/Node;
           10   11     4      n  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
       Name  Flags
      graph  
      mark   

  public static void removeFixedWithUnusedInputs(org.graalvm.compiler.nodes.FixedWithNextNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedWithNextNode fixed
         0: .line 384
            aload 0 /* fixed */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 6
         1: .line 385
            aload 0 /* fixed */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 1 /* stateAfter */
        start local 1 // org.graalvm.compiler.nodes.FrameState stateAfter
         2: .line 386
            aload 1 /* stateAfter */
            ifnull 6
         3: .line 387
            aload 0 /* fixed */
            checkcast org.graalvm.compiler.nodes.StateSplit
            aconst_null
            invokeinterface org.graalvm.compiler.nodes.StateSplit.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         4: .line 388
            aload 1 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.FrameState.hasNoUsages:()Z
            ifeq 6
         5: .line 389
            aload 1 /* stateAfter */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 1 // org.graalvm.compiler.nodes.FrameState stateAfter
         6: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* fixed */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unlinkFixedNode:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         7: .line 394
            aload 0 /* fixed */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
         8: .line 395
            return
        end local 0 // org.graalvm.compiler.nodes.FixedWithNextNode fixed
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0       fixed  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            2    6     1  stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
       Name  Flags
      fixed  

  public static void unlinkFixedNode(org.graalvm.compiler.nodes.FixedWithNextNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedWithNextNode fixed
         0: .line 398
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 2
            aload 0 /* fixed */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            ifnull 1
            aload 0 /* fixed */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnull 1
            aload 0 /* fixed */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.isAlive:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            aload 0 /* fixed */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* fixed */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 1 /* next */
        start local 1 // org.graalvm.compiler.nodes.FixedNode next
         3: .line 400
            aload 0 /* fixed */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 401
            aload 0 /* fixed */
            aload 1 /* next */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
         5: .line 402
            return
        end local 1 // org.graalvm.compiler.nodes.FixedNode next
        end local 0 // org.graalvm.compiler.nodes.FixedWithNextNode fixed
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  fixed  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            3    6     1   next  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
       Name  Flags
      fixed  

  public static void unlinkAndKillExceptionEdge(org.graalvm.compiler.nodes.WithExceptionNode);
    descriptor: (Lorg/graalvm/compiler/nodes/WithExceptionNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.WithExceptionNode withException
         0: .line 405
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 2
            aload 0 /* withException */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.next:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            ifnull 1
            aload 0 /* withException */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnull 1
            aload 0 /* withException */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.isAlive:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            aload 0 /* withException */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* withException */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.next:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            astore 1 /* next */
        start local 1 // org.graalvm.compiler.nodes.FixedNode next
         3: .line 407
            aload 0 /* withException */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.setNext:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
         4: .line 408
            aload 0 /* withException */
            aload 1 /* next */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
         5: .line 409
            aload 0 /* withException */
            invokevirtual org.graalvm.compiler.nodes.WithExceptionNode.killExceptionEdge:()V
         6: .line 410
            return
        end local 1 // org.graalvm.compiler.nodes.FixedNode next
        end local 0 // org.graalvm.compiler.nodes.WithExceptionNode withException
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  withException  Lorg/graalvm/compiler/nodes/WithExceptionNode;
            3    7     1           next  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
               Name  Flags
      withException  

  public static void checkRedundantPhi(org.graalvm.compiler.nodes.PhiNode);
    descriptor: (Lorg/graalvm/compiler/nodes/PhiNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.nodes.PhiNode phiNode
         0: .line 413
            aload 0 /* phiNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.isDeleted:()Z
            ifne 1
            aload 0 /* phiNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
            iconst_1
            if_icmpne 2
         1: .line 414
      StackMap locals:
      StackMap stack:
            return
         2: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* phiNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.singleValueOrThis:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* singleValue */
        start local 1 // org.graalvm.compiler.nodes.ValueNode singleValue
         3: .line 418
            aload 1 /* singleValue */
            aload 0 /* phiNode */
            if_acmpeq 15
         4: .line 419
            aload 0 /* phiNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/PhiNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 2 /* phiUsages */
        start local 2 // java.util.Collection phiUsages
         5: .line 420
            aload 0 /* phiNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/ProxyNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 3 /* proxyUsages */
        start local 3 // java.util.Collection proxyUsages
         6: .line 421
            aload 0 /* phiNode */
            aload 1 /* singleValue */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
         7: .line 422
            aload 2 /* phiUsages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.ValueNode java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 4 /* phi */
        start local 4 // org.graalvm.compiler.nodes.PhiNode phi
         9: .line 423
            aload 4 /* phi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantPhi:(Lorg/graalvm/compiler/nodes/PhiNode;)V
        end local 4 // org.graalvm.compiler.nodes.PhiNode phi
        10: .line 422
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 425
            aload 3 /* proxyUsages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ProxyNode
            astore 4 /* proxy */
        start local 4 // org.graalvm.compiler.nodes.ProxyNode proxy
        13: .line 426
            aload 4 /* proxy */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantProxy:(Lorg/graalvm/compiler/nodes/ProxyNode;)V
        end local 4 // org.graalvm.compiler.nodes.ProxyNode proxy
        14: .line 425
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 3 // java.util.Collection proxyUsages
        end local 2 // java.util.Collection phiUsages
        15: .line 429
      StackMap locals: org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.nodes.ValueNode singleValue
        end local 0 // org.graalvm.compiler.nodes.PhiNode phiNode
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0      phiNode  Lorg/graalvm/compiler/nodes/PhiNode;
            3   16     1  singleValue  Lorg/graalvm/compiler/nodes/ValueNode;
            5   15     2    phiUsages  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/PhiNode;>;
            6   15     3  proxyUsages  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ProxyNode;>;
            9   10     4          phi  Lorg/graalvm/compiler/nodes/PhiNode;
           13   14     4        proxy  Lorg/graalvm/compiler/nodes/ProxyNode;
    MethodParameters:
         Name  Flags
      phiNode  

  public static void checkRedundantProxy(org.graalvm.compiler.nodes.ProxyNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ProxyNode;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=12, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ProxyNode vpn
         0: .line 432
            aload 0 /* vpn */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.isDeleted:()Z
            ifeq 2
         1: .line 433
            return
         2: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* vpn */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.proxyPoint:()Lorg/graalvm/compiler/nodes/LoopExitNode;
            astore 1 /* proxyPoint */
        start local 1 // org.graalvm.compiler.nodes.AbstractBeginNode proxyPoint
         3: .line 436
            aload 1 /* proxyPoint */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 26
         4: .line 437
            aload 1 /* proxyPoint */
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            astore 2 /* exit */
        start local 2 // org.graalvm.compiler.nodes.LoopExitNode exit
         5: .line 438
            aload 2 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 3 /* loopBegin */
        start local 3 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
         6: .line 439
            aload 0 /* vpn */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* vpnValue */
        start local 4 // org.graalvm.compiler.graph.Node vpnValue
         7: .line 440
            aload 3 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 25
      StackMap locals: org.graalvm.compiler.nodes.ProxyNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* v */
        start local 5 // org.graalvm.compiler.nodes.ValueNode v
         9: .line 441
            aload 5 /* v */
            astore 7 /* v2 */
        start local 7 // org.graalvm.compiler.nodes.ValueNode v2
        10: .line 442
            aload 3 /* loopBegin */
            aload 7 /* v2 */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 12
        11: .line 443
            aload 7 /* v2 */
            checkcast org.graalvm.compiler.nodes.PhiNode
            aload 3 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* v2 */
        12: .line 445
      StackMap locals: org.graalvm.compiler.nodes.ProxyNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 4 /* vpnValue */
            aload 7 /* v2 */
            if_acmpne 25
        13: .line 446
            aload 0 /* vpn */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/PhiNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 8 /* phiUsages */
        start local 8 // java.util.Collection phiUsages
        14: .line 447
            aload 0 /* vpn */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/ProxyNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 9 /* proxyUsages */
        start local 9 // java.util.Collection proxyUsages
        15: .line 448
            aload 0 /* vpn */
            aload 4 /* vpnValue */
            invokevirtual org.graalvm.compiler.nodes.ProxyNode.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        16: .line 449
            aload 8 /* phiUsages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 19
      StackMap locals: org.graalvm.compiler.nodes.ProxyNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.ValueNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
        17: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 10 /* phi */
        start local 10 // org.graalvm.compiler.nodes.PhiNode phi
        18: .line 450
            aload 10 /* phi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantPhi:(Lorg/graalvm/compiler/nodes/PhiNode;)V
        end local 10 // org.graalvm.compiler.nodes.PhiNode phi
        19: .line 449
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 452
            aload 9 /* proxyUsages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 23
      StackMap locals:
      StackMap stack:
        21: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ProxyNode
            astore 10 /* proxy */
        start local 10 // org.graalvm.compiler.nodes.ProxyNode proxy
        22: .line 453
            aload 10 /* proxy */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantProxy:(Lorg/graalvm/compiler/nodes/ProxyNode;)V
        end local 10 // org.graalvm.compiler.nodes.ProxyNode proxy
        23: .line 452
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 455
            return
        end local 9 // java.util.Collection proxyUsages
        end local 8 // java.util.Collection phiUsages
        end local 7 // org.graalvm.compiler.nodes.ValueNode v2
        end local 5 // org.graalvm.compiler.nodes.ValueNode v
        25: .line 440
      StackMap locals: org.graalvm.compiler.nodes.ProxyNode org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 4 // org.graalvm.compiler.graph.Node vpnValue
        end local 3 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 2 // org.graalvm.compiler.nodes.LoopExitNode exit
        26: .line 459
      StackMap locals: org.graalvm.compiler.nodes.ProxyNode org.graalvm.compiler.nodes.AbstractBeginNode
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.nodes.AbstractBeginNode proxyPoint
        end local 0 // org.graalvm.compiler.nodes.ProxyNode vpn
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0          vpn  Lorg/graalvm/compiler/nodes/ProxyNode;
            3   27     1   proxyPoint  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            5   26     2         exit  Lorg/graalvm/compiler/nodes/LoopExitNode;
            6   26     3    loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            7   26     4     vpnValue  Lorg/graalvm/compiler/graph/Node;
            9   25     5            v  Lorg/graalvm/compiler/nodes/ValueNode;
           10   25     7           v2  Lorg/graalvm/compiler/nodes/ValueNode;
           14   25     8    phiUsages  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/PhiNode;>;
           15   25     9  proxyUsages  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ProxyNode;>;
           18   19    10          phi  Lorg/graalvm/compiler/nodes/PhiNode;
           22   23    10        proxy  Lorg/graalvm/compiler/nodes/ProxyNode;
    MethodParameters:
      Name  Flags
      vpn   

  public static void normalizeLoops(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 474
            iconst_0
            istore 1 /* loopRemoved */
        start local 1 // boolean loopRemoved
         1: .line 475
            aload 0 /* graph */
            getstatic org.graalvm.compiler.nodes.LoopBeginNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            astore 2 /* begin */
        start local 2 // org.graalvm.compiler.nodes.LoopBeginNode begin
         3: .line 476
            aload 2 /* begin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopEnds:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
            ifeq 8
         4: .line 477
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 5
            aload 2 /* begin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEndCount:()I
            iconst_1
            if_icmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 478
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.nodes.LoopBeginNode java.util.Iterator
      StackMap stack:
            aload 0 /* graph */
            aload 2 /* begin */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.reduceDegenerateLoopBegin:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
         6: .line 479
            iconst_1
            istore 1 /* loopRemoved */
         7: .line 480
            goto 9
         8: .line 481
      StackMap locals:
      StackMap stack:
            aload 2 /* begin */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.normalizeLoopBegin:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
        end local 2 // org.graalvm.compiler.nodes.LoopBeginNode begin
         9: .line 475
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 485
            iload 1 /* loopRemoved */
            ifeq 16
        11: .line 490
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* node */
        start local 2 // org.graalvm.compiler.graph.Node node
        13: .line 491
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 15
        14: .line 492
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.PhiNode
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantPhi:(Lorg/graalvm/compiler/nodes/PhiNode;)V
        end local 2 // org.graalvm.compiler.graph.Node node
        15: .line 490
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 496
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph int
      StackMap stack:
            return
        end local 1 // boolean loopRemoved
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   17     1  loopRemoved  Z
            3    9     2        begin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           13   15     2         node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
       Name  Flags
      graph  

  private static void normalizeLoopBegin(org.graalvm.compiler.nodes.LoopBeginNode);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopBeginNode begin
         0: .line 501
            aload 0 /* begin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 1 /* phi */
        start local 1 // org.graalvm.compiler.nodes.PhiNode phi
         2: .line 502
            aload 1 /* phi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantPhi:(Lorg/graalvm/compiler/nodes/PhiNode;)V
        end local 1 // org.graalvm.compiler.nodes.PhiNode phi
         3: .line 501
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 504
            aload 0 /* begin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.loopExits:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         5: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            astore 1 /* exit */
        start local 1 // org.graalvm.compiler.nodes.LoopExitNode exit
         6: .line 505
            aload 1 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.proxies:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.LoopExitNode java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ProxyNode
            astore 3 /* vpn */
        start local 3 // org.graalvm.compiler.nodes.ProxyNode vpn
         8: .line 506
            aload 3 /* vpn */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkRedundantProxy:(Lorg/graalvm/compiler/nodes/ProxyNode;)V
        end local 3 // org.graalvm.compiler.nodes.ProxyNode vpn
         9: .line 505
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 1 // org.graalvm.compiler.nodes.LoopExitNode exit
        10: .line 504
      StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 509
            return
        end local 0 // org.graalvm.compiler.nodes.LoopBeginNode begin
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0  begin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            2    3     1    phi  Lorg/graalvm/compiler/nodes/PhiNode;
            6   10     1   exit  Lorg/graalvm/compiler/nodes/LoopExitNode;
            8    9     3    vpn  Lorg/graalvm/compiler/nodes/ProxyNode;
    MethodParameters:
       Name  Flags
      begin  

  public static java.lang.StackTraceElement[] approxSourceStackTraceElement(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)[Ljava/lang/StackTraceElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 517
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 1 /* position */
        start local 1 // org.graalvm.compiler.graph.NodeSourcePosition position
         1: .line 518
            aload 1 /* position */
            ifnull 3
         2: .line 521
            aload 1 /* position */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.approxSourceStackTraceElement:(Ljdk/vm/ci/code/BytecodePosition;)[Ljava/lang/StackTraceElement;
            areturn
         3: .line 523
      StackMap locals: org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* elements */
        start local 2 // java.util.ArrayList elements
         4: .line 524
            aload 0 /* node */
            astore 3 /* n */
        start local 3 // org.graalvm.compiler.graph.Node n
         5: .line 525
            goto 14
         6: .line 526
      StackMap locals: java.util.ArrayList org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 3 /* n */
            instanceof org.graalvm.compiler.nodes.java.MethodCallTargetNode
            ifeq 9
         7: .line 527
            aload 2 /* elements */
            aload 3 /* n */
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            iconst_m1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 528
            aload 3 /* n */
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 3 /* n */
         9: .line 531
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 13
        10: .line 532
            aload 3 /* n */
            checkcast org.graalvm.compiler.nodes.StateSplit
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 4 /* state */
        start local 4 // org.graalvm.compiler.nodes.FrameState state
        11: .line 533
            aload 2 /* elements */
            aload 4 /* state */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.approxSourceStackTraceElement:(Lorg/graalvm/compiler/nodes/FrameState;)[Ljava/lang/StackTraceElement;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        12: .line 534
            goto 15
        end local 4 // org.graalvm.compiler.nodes.FrameState state
        13: .line 536
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            astore 3 /* n */
        14: .line 525
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            ifnonnull 6
        15: .line 538
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            aload 2 /* elements */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.StackTraceElement
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 3 // org.graalvm.compiler.graph.Node n
        end local 2 // java.util.ArrayList elements
        end local 1 // org.graalvm.compiler.graph.NodeSourcePosition position
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      node  Lorg/graalvm/compiler/graph/Node;
            1   16     1  position  Lorg/graalvm/compiler/graph/NodeSourcePosition;
            4   16     2  elements  Ljava/util/ArrayList<Ljava/lang/StackTraceElement;>;
            5   16     3         n  Lorg/graalvm/compiler/graph/Node;
           11   13     4     state  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
      Name  Flags
      node  

  public static java.lang.StackTraceElement[] approxSourceStackTraceElement(org.graalvm.compiler.nodes.FrameState);
    descriptor: (Lorg/graalvm/compiler/nodes/FrameState;)[Ljava/lang/StackTraceElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FrameState frameState
         0: .line 547
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* elements */
        start local 1 // java.util.ArrayList elements
         1: .line 548
            aload 0 /* frameState */
            astore 2 /* state */
        start local 2 // org.graalvm.compiler.nodes.FrameState state
         2: .line 549
            goto 7
         3: .line 550
      StackMap locals: java.util.ArrayList org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 2 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.getCode:()Lorg/graalvm/compiler/bytecode/Bytecode;
            astore 3 /* code */
        start local 3 // org.graalvm.compiler.bytecode.Bytecode code
         4: .line 551
            aload 3 /* code */
            ifnull 6
         5: .line 552
            aload 1 /* elements */
            aload 3 /* code */
            aload 2 /* state */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            iconst_1
            isub
            invokeinterface org.graalvm.compiler.bytecode.Bytecode.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 554
      StackMap locals: org.graalvm.compiler.bytecode.Bytecode
      StackMap stack:
            aload 2 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 2 /* state */
        end local 3 // org.graalvm.compiler.bytecode.Bytecode code
         7: .line 549
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            ifnonnull 3
         8: .line 556
            aload 1 /* elements */
            iconst_0
            anewarray java.lang.StackTraceElement
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 2 // org.graalvm.compiler.nodes.FrameState state
        end local 1 // java.util.ArrayList elements
        end local 0 // org.graalvm.compiler.nodes.FrameState frameState
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0  frameState  Lorg/graalvm/compiler/nodes/FrameState;
            1    9     1    elements  Ljava/util/ArrayList<Ljava/lang/StackTraceElement;>;
            2    9     2       state  Lorg/graalvm/compiler/nodes/FrameState;
            4    7     3        code  Lorg/graalvm/compiler/bytecode/Bytecode;
    MethodParameters:
            Name  Flags
      frameState  

  public static java.lang.StackTraceElement[] approxSourceStackTraceElement(jdk.vm.ci.code.BytecodePosition);
    descriptor: (Ljdk/vm/ci/code/BytecodePosition;)[Ljava/lang/StackTraceElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // jdk.vm.ci.code.BytecodePosition bytecodePosition
         0: .line 563
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* elements */
        start local 1 // java.util.ArrayList elements
         1: .line 564
            aload 0 /* bytecodePosition */
            astore 2 /* position */
        start local 2 // jdk.vm.ci.code.BytecodePosition position
         2: .line 565
            goto 7
         3: .line 566
      StackMap locals: java.util.ArrayList jdk.vm.ci.code.BytecodePosition
      StackMap stack:
            aload 2 /* position */
            invokevirtual jdk.vm.ci.code.BytecodePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 3 /* method */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
         4: .line 567
            aload 3 /* method */
            ifnull 6
         5: .line 568
            aload 1 /* elements */
            aload 3 /* method */
            aload 2 /* position */
            invokevirtual jdk.vm.ci.code.BytecodePosition.getBCI:()I
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 570
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 2 /* position */
            invokevirtual jdk.vm.ci.code.BytecodePosition.getCaller:()Ljdk/vm/ci/code/BytecodePosition;
            astore 2 /* position */
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod method
         7: .line 565
      StackMap locals:
      StackMap stack:
            aload 2 /* position */
            ifnonnull 3
         8: .line 572
            aload 1 /* elements */
            iconst_0
            anewarray java.lang.StackTraceElement
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 2 // jdk.vm.ci.code.BytecodePosition position
        end local 1 // java.util.ArrayList elements
        end local 0 // jdk.vm.ci.code.BytecodePosition bytecodePosition
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0  bytecodePosition  Ljdk/vm/ci/code/BytecodePosition;
            1    9     1          elements  Ljava/util/ArrayList<Ljava/lang/StackTraceElement;>;
            2    9     2          position  Ljdk/vm/ci/code/BytecodePosition;
            4    7     3            method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                  Name  Flags
      bytecodePosition  

  public static java.lang.RuntimeException approxSourceException(org.graalvm.compiler.graph.Node, java.lang.Throwable);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.graph.Node node
        start local 1 // java.lang.Throwable cause
         0: .line 581
            aload 0 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.approxSourceStackTraceElement:(Lorg/graalvm/compiler/graph/Node;)[Ljava/lang/StackTraceElement;
            astore 2 /* elements */
        start local 2 // java.lang.StackTraceElement[] elements
         1: .line 582
            aload 1 /* cause */
            ifnonnull 2
            ldc ""
            goto 3
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
         2: aload 1 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: aload 1 /* cause */
            aload 2 /* elements */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.createBailoutException:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)Ljdk/vm/ci/code/BailoutException;
            areturn
        end local 2 // java.lang.StackTraceElement[] elements
        end local 1 // java.lang.Throwable cause
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      node  Lorg/graalvm/compiler/graph/Node;
            0    4     1     cause  Ljava/lang/Throwable;
            1    4     2  elements  [Ljava/lang/StackTraceElement;
    MethodParameters:
       Name  Flags
      node   
      cause  

  public static jdk.vm.ci.code.BailoutException createBailoutException(java.lang.String, java.lang.Throwable, java.lang.StackTraceElement[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)Ljdk/vm/ci/code/BailoutException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String message
        start local 1 // java.lang.Throwable cause
        start local 2 // java.lang.StackTraceElement[] elements
         0: .line 593
            aload 1 /* cause */
            aload 0 /* message */
            aload 2 /* elements */
            invokestatic org.graalvm.compiler.code.SourceStackTraceBailoutException.create:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/StackTraceElement;)Lorg/graalvm/compiler/code/SourceStackTraceBailoutException;
            areturn
        end local 2 // java.lang.StackTraceElement[] elements
        end local 1 // java.lang.Throwable cause
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   message  Ljava/lang/String;
            0    1     1     cause  Ljava/lang/Throwable;
            0    1     2  elements  [Ljava/lang/StackTraceElement;
    MethodParameters:
          Name  Flags
      message   
      cause     
      elements  

  public static java.lang.String approxSourceLocation(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 603
            aload 0 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.approxSourceStackTraceElement:(Lorg/graalvm/compiler/graph/Node;)[Ljava/lang/StackTraceElement;
            astore 1 /* stackTraceElements */
        start local 1 // java.lang.StackTraceElement[] stackTraceElements
         1: .line 604
            aload 1 /* stackTraceElements */
            ifnull 5
            aload 1 /* stackTraceElements */
            arraylength
            ifle 5
         2: .line 605
            aload 1 /* stackTraceElements */
            iconst_0
            aaload
            astore 2 /* top */
        start local 2 // java.lang.StackTraceElement top
         3: .line 606
            aload 2 /* top */
            invokevirtual java.lang.StackTraceElement.getFileName:()Ljava/lang/String;
            ifnull 5
            aload 2 /* top */
            invokevirtual java.lang.StackTraceElement.getLineNumber:()I
            iflt 5
         4: .line 607
            new java.lang.StringBuilder
            dup
            aload 2 /* top */
            invokevirtual java.lang.StackTraceElement.getFileName:()Ljava/lang/String;
            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;
            aload 2 /* top */
            invokevirtual java.lang.StackTraceElement.getLineNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StackTraceElement top
         5: .line 610
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.StackTraceElement[] stackTraceElements
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                node  Lorg/graalvm/compiler/graph/Node;
            1    6     1  stackTraceElements  [Ljava/lang/StackTraceElement;
            3    5     2                 top  Ljava/lang/StackTraceElement;
    MethodParameters:
      Name  Flags
      node  

  public static java.lang.String toString(java.lang.Iterable<?>);
    descriptor: (Ljava/lang/Iterable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Iterable objects
         0: .line 620
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* str */
        start local 1 // java.lang.StringBuilder str
         1: .line 621
            aload 1 /* str */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 622
            aload 0 /* objects */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.lang.Iterable java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* o */
        start local 2 // java.lang.Object o
         4: .line 623
            aload 1 /* str */
            aload 2 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.Object o
         5: .line 622
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 625
            aload 1 /* str */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            if_icmple 8
         7: .line 626
            aload 1 /* str */
            aload 1 /* str */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_2
            isub
            invokevirtual java.lang.StringBuilder.setLength:(I)V
         8: .line 628
      StackMap locals: java.lang.Iterable java.lang.StringBuilder
      StackMap stack:
            aload 1 /* str */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 629
            aload 1 /* str */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder str
        end local 0 // java.lang.Iterable objects
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  objects  Ljava/lang/Iterable<*>;
            1   10     1      str  Ljava/lang/StringBuilder;
            4    5     2        o  Ljava/lang/Object;
    Signature: (Ljava/lang/Iterable<*>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      objects  

  public static org.graalvm.compiler.nodes.ValueNode unproxify(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 639
            aload 0 /* value */
            instanceof org.graalvm.compiler.nodes.spi.ValueProxy
            ifeq 2
         1: .line 640
            aload 0 /* value */
            checkcast org.graalvm.compiler.nodes.spi.ValueProxy
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/spi/ValueProxy;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         2: .line 642
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            areturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      value  

  public static org.graalvm.compiler.nodes.ValueNode unproxify(org.graalvm.compiler.nodes.spi.ValueProxy);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/ValueProxy;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.spi.ValueProxy value
         0: .line 653
            aload 0 /* value */
            ifnull 6
         1: .line 654
            aload 0 /* value */
            invokeinterface org.graalvm.compiler.nodes.spi.ValueProxy.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* result */
        start local 1 // org.graalvm.compiler.nodes.ValueNode result
         2: .line 655
            goto 4
         3: .line 656
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 1 /* result */
            checkcast org.graalvm.compiler.nodes.spi.ValueProxy
            invokeinterface org.graalvm.compiler.nodes.spi.ValueProxy.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* result */
         4: .line 655
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            instanceof org.graalvm.compiler.nodes.spi.ValueProxy
            ifne 3
         5: .line 658
            aload 1 /* result */
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode result
         6: .line 660
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.graalvm.compiler.nodes.spi.ValueProxy value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   value  Lorg/graalvm/compiler/nodes/spi/ValueProxy;
            2    6     1  result  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      value  

  public static org.graalvm.compiler.nodes.ValueNode skipPi(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 665
            aload 0 /* node */
            astore 1 /* n */
        start local 1 // org.graalvm.compiler.nodes.ValueNode n
         1: .line 666
            goto 4
         2: .line 667
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.PiNode
            astore 2 /* piNode */
        start local 2 // org.graalvm.compiler.nodes.PiNode piNode
         3: .line 668
            aload 2 /* piNode */
            invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* n */
        end local 2 // org.graalvm.compiler.nodes.PiNode piNode
         4: .line 666
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.PiNode
            ifne 2
         5: .line 670
            aload 1 /* n */
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode n
        end local 0 // org.graalvm.compiler.nodes.ValueNode node
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    node  Lorg/graalvm/compiler/nodes/ValueNode;
            1    6     1       n  Lorg/graalvm/compiler/nodes/ValueNode;
            3    4     2  piNode  Lorg/graalvm/compiler/nodes/PiNode;
    MethodParameters:
      Name  Flags
      node  

  public static org.graalvm.compiler.nodes.ValueNode skipPiWhileNonNull(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 674
            aload 0 /* node */
            astore 1 /* n */
        start local 1 // org.graalvm.compiler.nodes.ValueNode n
         1: .line 675
            goto 6
         2: .line 676
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.PiNode
            astore 2 /* piNode */
        start local 2 // org.graalvm.compiler.nodes.PiNode piNode
         3: .line 677
            aload 2 /* piNode */
            invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            astore 3 /* originalStamp */
        start local 3 // org.graalvm.compiler.core.common.type.ObjectStamp originalStamp
         4: .line 678
            aload 3 /* originalStamp */
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.nonNull:()Z
            ifeq 7
         5: .line 679
            aload 2 /* piNode */
            invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* n */
        end local 3 // org.graalvm.compiler.core.common.type.ObjectStamp originalStamp
        end local 2 // org.graalvm.compiler.nodes.PiNode piNode
         6: .line 675
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.PiNode
            ifne 2
         7: .line 684
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode n
        end local 0 // org.graalvm.compiler.nodes.ValueNode node
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           node  Lorg/graalvm/compiler/nodes/ValueNode;
            1    8     1              n  Lorg/graalvm/compiler/nodes/ValueNode;
            3    6     2         piNode  Lorg/graalvm/compiler/nodes/PiNode;
            4    6     3  originalStamp  Lorg/graalvm/compiler/core/common/type/ObjectStamp;
    MethodParameters:
      Name  Flags
      node  

  public static org.graalvm.compiler.nodes.ValueNode arrayLength(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode, jdk.vm.ci.meta.ConstantReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
        start local 1 // org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode mode
        start local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         0: .line 696
            aload 1 /* mode */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 698
            aload 0 /* value */
            astore 3 /* current */
        start local 3 // org.graalvm.compiler.nodes.ValueNode current
         2: .line 704
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* current */
            instanceof org.graalvm.compiler.nodes.spi.ArrayLengthProvider
            ifeq 4
         3: .line 705
            aload 3 /* current */
            checkcast org.graalvm.compiler.nodes.spi.ArrayLengthProvider
            aload 1 /* mode */
            aload 2 /* constantReflection */
            invokeinterface org.graalvm.compiler.nodes.spi.ArrayLengthProvider.findLength:(Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 707
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 6
         5: .line 708
            aload 3 /* current */
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            aload 1 /* mode */
            aload 2 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.phiArrayLength:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         6: .line 710
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.graalvm.compiler.nodes.ValueProxyNode
            ifeq 12
         7: .line 711
            aload 3 /* current */
            checkcast org.graalvm.compiler.nodes.ValueProxyNode
            astore 4 /* proxy */
        start local 4 // org.graalvm.compiler.nodes.ValueProxyNode proxy
         8: .line 712
            aload 4 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.ValueProxyNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* mode */
            aload 2 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.arrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* length */
        start local 5 // org.graalvm.compiler.nodes.ValueNode length
         9: .line 713
            aload 1 /* mode */
            getstatic org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode.CANONICALIZE_READ:Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;
            if_acmpne 11
            aload 5 /* length */
            ifnull 11
            aload 5 /* length */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 11
        10: .line 714
            new org.graalvm.compiler.nodes.ValueProxyNode
            dup
            aload 5 /* length */
            aload 4 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.ValueProxyNode.proxyPoint:()Lorg/graalvm/compiler/nodes/LoopExitNode;
            invokespecial org.graalvm.compiler.nodes.ValueProxyNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)V
            astore 5 /* length */
        11: .line 716
      StackMap locals: org.graalvm.compiler.nodes.ValueProxyNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* length */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode length
        end local 4 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        12: .line 718
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.graalvm.compiler.nodes.spi.ValueProxy
            ifeq 15
        13: .line 720
            aload 3 /* current */
            checkcast org.graalvm.compiler.nodes.spi.ValueProxy
            invokeinterface org.graalvm.compiler.nodes.spi.ValueProxy.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 3 /* current */
        14: .line 722
            goto 2
        15: .line 723
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode current
        end local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 1 // org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode mode
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0               value  Lorg/graalvm/compiler/nodes/ValueNode;
            0   16     1                mode  Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;
            0   16     2  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            2   16     3             current  Lorg/graalvm/compiler/nodes/ValueNode;
            8   12     4               proxy  Lorg/graalvm/compiler/nodes/ValueProxyNode;
            9   12     5              length  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                    Name  Flags
      value               
      mode                
      constantReflection  

  private static org.graalvm.compiler.nodes.ValueNode phiArrayLength(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode, jdk.vm.ci.meta.ConstantReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValuePhiNode phi
        start local 1 // org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode mode
        start local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         0: .line 729
            aload 0 /* phi */
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            instanceof org.graalvm.compiler.nodes.LoopBeginNode
            ifeq 2
         1: .line 731
            aconst_null
            areturn
         2: .line 734
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* singleLength */
        start local 3 // org.graalvm.compiler.nodes.ValueNode singleLength
         3: .line 735
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 17
         5: .line 736
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 0 /* phi */
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            iload 4 /* i */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 5 /* input */
        start local 5 // org.graalvm.compiler.nodes.ValueNode input
         6: .line 737
            aload 5 /* input */
            aload 1 /* mode */
            aload 2 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.arrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* length */
        start local 6 // org.graalvm.compiler.nodes.ValueNode length
         7: .line 738
            aload 6 /* length */
            ifnonnull 9
         8: .line 739
            aconst_null
            areturn
         9: .line 741
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 10
            aload 6 /* length */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 743
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            ifne 14
        11: .line 744
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 12
            aload 3 /* singleLength */
            ifnull 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 745
      StackMap locals:
      StackMap stack:
            aload 6 /* length */
            astore 3 /* singleLength */
        13: .line 746
            goto 16
      StackMap locals:
      StackMap stack:
        14: aload 3 /* singleLength */
            aload 6 /* length */
            if_acmpeq 16
        15: .line 749
            aconst_null
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode length
        end local 5 // org.graalvm.compiler.nodes.ValueNode input
        16: .line 735
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 0 /* phi */
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.count:()I
            if_icmplt 5
        end local 4 // int i
        18: .line 752
            aload 3 /* singleLength */
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode singleLength
        end local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 1 // org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode mode
        end local 0 // org.graalvm.compiler.nodes.ValuePhiNode phi
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0                 phi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
            0   19     1                mode  Lorg/graalvm/compiler/nodes/spi/ArrayLengthProvider$FindLengthMode;
            0   19     2  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            3   19     3        singleLength  Lorg/graalvm/compiler/nodes/ValueNode;
            4   18     4                   i  I
            6   16     5               input  Lorg/graalvm/compiler/nodes/ValueNode;
            7   16     6              length  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                    Name  Flags
      phi                 
      mode                
      constantReflection  

  public static org.graalvm.compiler.nodes.ValueNode originalValue(org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
        start local 1 // boolean abortOnLoopPhi
         0: .line 767
            aload 0 /* value */
            iload 1 /* abortOnLoopPhi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueSimple:(Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* result */
        start local 2 // org.graalvm.compiler.nodes.ValueNode result
         1: .line 768
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 2
            aload 2 /* result */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 769
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode result
        end local 1 // boolean abortOnLoopPhi
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0           value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     1  abortOnLoopPhi  Z
            1    3     2          result  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                Name  Flags
      value           
      abortOnLoopPhi  

  private static org.graalvm.compiler.nodes.ValueNode originalValueSimple(org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
        start local 1 // boolean abortOnLoopPhi
         0: .line 774
            aload 0 /* value */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueForProxy:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* cur */
        start local 2 // org.graalvm.compiler.nodes.ValueNode cur
         1: .line 776
            goto 22
         2: .line 781
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* cur */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 3 /* phi */
        start local 3 // org.graalvm.compiler.nodes.PhiNode phi
         3: .line 783
            iload 1 /* abortOnLoopPhi */
            ifeq 5
            aload 3 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.isLoopPhi:()Z
            ifeq 5
         4: .line 784
            aload 0 /* value */
            areturn
         5: .line 787
      StackMap locals: org.graalvm.compiler.nodes.PhiNode
      StackMap stack:
            aconst_null
            astore 4 /* phiSingleValue */
        start local 4 // org.graalvm.compiler.nodes.ValueNode phiSingleValue
         6: .line 788
            aload 3 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
            istore 5 /* count */
        start local 5 // int count
         7: .line 789
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 19
         9: .line 790
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int int
      StackMap stack:
            aload 3 /* phi */
            iload 6 /* i */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueForProxy:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* phiCurValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode phiCurValue
        10: .line 791
            aload 7 /* phiCurValue */
            aload 3 /* phi */
            if_acmpeq 18
        11: .line 793
            aload 4 /* phiSingleValue */
            ifnonnull 14
        12: .line 795
            aload 7 /* phiCurValue */
            astore 4 /* phiSingleValue */
        13: .line 796
            goto 18
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
        14: aload 4 /* phiSingleValue */
            aload 7 /* phiCurValue */
            if_acmpeq 18
        15: .line 799
            aload 4 /* phiSingleValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifne 16
            aload 7 /* phiCurValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 17
        16: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            aload 3 /* phi */
            new org.graalvm.compiler.graph.NodeBitMap
            dup
            aload 0 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokespecial org.graalvm.compiler.graph.NodeBitMap.<init>:(Lorg/graalvm/compiler/graph/Graph;)V
            iload 1 /* abortOnLoopPhi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueForComplicatedPhi:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/NodeBitMap;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        17: .line 812
      StackMap locals:
      StackMap stack:
            aload 3 /* phi */
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode phiCurValue
        18: .line 789
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 5 /* count */
            if_icmplt 9
        end local 6 // int i
        20: .line 821
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 21
            aload 4 /* phiSingleValue */
            ifnonnull 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 822
      StackMap locals:
      StackMap stack:
            aload 4 /* phiSingleValue */
            astore 2 /* cur */
        end local 5 // int count
        end local 4 // org.graalvm.compiler.nodes.ValueNode phiSingleValue
        end local 3 // org.graalvm.compiler.nodes.PhiNode phi
        22: .line 776
      StackMap locals:
      StackMap stack:
            aload 2 /* cur */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifne 2
        23: .line 826
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 25
            aload 2 /* cur */
            instanceof org.graalvm.compiler.nodes.spi.LimitedValueProxy
            ifne 24
            aload 2 /* cur */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 25
      StackMap locals:
      StackMap stack:
        24: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 827
      StackMap locals:
      StackMap stack:
            aload 2 /* cur */
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode cur
        end local 1 // boolean abortOnLoopPhi
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0           value  Lorg/graalvm/compiler/nodes/ValueNode;
            0   26     1  abortOnLoopPhi  Z
            1   26     2             cur  Lorg/graalvm/compiler/nodes/ValueNode;
            3   22     3             phi  Lorg/graalvm/compiler/nodes/PhiNode;
            6   22     4  phiSingleValue  Lorg/graalvm/compiler/nodes/ValueNode;
            7   22     5           count  I
            8   20     6               i  I
           10   18     7     phiCurValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                Name  Flags
      value           
      abortOnLoopPhi  

  private static org.graalvm.compiler.nodes.ValueNode originalValueForProxy(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 831
            aload 0 /* value */
            astore 1 /* cur */
        start local 1 // org.graalvm.compiler.nodes.ValueNode cur
         1: .line 832
            goto 3
         2: .line 833
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 1 /* cur */
            checkcast org.graalvm.compiler.nodes.spi.LimitedValueProxy
            invokeinterface org.graalvm.compiler.nodes.spi.LimitedValueProxy.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* cur */
         3: .line 832
      StackMap locals:
      StackMap stack:
            aload 1 /* cur */
            instanceof org.graalvm.compiler.nodes.spi.LimitedValueProxy
            ifne 2
         4: .line 835
            aload 1 /* cur */
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode cur
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  Lorg/graalvm/compiler/nodes/ValueNode;
            1    5     1    cur  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      value  

  private static org.graalvm.compiler.nodes.ValueNode originalValueForComplicatedPhi(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.PhiNode, org.graalvm.compiler.graph.NodeBitMap, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/NodeBitMap;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
        start local 1 // org.graalvm.compiler.nodes.PhiNode phi
        start local 2 // org.graalvm.compiler.graph.NodeBitMap visited
        start local 3 // boolean abortOnLoopPhi
         0: .line 847
            aload 2 /* visited */
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 2
         1: .line 852
            aconst_null
            areturn
         2: .line 854
      StackMap locals:
      StackMap stack:
            aload 2 /* visited */
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
         3: .line 856
            aconst_null
            astore 4 /* phiSingleValue */
        start local 4 // org.graalvm.compiler.nodes.ValueNode phiSingleValue
         4: .line 857
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
            istore 5 /* count */
        start local 5 // int count
         5: .line 858
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 23
         7: .line 859
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int int
      StackMap stack:
            aload 1 /* phi */
            iload 6 /* i */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueForProxy:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* phiCurValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode phiCurValue
         8: .line 860
            aload 7 /* phiCurValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 16
         9: .line 862
            aload 7 /* phiCurValue */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 8 /* curPhi */
        start local 8 // org.graalvm.compiler.nodes.PhiNode curPhi
        10: .line 863
            iload 3 /* abortOnLoopPhi */
            ifeq 12
            aload 8 /* curPhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.isLoopPhi:()Z
            ifeq 12
        11: .line 864
            aload 0 /* value */
            areturn
        12: .line 866
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.PhiNode
      StackMap stack:
            aload 0 /* value */
            aload 8 /* curPhi */
            aload 2 /* visited */
            iload 3 /* abortOnLoopPhi */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.originalValueForComplicatedPhi:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/PhiNode;Lorg/graalvm/compiler/graph/NodeBitMap;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* phiCurValue */
        13: .line 867
            aload 7 /* phiCurValue */
            aload 0 /* value */
            if_acmpne 16
        14: .line 869
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 15
            iload 3 /* abortOnLoopPhi */
            ifne 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            areturn
        end local 8 // org.graalvm.compiler.nodes.PhiNode curPhi
        16: .line 874
      StackMap locals:
      StackMap stack:
            aload 7 /* phiCurValue */
            ifnull 22
        17: .line 876
            aload 4 /* phiSingleValue */
            ifnonnull 20
        18: .line 878
            aload 7 /* phiCurValue */
            astore 4 /* phiSingleValue */
        19: .line 879
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 7 /* phiCurValue */
            aload 4 /* phiSingleValue */
            if_acmpeq 22
        21: .line 885
            aload 1 /* phi */
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode phiCurValue
        22: .line 858
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 6 /* i */
            iload 5 /* count */
            if_icmplt 7
        end local 6 // int i
        24: .line 888
            aload 4 /* phiSingleValue */
            areturn
        end local 5 // int count
        end local 4 // org.graalvm.compiler.nodes.ValueNode phiSingleValue
        end local 3 // boolean abortOnLoopPhi
        end local 2 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 1 // org.graalvm.compiler.nodes.PhiNode phi
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0           value  Lorg/graalvm/compiler/nodes/ValueNode;
            0   25     1             phi  Lorg/graalvm/compiler/nodes/PhiNode;
            0   25     2         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            0   25     3  abortOnLoopPhi  Z
            4   25     4  phiSingleValue  Lorg/graalvm/compiler/nodes/ValueNode;
            5   25     5           count  I
            6   24     6               i  I
            8   22     7     phiCurValue  Lorg/graalvm/compiler/nodes/ValueNode;
           10   16     8          curPhi  Lorg/graalvm/compiler/nodes/PhiNode;
    MethodParameters:
                Name  Flags
      value           
      phi             
      visited         
      abortOnLoopPhi  

  public static boolean tryKillUnused(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node node
         0: .line 892
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifeq 3
            aload 0 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.isFloatingNode:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 3
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.hasNoUsages:()Z
            ifeq 3
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.GuardNode
            ifne 3
         1: .line 893
            aload 0 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
         2: .line 894
            iconst_1
            ireturn
         3: .line 896
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.graph.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  public static org.graalvm.compiler.graph.iterators.NodeIterable<org.graalvm.compiler.nodes.FixedNode> predecessorIterable(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.FixedNode start
         0: .line 906
            new org.graalvm.compiler.nodes.util.GraphUtil$2
            dup
            aload 0 /* start */
            invokespecial org.graalvm.compiler.nodes.util.GraphUtil$2.<init>:(Lorg/graalvm/compiler/nodes/FixedNode;)V
            areturn
        end local 0 // org.graalvm.compiler.nodes.FixedNode start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  start  Lorg/graalvm/compiler/nodes/FixedNode;
    Signature: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/FixedNode;>;
    MethodParameters:
       Name  Flags
      start  final

  public static org.graalvm.compiler.graph.spi.SimplifierTool getDefaultSimplifier(org.graalvm.compiler.nodes.spi.CoreProviders, boolean, jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/CoreProviders;ZLjdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/graph/spi/SimplifierTool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.spi.CoreProviders providers
        start local 1 // boolean canonicalizeReads
        start local 2 // jdk.vm.ci.meta.Assumptions assumptions
        start local 3 // org.graalvm.compiler.options.OptionValues options
         0: .line 993
            new org.graalvm.compiler.nodes.util.GraphUtil$DefaultSimplifierTool
            dup
            aload 0 /* providers */
            iload 1 /* canonicalizeReads */
            aload 2 /* assumptions */
            aload 3 /* options */
            invokespecial org.graalvm.compiler.nodes.util.GraphUtil$DefaultSimplifierTool.<init>:(Lorg/graalvm/compiler/nodes/spi/CoreProviders;ZLjdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;)V
            areturn
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.Assumptions assumptions
        end local 1 // boolean canonicalizeReads
        end local 0 // org.graalvm.compiler.nodes.spi.CoreProviders providers
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0          providers  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            0    1     1  canonicalizeReads  Z
            0    1     2        assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    1     3            options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
                   Name  Flags
      providers          
      canonicalizeReads  
      assumptions        
      options            

  public static jdk.vm.ci.meta.Constant foldIfConstantAndRemove(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/Constant;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode node
        start local 1 // org.graalvm.compiler.nodes.ValueNode constant
         0: .line 997
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 1
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 1 /* constant */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 998
      StackMap locals:
      StackMap stack:
            aload 1 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 6
         2: .line 999
            aload 0 /* node */
            aload 1 /* constant */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.ValueNode.replaceFirstInput:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
         3: .line 1000
            aload 1 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            astore 2 /* result */
        start local 2 // jdk.vm.ci.meta.Constant result
         4: .line 1001
            aload 1 /* constant */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
         5: .line 1002
            aload 2 /* result */
            areturn
        end local 2 // jdk.vm.ci.meta.Constant result
         6: .line 1004
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode constant
        end local 0 // org.graalvm.compiler.nodes.ValueNode node
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      node  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     1  constant  Lorg/graalvm/compiler/nodes/ValueNode;
            4    6     2    result  Ljdk/vm/ci/meta/Constant;
    MethodParameters:
          Name  Flags
      node      
      constant  

  public static void virtualizeArrayCopy(org.graalvm.compiler.nodes.spi.VirtualizerTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.StructuredGraph, java.util.function.BiFunction<jdk.vm.ci.meta.ResolvedJavaType, java.lang.Integer, org.graalvm.compiler.nodes.virtual.VirtualArrayNode>);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/util/function/BiFunction;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=23, args_size=9
        start local 0 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
        start local 1 // org.graalvm.compiler.nodes.ValueNode source
        start local 2 // org.graalvm.compiler.nodes.ValueNode sourceLength
        start local 3 // org.graalvm.compiler.nodes.ValueNode newLength
        start local 4 // org.graalvm.compiler.nodes.ValueNode from
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType newComponentType
        start local 6 // jdk.vm.ci.meta.JavaKind elementKind
        start local 7 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 8 // java.util.function.BiFunction virtualArrayProvider
         0: .line 1024
            aload 0 /* tool */
            aload 1 /* source */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* sourceAlias */
        start local 9 // org.graalvm.compiler.nodes.ValueNode sourceAlias
         1: .line 1025
            aload 0 /* tool */
            aload 2 /* sourceLength */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* replacedSourceLength */
        start local 10 // org.graalvm.compiler.nodes.ValueNode replacedSourceLength
         2: .line 1026
            aload 0 /* tool */
            aload 3 /* newLength */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* replacedNewLength */
        start local 11 // org.graalvm.compiler.nodes.ValueNode replacedNewLength
         3: .line 1027
            aload 0 /* tool */
            aload 4 /* from */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 12 /* replacedFrom */
        start local 12 // org.graalvm.compiler.nodes.ValueNode replacedFrom
         4: .line 1028
            aload 11 /* replacedNewLength */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 5
            aload 12 /* replacedFrom */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 5
            aload 10 /* replacedSourceLength */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 6
         5: .line 1029
      StackMap locals: org.graalvm.compiler.nodes.spi.VirtualizerTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.StructuredGraph java.util.function.BiFunction org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            return
         6: .line 1032
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 7
            aload 5 /* newComponentType */
            ifnonnull 7
            new java.lang.AssertionError
            dup
            ldc "An array copy can be virtualized only if the real type of the resulting array is known statically."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 1034
      StackMap locals:
      StackMap stack:
            aload 12 /* replacedFrom */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 13 /* fromInt */
        start local 13 // int fromInt
         8: .line 1035
            aload 11 /* replacedNewLength */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 14 /* newLengthInt */
        start local 14 // int newLengthInt
         9: .line 1036
            aload 10 /* replacedSourceLength */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 15 /* sourceLengthInt */
        start local 15 // int sourceLengthInt
        10: .line 1037
            aload 9 /* sourceAlias */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 13
        11: .line 1038
            aload 9 /* sourceAlias */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 16 /* sourceVirtual */
        start local 16 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode sourceVirtual
        12: .line 1039
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 13
            iload 15 /* sourceLengthInt */
            aload 16 /* sourceVirtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            if_icmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 16 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode sourceVirtual
        13: .line 1042
      StackMap locals: int int int
      StackMap stack:
            iload 13 /* fromInt */
            iflt 14
            iload 14 /* newLengthInt */
            iflt 14
            iload 13 /* fromInt */
            iload 15 /* sourceLengthInt */
            if_icmple 15
        14: .line 1044
      StackMap locals:
      StackMap stack:
            return
        15: .line 1047
      StackMap locals:
      StackMap stack:
            iload 14 /* newLengthInt */
            aload 0 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getMaximumEntryCount:()I
            if_icmple 17
        16: .line 1049
            return
        17: .line 1052
      StackMap locals:
      StackMap stack:
            iload 14 /* newLengthInt */
            anewarray org.graalvm.compiler.nodes.ValueNode
            astore 16 /* newEntryState */
        start local 16 // org.graalvm.compiler.nodes.ValueNode[] newEntryState
        18: .line 1053
            iload 14 /* newLengthInt */
            iload 15 /* sourceLengthInt */
            iload 13 /* fromInt */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 17 /* readLength */
        start local 17 // int readLength
        19: .line 1055
            aload 9 /* sourceAlias */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 37
        20: .line 1057
            aload 9 /* sourceAlias */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 18 /* sourceVirtual */
        start local 18 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode sourceVirtual
        21: .line 1058
            aload 5 /* newComponentType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 22
            aload 5 /* newComponentType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isJavaLangObject:()Z
            ifeq 22
            iconst_1
            goto 23
      StackMap locals: org.graalvm.compiler.nodes.ValueNode[] int org.graalvm.compiler.nodes.virtual.VirtualObjectNode
      StackMap stack:
        22: iconst_0
      StackMap locals:
      StackMap stack: int
        23: istore 19 /* alwaysAssignable */
        start local 19 // boolean alwaysAssignable
        24: .line 1059
            iconst_0
            istore 20 /* i */
        start local 20 // int i
        25: goto 35
        26: .line 1060
      StackMap locals: int int
      StackMap stack:
            aload 0 /* tool */
            aload 18 /* sourceVirtual */
            iload 13 /* fromInt */
            iload 20 /* i */
            iadd
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 21 /* entry */
        start local 21 // org.graalvm.compiler.nodes.ValueNode entry
        27: .line 1061
            iload 19 /* alwaysAssignable */
            ifne 33
        28: .line 1062
            aload 21 /* entry */
            aload 0 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 22 /* entryType */
        start local 22 // jdk.vm.ci.meta.ResolvedJavaType entryType
        29: .line 1063
            aload 22 /* entryType */
            ifnonnull 31
        30: .line 1064
            return
        31: .line 1066
      StackMap locals: org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 5 /* newComponentType */
            aload 22 /* entryType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifne 33
        32: .line 1067
            return
        end local 22 // jdk.vm.ci.meta.ResolvedJavaType entryType
        33: .line 1070
      StackMap locals:
      StackMap stack:
            aload 16 /* newEntryState */
            iload 20 /* i */
            aload 21 /* entry */
            aastore
        end local 21 // org.graalvm.compiler.nodes.ValueNode entry
        34: .line 1059
            iinc 20 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 20 /* i */
            iload 17 /* readLength */
            if_icmplt 26
        end local 20 // int i
        end local 19 // boolean alwaysAssignable
        end local 18 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode sourceVirtual
        36: .line 1072
            goto 47
        37: .line 1074
      StackMap locals:
      StackMap stack:
            aload 9 /* sourceAlias */
            aload 0 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 18 /* sourceType */
        start local 18 // jdk.vm.ci.meta.ResolvedJavaType sourceType
        38: .line 1075
            aload 18 /* sourceType */
            ifnull 39
            aload 18 /* sourceType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifeq 39
            aload 5 /* newComponentType */
            aload 18 /* sourceType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getElementalType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifne 40
        39: .line 1076
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            return
        40: .line 1078
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        41: goto 46
        42: .line 1079
      StackMap locals: int
      StackMap stack:
            new org.graalvm.compiler.nodes.java.LoadIndexedNode
            dup
            aconst_null
            aload 9 /* sourceAlias */
            iload 19 /* i */
            iload 13 /* fromInt */
            iadd
            aload 7 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            aconst_null
            aload 6 /* elementKind */
            invokespecial org.graalvm.compiler.nodes.java.LoadIndexedNode.<init>:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
            astore 20 /* load */
        start local 20 // org.graalvm.compiler.nodes.java.LoadIndexedNode load
        43: .line 1080
            aload 0 /* tool */
            aload 20 /* load */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.addNode:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        44: .line 1081
            aload 16 /* newEntryState */
            iload 19 /* i */
            aload 20 /* load */
            aastore
        end local 20 // org.graalvm.compiler.nodes.java.LoadIndexedNode load
        45: .line 1078
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 19 /* i */
            iload 17 /* readLength */
            if_icmplt 42
        end local 19 // int i
        end local 18 // jdk.vm.ci.meta.ResolvedJavaType sourceType
        47: .line 1084
      StackMap locals:
      StackMap stack:
            iload 17 /* readLength */
            iload 14 /* newLengthInt */
            if_icmpge 54
        48: .line 1086
            aload 6 /* elementKind */
            aload 7 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.defaultForKind:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 18 /* defaultValue */
        start local 18 // org.graalvm.compiler.nodes.ValueNode defaultValue
        49: .line 1087
            iload 17 /* readLength */
            istore 19 /* i */
        start local 19 // int i
        50: goto 53
        51: .line 1088
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 16 /* newEntryState */
            iload 19 /* i */
            aload 18 /* defaultValue */
            aastore
        52: .line 1087
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        53: iload 19 /* i */
            iload 14 /* newLengthInt */
            if_icmplt 51
        end local 19 // int i
        end local 18 // org.graalvm.compiler.nodes.ValueNode defaultValue
        54: .line 1092
      StackMap locals:
      StackMap stack:
            aload 8 /* virtualArrayProvider */
            aload 5 /* newComponentType */
            iload 14 /* newLengthInt */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualArrayNode
            astore 18 /* newVirtualArray */
        start local 18 // org.graalvm.compiler.nodes.virtual.VirtualArrayNode newVirtualArray
        55: .line 1093
            aload 0 /* tool */
            aload 18 /* newVirtualArray */
            aload 16 /* newEntryState */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.createVirtualObject:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;[Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List;Z)V
        56: .line 1094
            aload 0 /* tool */
            aload 18 /* newVirtualArray */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.replaceWithVirtual:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)V
        57: .line 1095
            return
        end local 18 // org.graalvm.compiler.nodes.virtual.VirtualArrayNode newVirtualArray
        end local 17 // int readLength
        end local 16 // org.graalvm.compiler.nodes.ValueNode[] newEntryState
        end local 15 // int sourceLengthInt
        end local 14 // int newLengthInt
        end local 13 // int fromInt
        end local 12 // org.graalvm.compiler.nodes.ValueNode replacedFrom
        end local 11 // org.graalvm.compiler.nodes.ValueNode replacedNewLength
        end local 10 // org.graalvm.compiler.nodes.ValueNode replacedSourceLength
        end local 9 // org.graalvm.compiler.nodes.ValueNode sourceAlias
        end local 8 // java.util.function.BiFunction virtualArrayProvider
        end local 7 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 6 // jdk.vm.ci.meta.JavaKind elementKind
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType newComponentType
        end local 4 // org.graalvm.compiler.nodes.ValueNode from
        end local 3 // org.graalvm.compiler.nodes.ValueNode newLength
        end local 2 // org.graalvm.compiler.nodes.ValueNode sourceLength
        end local 1 // org.graalvm.compiler.nodes.ValueNode source
        end local 0 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   58     0                  tool  Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
            0   58     1                source  Lorg/graalvm/compiler/nodes/ValueNode;
            0   58     2          sourceLength  Lorg/graalvm/compiler/nodes/ValueNode;
            0   58     3             newLength  Lorg/graalvm/compiler/nodes/ValueNode;
            0   58     4                  from  Lorg/graalvm/compiler/nodes/ValueNode;
            0   58     5      newComponentType  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   58     6           elementKind  Ljdk/vm/ci/meta/JavaKind;
            0   58     7                 graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   58     8  virtualArrayProvider  Ljava/util/function/BiFunction<Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;>;
            1   58     9           sourceAlias  Lorg/graalvm/compiler/nodes/ValueNode;
            2   58    10  replacedSourceLength  Lorg/graalvm/compiler/nodes/ValueNode;
            3   58    11     replacedNewLength  Lorg/graalvm/compiler/nodes/ValueNode;
            4   58    12          replacedFrom  Lorg/graalvm/compiler/nodes/ValueNode;
            8   58    13               fromInt  I
            9   58    14          newLengthInt  I
           10   58    15       sourceLengthInt  I
           12   13    16         sourceVirtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           18   58    16         newEntryState  [Lorg/graalvm/compiler/nodes/ValueNode;
           19   58    17            readLength  I
           21   36    18         sourceVirtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           24   36    19      alwaysAssignable  Z
           25   36    20                     i  I
           27   34    21                 entry  Lorg/graalvm/compiler/nodes/ValueNode;
           29   33    22             entryType  Ljdk/vm/ci/meta/ResolvedJavaType;
           38   47    18            sourceType  Ljdk/vm/ci/meta/ResolvedJavaType;
           41   47    19                     i  I
           43   45    20                  load  Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
           49   54    18          defaultValue  Lorg/graalvm/compiler/nodes/ValueNode;
           50   54    19                     i  I
           55   58    18       newVirtualArray  Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;
    Signature: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/util/function/BiFunction<Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;>;)V
    MethodParameters:
                      Name  Flags
      tool                  
      source                
      sourceLength          
      newLength             
      from                  
      newComponentType      
      elementKind           
      graph                 
      virtualArrayProvider  

  public static boolean checkFrameState(org.graalvm.compiler.nodes.FixedNode, int);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.nodes.FixedNode start
        start local 1 // int maxDepth
         0: .line 1102
            iload 1 /* maxDepth */
            ifne 2
         1: .line 1103
            iconst_0
            ireturn
         2: .line 1105
      StackMap locals:
      StackMap stack:
            aload 0 /* start */
            astore 2 /* node */
        start local 2 // org.graalvm.compiler.nodes.FixedNode node
         3: .line 1107
      StackMap locals: org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractMergeNode
            ifeq 8
         4: .line 1108
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.AbstractMergeNode
            astore 3 /* mergeNode */
        start local 3 // org.graalvm.compiler.nodes.AbstractMergeNode mergeNode
         5: .line 1109
            aload 3 /* mergeNode */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnonnull 7
         6: .line 1110
            iconst_0
            ireturn
         7: .line 1112
      StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // org.graalvm.compiler.nodes.AbstractMergeNode mergeNode
         8: .line 1114
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.StateSplit
            ifeq 12
         9: .line 1115
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.StateSplit
            astore 3 /* stateSplitNode */
        start local 3 // org.graalvm.compiler.nodes.StateSplit stateSplitNode
        10: .line 1116
            aload 3 /* stateSplitNode */
            invokeinterface org.graalvm.compiler.nodes.StateSplit.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 12
        11: .line 1117
            iconst_1
            ireturn
        end local 3 // org.graalvm.compiler.nodes.StateSplit stateSplitNode
        12: .line 1121
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 20
        13: .line 1122
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.ControlSplitNode
            astore 3 /* controlSplitNode */
        start local 3 // org.graalvm.compiler.nodes.ControlSplitNode controlSplitNode
        14: .line 1123
            aload 3 /* controlSplitNode */
            invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.ControlSplitNode top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 4 /* succ */
        start local 4 // org.graalvm.compiler.graph.Node succ
        16: .line 1124
            aload 4 /* succ */
            checkcast org.graalvm.compiler.nodes.FixedNode
            iload 1 /* maxDepth */
            iconst_1
            isub
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;I)Z
            ifeq 18
        17: .line 1125
            iconst_1
            ireturn
        end local 4 // org.graalvm.compiler.graph.Node succ
        18: .line 1123
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        19: .line 1128
            iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.nodes.ControlSplitNode controlSplitNode
        20: .line 1129
      StackMap locals: org.graalvm.compiler.nodes.FixedNode int org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifeq 24
        21: .line 1130
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 3 /* fixedWithNextNode */
        start local 3 // org.graalvm.compiler.nodes.FixedWithNextNode fixedWithNextNode
        22: .line 1131
            aload 3 /* fixedWithNextNode */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 2 /* node */
        end local 3 // org.graalvm.compiler.nodes.FixedWithNextNode fixedWithNextNode
        23: .line 1132
            goto 3
      StackMap locals:
      StackMap stack:
        24: aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.AbstractEndNode
            ifeq 28
        25: .line 1133
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            astore 3 /* endNode */
        start local 3 // org.graalvm.compiler.nodes.AbstractEndNode endNode
        26: .line 1134
            aload 3 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            astore 2 /* node */
        end local 3 // org.graalvm.compiler.nodes.AbstractEndNode endNode
        27: .line 1135
            goto 3
      StackMap locals:
      StackMap stack:
        28: aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifeq 30
        29: .line 1136
            iconst_1
            ireturn
        30: .line 1138
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.util.GraphUtil.$assertionsDisabled:Z
            ifne 31
            new java.lang.AssertionError
            dup
            ldc "unexpected node"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        31: .line 1139
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.nodes.FixedNode node
        end local 1 // int maxDepth
        end local 0 // org.graalvm.compiler.nodes.FixedNode start
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0              start  Lorg/graalvm/compiler/nodes/FixedNode;
            0   32     1           maxDepth  I
            3   32     2               node  Lorg/graalvm/compiler/nodes/FixedNode;
            5    8     3          mergeNode  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
           10   12     3     stateSplitNode  Lorg/graalvm/compiler/nodes/StateSplit;
           14   20     3   controlSplitNode  Lorg/graalvm/compiler/nodes/ControlSplitNode;
           16   18     4               succ  Lorg/graalvm/compiler/graph/Node;
           22   23     3  fixedWithNextNode  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
           26   27     3            endNode  Lorg/graalvm/compiler/nodes/AbstractEndNode;
    MethodParameters:
          Name  Flags
      start     
      maxDepth  

  public static boolean mayRemoveSplit(org.graalvm.compiler.nodes.IfNode);
    descriptor: (Lorg/graalvm/compiler/nodes/IfNode;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.IfNode ifNode
         0: .line 1145
            aload 0 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            iconst_4
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;I)Z
            ifeq 1
            aload 0 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            iconst_4
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.checkFrameState:(Lorg/graalvm/compiler/nodes/FixedNode;I)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.IfNode ifNode
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  ifNode  Lorg/graalvm/compiler/nodes/IfNode;
    MethodParameters:
        Name  Flags
      ifNode  

  private static boolean lambda$0(jdk.internal.vm.compiler.collections.EconomicSet, org.graalvm.compiler.graph.Node);
    descriptor: (Ljdk/internal/vm/compiler/collections/EconomicSet;Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.graph.Node n
         0: .line 187
            aload 0
            aload 1 /* n */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.graph.Node n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     n  Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "GraphUtil.java"
NestMembers:
  org.graalvm.compiler.nodes.util.GraphUtil$1  org.graalvm.compiler.nodes.util.GraphUtil$2  org.graalvm.compiler.nodes.util.GraphUtil$2$1  org.graalvm.compiler.nodes.util.GraphUtil$DefaultSimplifierTool  org.graalvm.compiler.nodes.util.GraphUtil$Options
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
  public abstract NodeEventListener = org.graalvm.compiler.graph.Graph$NodeEventListener of org.graalvm.compiler.graph.Graph
  public final NodeEventScope = org.graalvm.compiler.graph.Graph$NodeEventScope of org.graalvm.compiler.graph.Graph
  public Options = org.graalvm.compiler.graph.Graph$Options of org.graalvm.compiler.graph.Graph
  public final FindLengthMode = org.graalvm.compiler.nodes.spi.ArrayLengthProvider$FindLengthMode of org.graalvm.compiler.nodes.spi.ArrayLengthProvider
  org.graalvm.compiler.nodes.util.GraphUtil$1
  org.graalvm.compiler.nodes.util.GraphUtil$2
  private final DefaultSimplifierTool = org.graalvm.compiler.nodes.util.GraphUtil$DefaultSimplifierTool of org.graalvm.compiler.nodes.util.GraphUtil
  public Options = org.graalvm.compiler.nodes.util.GraphUtil$Options of org.graalvm.compiler.nodes.util.GraphUtil