class org.graalvm.compiler.nodes.LoopDetector implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.nodes.LoopDetector
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.nodes.StructuredGraph graph;
    descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.GraphDecoder$MethodScope methodScope;
    descriptor: Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.graalvm.compiler.nodes.LoopDetector$Loop irreducibleLoopHandler;
    descriptor: Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.nodes.extended.IntegerSwitchNode irreducibleLoopSwitch;
    descriptor: Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
    flags: (0x0002) ACC_PRIVATE

  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 1618
            ldc Lorg/graalvm/compiler/nodes/LoopDetector;
            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.LoopDetector.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.GraphDecoder$MethodScope);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.GraphDecoder$MethodScope methodScope
         0: .line 1651
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1652
            aload 0 /* this */
            aload 1 /* graph */
            putfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
         2: .line 1653
            aload 0 /* this */
            aload 2 /* methodScope */
            putfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
         3: .line 1654
            return
        end local 2 // org.graalvm.compiler.nodes.GraphDecoder$MethodScope methodScope
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0    4     1        graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     2  methodScope  Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
    MethodParameters:
             Name  Flags
      graph        
      methodScope  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
         0: .line 1658
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 1 /* debug */
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 1659
            aload 1 /* debug */
            iconst_4
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "Before loop detection"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
         2: .line 1661
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionHead:Lorg/graalvm/compiler/nodes/MergeNode;
            ifnonnull 4
         3: .line 1667
            return
         4: .line 1670
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findLoops:()Ljava/util/List;
            astore 2 /* orderedLoops */
        start local 2 // java.util.List orderedLoops
         5: .line 1671
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 6
            aload 2 /* orderedLoops */
            aload 2 /* orderedLoops */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            if_acmpeq 6
            new java.lang.AssertionError
            dup
            ldc "outermost loop must be the last element in the list"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 1673
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* orderedLoops */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.debug.DebugContext java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopDetector$Loop
            astore 3 /* loop */
        start local 3 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         8: .line 1674
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         9: .line 1675
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 16
            aload 3 /* loop */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            if_acmpeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1684
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.debug.DebugContext java.util.List org.graalvm.compiler.nodes.LoopDetector$Loop java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 3 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findLoopExits:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        11: .line 1686
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
            ifeq 14
        12: .line 1687
            aload 0 /* this */
            aload 3 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.handleIrreducibleLoop:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        13: .line 1688
            goto 15
        14: .line 1689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.insertLoopNodes:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        15: .line 1691
      StackMap locals:
      StackMap stack:
            aload 1 /* debug */
            iconst_4
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After handling of loop %s"
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        16: .line 1673
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.debug.DebugContext java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        17: .line 1694
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.logIrreducibleLoops:()V
        18: .line 1695
            aload 1 /* debug */
            iconst_4
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After loop detection"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        19: .line 1696
            return
        end local 2 // java.util.List orderedLoops
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   20     1         debug  Lorg/graalvm/compiler/debug/DebugContext;
            5   20     2  orderedLoops  Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            8   16     3          loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;

  private java.util.List<org.graalvm.compiler.nodes.LoopDetector$Loop> findLoops();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
         0: .line 1700
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 1 /* unorderedLoops */
        start local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
         1: .line 1702
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* orderedLoops */
        start local 2 // java.util.List orderedLoops
         2: .line 1708
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionHead:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            putfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
         3: .line 1710
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
            astore 3 /* visited */
        start local 3 // org.graalvm.compiler.graph.NodeBitMap visited
         4: .line 1711
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
            astore 4 /* active */
        start local 4 // org.graalvm.compiler.graph.NodeBitMap active
         5: .line 1712
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 5 /* stack */
        start local 5 // java.util.Deque stack
         6: .line 1713
            aload 3 /* visited */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionHead:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
         7: .line 1714
            aload 5 /* stack */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionHead:Lorg/graalvm/compiler/nodes/MergeNode;
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         8: .line 1716
            goto 32
         9: .line 1717
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 5 /* stack */
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* current */
        start local 6 // org.graalvm.compiler.graph.Node current
        10: .line 1718
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 11
            aload 3 /* visited */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1720
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 20
        12: .line 1722
            aload 5 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
        13: .line 1723
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.clear:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1725
            aload 6 /* current */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifeq 32
        15: .line 1726
            aload 1 /* unorderedLoops */
            aload 6 /* current */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopDetector$Loop
            astore 7 /* loop */
        start local 7 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        16: .line 1727
            aload 7 /* loop */
            ifnull 32
        17: .line 1732
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 18
            aload 2 /* orderedLoops */
            aload 7 /* loop */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 1733
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector$Loop
      StackMap stack:
            aload 2 /* orderedLoops */
            aload 7 /* loop */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        19: .line 1737
            goto 32
        20: .line 1743
      StackMap locals:
      StackMap stack:
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        21: .line 1744
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 31
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 7 /* successor */
        start local 7 // org.graalvm.compiler.graph.Node successor
        23: .line 1745
            aload 4 /* active */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 28
        24: .line 1747
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 7 /* successor */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            astore 9 /* loop */
        start local 9 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        25: .line 1748
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 26
            aload 9 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            aload 6 /* current */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 1749
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.LoopDetector$Loop
      StackMap stack:
            aload 9 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            aload 6 /* current */
            checkcast org.graalvm.compiler.nodes.EndNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        27: .line 1751
            goto 31
      StackMap locals:
      StackMap stack:
        28: aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 31
        29: .line 1756
            aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1757
            aload 5 /* stack */
            aload 7 /* successor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.graph.Node successor
        31: .line 1744
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 6 // org.graalvm.compiler.graph.Node current
        32: .line 1716
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 5 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 9
        33: .line 1762
            aload 2 /* orderedLoops */
            areturn
        end local 5 // java.util.Deque stack
        end local 4 // org.graalvm.compiler.graph.NodeBitMap active
        end local 3 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 2 // java.util.List orderedLoops
        end local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   34     1  unorderedLoops  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            2   34     2    orderedLoops  Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            4   34     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            5   34     4          active  Lorg/graalvm/compiler/graph/NodeBitMap;
            6   34     5           stack  Ljava/util/Deque<Lorg/graalvm/compiler/graph/Node;>;
           10   32     6         current  Lorg/graalvm/compiler/graph/Node;
           16   19     7            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
           23   31     7       successor  Lorg/graalvm/compiler/graph/Node;
           25   27     9            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    Signature: ()Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;

  private org.graalvm.compiler.nodes.LoopDetector$Loop findOrCreateLoop(jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.nodes.MergeNode, org.graalvm.compiler.nodes.LoopDetector$Loop>, org.graalvm.compiler.nodes.MergeNode);
    descriptor: (Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
        start local 2 // org.graalvm.compiler.nodes.MergeNode loopHeader
         0: .line 1766
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 2 /* loopHeader */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            aload 2 /* loopHeader */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1767
      StackMap locals:
      StackMap stack:
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopDetector$Loop
            astore 3 /* loop */
        start local 3 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         2: .line 1768
            aload 3 /* loop */
            ifnonnull 6
         3: .line 1769
            new org.graalvm.compiler.nodes.LoopDetector$Loop
            dup
            invokespecial org.graalvm.compiler.nodes.LoopDetector$Loop.<init>:()V
            astore 3 /* loop */
         4: .line 1770
            aload 3 /* loop */
            aload 2 /* loopHeader */
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
         5: .line 1771
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            aload 3 /* loop */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1773
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector$Loop
      StackMap stack:
            aload 3 /* loop */
            areturn
        end local 3 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 2 // org.graalvm.compiler.nodes.MergeNode loopHeader
        end local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0    7     1  unorderedLoops  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            0    7     2      loopHeader  Lorg/graalvm/compiler/nodes/MergeNode;
            2    7     3            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    Signature: (Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    MethodParameters:
                Name  Flags
      unorderedLoops  
      loopHeader      

  private void findLoopExits(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 1784
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* possibleExits */
        start local 2 // java.util.List possibleExits
         1: .line 1785
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
            astore 3 /* visited */
        start local 3 // org.graalvm.compiler.graph.NodeBitMap visited
         2: .line 1786
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* stack */
        start local 4 // java.util.Deque stack
         3: .line 1787
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 5 /* loopEnd */
        start local 5 // org.graalvm.compiler.nodes.EndNode loopEnd
         5: .line 1788
            aload 4 /* stack */
            aload 5 /* loopEnd */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         6: .line 1789
            aload 3 /* visited */
            aload 5 /* loopEnd */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        end local 5 // org.graalvm.compiler.nodes.EndNode loopEnd
         7: .line 1787
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1792
            goto 36
         9: .line 1793
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* current */
        start local 5 // org.graalvm.compiler.graph.Node current
        10: .line 1794
            aload 5 /* current */
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            if_acmpne 12
        11: .line 1795
            goto 36
        12: .line 1797
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.methodStartMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            aload 5 /* current */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifne 15
        13: .line 1802
            aload 1 /* loop */
            iconst_1
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
        14: .line 1803
            return
        15: .line 1806
      StackMap locals:
      StackMap stack:
            aload 5 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgPredecessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 35
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* predecessor */
        start local 6 // org.graalvm.compiler.graph.Node predecessor
        17: .line 1807
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 27
        18: .line 1812
            aload 6 /* predecessor */
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 8 /* innerLoopBegin */
        start local 8 // org.graalvm.compiler.nodes.LoopBeginNode innerLoopBegin
        19: .line 1813
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 35
        20: .line 1814
            aload 4 /* stack */
            aload 8 /* innerLoopBegin */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        21: .line 1815
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 1822
            aload 8 /* innerLoopBegin */
            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 10
            goto 25
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.LoopBeginNode top java.util.Iterator
      StackMap stack:
        23: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            astore 9 /* exit */
        start local 9 // org.graalvm.compiler.nodes.LoopExitNode exit
        24: .line 1823
            aload 2 /* possibleExits */
            aload 9 /* exit */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.graalvm.compiler.nodes.LoopExitNode exit
        25: .line 1822
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 8 // org.graalvm.compiler.nodes.LoopBeginNode innerLoopBegin
        26: .line 1827
            goto 35
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
        27: aload 3 /* visited */
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 35
        28: .line 1828
            aload 4 /* stack */
            aload 6 /* predecessor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        29: .line 1829
            aload 3 /* visited */
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1831
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 35
        31: .line 1832
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 34
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator top java.util.Iterator
      StackMap stack:
        32: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 8 /* succ */
        start local 8 // org.graalvm.compiler.graph.Node succ
        33: .line 1840
            aload 2 /* possibleExits */
            aload 8 /* succ */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.graalvm.compiler.graph.Node succ
        34: .line 1832
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        end local 6 // org.graalvm.compiler.graph.Node predecessor
        35: .line 1806
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 5 // org.graalvm.compiler.graph.Node current
        36: .line 1792
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 9
        37: .line 1862
            aload 2 /* possibleExits */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 43
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
      StackMap stack:
        38: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* succ */
        start local 5 // org.graalvm.compiler.graph.Node succ
        39: .line 1863
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 43
        40: .line 1864
            aload 4 /* stack */
            aload 5 /* succ */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        41: .line 1865
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        42: .line 1866
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 43
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 5 /* succ */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 43
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // org.graalvm.compiler.graph.Node succ
        43: .line 1862
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        44: .line 1870
            goto 59
        45: .line 1871
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* current */
        start local 5 // org.graalvm.compiler.graph.Node current
        46: .line 1872
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 47
            aload 3 /* visited */
            aload 5 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 1873
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 48
            aload 5 /* current */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifne 48
            aload 5 /* current */
            instanceof org.graalvm.compiler.nodes.LoopEndNode
            ifne 48
            aload 5 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
            new java.lang.AssertionError
            dup
            ldc "Must not reach a node that has not been decoded yet"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        48: .line 1875
      StackMap locals:
      StackMap stack:
            aload 5 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 58
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
        49: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* successor */
        start local 6 // org.graalvm.compiler.graph.Node successor
        50: .line 1876
            aload 3 /* visited */
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 58
        51: .line 1879
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 6 /* successor */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 56
        52: .line 1886
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 53
            aload 6 /* successor */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifne 53
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        53: .line 1887
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 54
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            aload 5 /* current */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 54
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        54: .line 1888
      StackMap locals:
      StackMap stack:
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            aload 5 /* current */
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        55: .line 1890
            goto 58
        56: .line 1892
      StackMap locals:
      StackMap stack:
            aload 3 /* visited */
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        57: .line 1893
            aload 4 /* stack */
            aload 6 /* successor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        end local 6 // org.graalvm.compiler.graph.Node successor
        58: .line 1875
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        end local 5 // org.graalvm.compiler.graph.Node current
        59: .line 1870
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop java.util.List org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 45
        60: .line 1897
            return
        end local 4 // java.util.Deque stack
        end local 3 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 2 // java.util.List possibleExits
        end local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   61     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   61     1            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            1   61     2   possibleExits  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
            2   61     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            3   61     4           stack  Ljava/util/Deque<Lorg/graalvm/compiler/graph/Node;>;
            5    7     5         loopEnd  Lorg/graalvm/compiler/nodes/EndNode;
           10   36     5         current  Lorg/graalvm/compiler/graph/Node;
           17   35     6     predecessor  Lorg/graalvm/compiler/graph/Node;
           19   26     8  innerLoopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           24   25     9            exit  Lorg/graalvm/compiler/nodes/LoopExitNode;
           33   34     8            succ  Lorg/graalvm/compiler/graph/Node;
           39   43     5            succ  Lorg/graalvm/compiler/graph/Node;
           46   59     5         current  Lorg/graalvm/compiler/graph/Node;
           50   58     6       successor  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      loop  

  private void insertLoopNodes(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 1900
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            astore 2 /* merge */
        start local 2 // org.graalvm.compiler.nodes.MergeNode merge
         1: .line 1901
            aload 2 /* merge */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.FrameState.duplicate:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 3 /* stateAfter */
        start local 3 // org.graalvm.compiler.nodes.FrameState stateAfter
         2: .line 1902
            aload 2 /* merge */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 4 /* afterMerge */
        start local 4 // org.graalvm.compiler.nodes.FixedNode afterMerge
         3: .line 1903
            aload 2 /* merge */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 1904
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.EndNode
            dup
            invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 5 /* preLoopEnd */
        start local 5 // org.graalvm.compiler.nodes.EndNode preLoopEnd
         5: .line 1905
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.LoopBeginNode
            dup
            invokespecial org.graalvm.compiler.nodes.LoopBeginNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            astore 6 /* loopBegin */
        start local 6 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
         6: .line 1907
            aload 2 /* merge */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         7: .line 1909
            aload 6 /* loopBegin */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
         8: .line 1910
            aload 6 /* loopBegin */
            aload 4 /* afterMerge */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 1911
            aload 6 /* loopBegin */
            aload 3 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        10: .line 1918
            aload 2 /* merge */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 7 /* mergePhis */
        start local 7 // java.util.List mergePhis
        11: .line 1919
            new java.util.ArrayList
            dup
            aload 7 /* mergePhis */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* loopBeginPhis */
        start local 8 // java.util.List loopBeginPhis
        12: .line 1920
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 20
        14: .line 1921
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List int
      StackMap stack:
            aload 7 /* mergePhis */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 10 /* mergePhi */
        start local 10 // org.graalvm.compiler.nodes.PhiNode mergePhi
        15: .line 1922
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ValuePhiNode
            dup
            aload 10 /* mergePhi */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* loopBegin */
            invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 11 /* loopBeginPhi */
        start local 11 // org.graalvm.compiler.nodes.PhiNode loopBeginPhi
        16: .line 1923
            aload 10 /* mergePhi */
            aload 11 /* loopBeginPhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 1928
            aload 11 /* loopBeginPhi */
            aload 10 /* mergePhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        18: .line 1929
            aload 8 /* loopBeginPhis */
            aload 11 /* loopBeginPhi */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.graalvm.compiler.nodes.PhiNode loopBeginPhi
        end local 10 // org.graalvm.compiler.nodes.PhiNode mergePhi
        19: .line 1920
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 9 /* i */
            aload 7 /* mergePhis */
            invokeinterface java.util.List.size:()I
            if_icmplt 14
        end local 9 // int i
        21: .line 1932
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 33
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 9 /* endNode */
        start local 9 // org.graalvm.compiler.nodes.EndNode endNode
        23: .line 1933
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 29
        25: .line 1934
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List org.graalvm.compiler.nodes.EndNode java.util.Iterator int
      StackMap stack:
            aload 7 /* mergePhis */
            iload 11 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 12 /* mergePhi */
        start local 12 // org.graalvm.compiler.nodes.PhiNode mergePhi
        26: .line 1935
            aload 8 /* loopBeginPhis */
            iload 11 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 13 /* loopBeginPhi */
        start local 13 // org.graalvm.compiler.nodes.PhiNode loopBeginPhi
        27: .line 1936
            aload 13 /* loopBeginPhi */
            aload 12 /* mergePhi */
            aload 9 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 13 // org.graalvm.compiler.nodes.PhiNode loopBeginPhi
        end local 12 // org.graalvm.compiler.nodes.PhiNode mergePhi
        28: .line 1933
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 11 /* i */
            aload 7 /* mergePhis */
            invokeinterface java.util.List.size:()I
            if_icmplt 25
        end local 11 // int i
        30: .line 1939
            aload 2 /* merge */
            aload 9 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        31: .line 1940
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.LoopEndNode
            dup
            aload 6 /* loopBegin */
            invokespecial org.graalvm.compiler.nodes.LoopEndNode.<init>:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LoopEndNode
            astore 11 /* loopEnd */
        start local 11 // org.graalvm.compiler.nodes.LoopEndNode loopEnd
        32: .line 1941
            aload 9 /* endNode */
            aload 11 /* loopEnd */
            invokevirtual org.graalvm.compiler.nodes.EndNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 11 // org.graalvm.compiler.nodes.LoopEndNode loopEnd
        end local 9 // org.graalvm.compiler.nodes.EndNode endNode
        33: .line 1932
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        34: .line 1948
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 42
      StackMap locals:
      StackMap stack:
        35: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            astore 9 /* exit */
        start local 9 // org.graalvm.compiler.nodes.AbstractEndNode exit
        36: .line 1949
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            astore 11 /* loopExplosionMerge */
        start local 11 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        37: .line 1950
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 38
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 11 /* loopExplosionMerge */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 1952
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List org.graalvm.compiler.nodes.AbstractEndNode java.util.Iterator org.graalvm.compiler.nodes.AbstractMergeNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.LoopExitNode
            dup
            aload 6 /* loopBegin */
            invokespecial org.graalvm.compiler.nodes.LoopExitNode.<init>:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            astore 12 /* loopExit */
        start local 12 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        39: .line 1953
            aload 9 /* exit */
            aload 12 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        40: .line 1954
            aload 12 /* loopExit */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        41: .line 1955
            aload 0 /* this */
            aload 12 /* loopExit */
            aload 11 /* loopExplosionMerge */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.assignLoopExitState:(Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        end local 12 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        end local 11 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        end local 9 // org.graalvm.compiler.nodes.AbstractEndNode exit
        42: .line 1948
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.MergeNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.EndNode org.graalvm.compiler.nodes.LoopBeginNode java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        43: .line 1957
            return
        end local 8 // java.util.List loopBeginPhis
        end local 7 // java.util.List mergePhis
        end local 6 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 5 // org.graalvm.compiler.nodes.EndNode preLoopEnd
        end local 4 // org.graalvm.compiler.nodes.FixedNode afterMerge
        end local 3 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 2 // org.graalvm.compiler.nodes.MergeNode merge
        end local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   44     0                this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   44     1                loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            1   44     2               merge  Lorg/graalvm/compiler/nodes/MergeNode;
            2   44     3          stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
            3   44     4          afterMerge  Lorg/graalvm/compiler/nodes/FixedNode;
            5   44     5          preLoopEnd  Lorg/graalvm/compiler/nodes/EndNode;
            6   44     6           loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           11   44     7           mergePhis  Ljava/util/List<Lorg/graalvm/compiler/nodes/PhiNode;>;
           12   44     8       loopBeginPhis  Ljava/util/List<Lorg/graalvm/compiler/nodes/PhiNode;>;
           13   21     9                   i  I
           15   19    10            mergePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           16   19    11        loopBeginPhi  Lorg/graalvm/compiler/nodes/PhiNode;
           23   33     9             endNode  Lorg/graalvm/compiler/nodes/EndNode;
           24   30    11                   i  I
           26   28    12            mergePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           27   28    13        loopBeginPhi  Lorg/graalvm/compiler/nodes/PhiNode;
           32   33    11             loopEnd  Lorg/graalvm/compiler/nodes/LoopEndNode;
           36   42     9                exit  Lorg/graalvm/compiler/nodes/AbstractEndNode;
           37   42    11  loopExplosionMerge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
           39   42    12            loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
    MethodParameters:
      Name  Flags
      loop  

  private void assignLoopExitState(org.graalvm.compiler.nodes.LoopExitNode, org.graalvm.compiler.nodes.AbstractMergeNode, org.graalvm.compiler.nodes.AbstractEndNode);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=13, args_size=4
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        start local 2 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        start local 3 // org.graalvm.compiler.nodes.AbstractEndNode loopExplosionEnd
         0: .line 1966
            aload 2 /* loopExplosionMerge */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 4 /* oldState */
        start local 4 // org.graalvm.compiler.nodes.FrameState oldState
         1: .line 1969
            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 5 /* loopBeginValues */
        start local 5 // jdk.internal.vm.compiler.collections.EconomicSet loopBeginValues
         2: .line 1970
            aload 1 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 6 /* state */
        start local 6 // org.graalvm.compiler.nodes.FrameState state
         3: goto 10
         4: .line 1971
      StackMap locals: org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* value */
        start local 7 // org.graalvm.compiler.nodes.ValueNode value
         6: .line 1972
            aload 7 /* value */
            ifnull 8
            aload 7 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 8
            aload 1 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            aload 7 /* value */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 8
         7: .line 1973
            aload 5 /* loopBeginValues */
            aload 7 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.nodes.ValueNode value
         8: .line 1971
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 1970
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 6 /* state */
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState
      StackMap stack:
        10: aload 6 /* state */
            ifnonnull 4
        end local 6 // org.graalvm.compiler.nodes.FrameState state
        11: .line 1978
            new java.util.ArrayList
            dup
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* newValues */
        start local 6 // java.util.List newValues
        12: .line 1979
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 30
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* v */
        start local 7 // org.graalvm.compiler.nodes.ValueNode v
        14: .line 1980
            aload 7 /* v */
            astore 9 /* value */
        start local 9 // org.graalvm.compiler.nodes.ValueNode value
        15: .line 1981
            aload 9 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* realValue */
        start local 10 // org.graalvm.compiler.nodes.ValueNode realValue
        16: .line 1988
            aload 10 /* realValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 19
            aload 2 /* loopExplosionMerge */
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 19
        17: .line 1989
            aload 10 /* realValue */
            checkcast org.graalvm.compiler.nodes.PhiNode
            aload 3 /* loopExplosionEnd */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* value */
        18: .line 1990
            aload 9 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* realValue */
        19: .line 1993
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List org.graalvm.compiler.nodes.ValueNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 10 /* realValue */
            ifnull 20
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 20
            aload 5 /* loopBeginValues */
            aload 10 /* realValue */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 20
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.methodStartMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifne 22
        20: .line 1994
      StackMap locals:
      StackMap stack:
            aload 6 /* newValues */
            aload 10 /* realValue */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1995
            goto 30
        22: .line 2000
      StackMap locals:
      StackMap stack:
            aload 9 /* value */
            instanceof org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            ifeq 23
            aload 9 /* value */
            checkcast org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            getfield org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.proxyPoint:Lorg/graalvm/compiler/graph/Node;
            aload 2 /* loopExplosionMerge */
            if_acmpne 23
            iconst_1
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_0
        24: .line 2001
      StackMap locals:
      StackMap stack: int
            ldc "Value flowing out of loop, but we are not prepared to insert a ProxyNode"
        25: .line 2000
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        26: .line 2003
            aload 9 /* value */
            checkcast org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            astore 11 /* proxyPlaceholder */
        start local 11 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        27: .line 2004
            aload 11 /* proxyPlaceholder */
            getfield org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.value:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* loopExit */
            invokestatic org.graalvm.compiler.nodes.ProxyNode.forValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)Lorg/graalvm/compiler/nodes/ValueProxyNode;
            astore 12 /* proxy */
        start local 12 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        28: .line 2005
            aload 11 /* proxyPlaceholder */
            aload 12 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.setValue:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        29: .line 2006
            aload 6 /* newValues */
            aload 12 /* proxy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        end local 11 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        end local 10 // org.graalvm.compiler.nodes.ValueNode realValue
        end local 9 // org.graalvm.compiler.nodes.ValueNode value
        end local 7 // org.graalvm.compiler.nodes.ValueNode v
        30: .line 1979
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        31: .line 2010
            new org.graalvm.compiler.nodes.FrameState
            dup
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.getCode:()Lorg/graalvm/compiler/bytecode/Bytecode;
            aload 4 /* oldState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            aload 6 /* newValues */
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.rethrowException:()Z
        32: .line 2011
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duringCall:()Z
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIds:()Lorg/graalvm/compiler/graph/NodeInputList;
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        33: .line 2010
            invokespecial org.graalvm.compiler.nodes.FrameState.<init>:(Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/bytecode/Bytecode;ILjava/util/List;IIZZLjava/util/List;Ljava/util/List;)V
            astore 7 /* newState */
        start local 7 // org.graalvm.compiler.nodes.FrameState newState
        34: .line 2013
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 35
            aload 1 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 2014
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 1 /* loopExit */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 7 /* newState */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FrameState
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        36: .line 2015
            return
        end local 7 // org.graalvm.compiler.nodes.FrameState newState
        end local 6 // java.util.List newValues
        end local 5 // jdk.internal.vm.compiler.collections.EconomicSet loopBeginValues
        end local 4 // org.graalvm.compiler.nodes.FrameState oldState
        end local 3 // org.graalvm.compiler.nodes.AbstractEndNode loopExplosionEnd
        end local 2 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        end local 1 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   37     0                this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   37     1            loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
            0   37     2  loopExplosionMerge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            0   37     3    loopExplosionEnd  Lorg/graalvm/compiler/nodes/AbstractEndNode;
            1   37     4            oldState  Lorg/graalvm/compiler/nodes/FrameState;
            2   37     5     loopBeginValues  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            3   11     6               state  Lorg/graalvm/compiler/nodes/FrameState;
            6    8     7               value  Lorg/graalvm/compiler/nodes/ValueNode;
           12   37     6           newValues  Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
           14   30     7                   v  Lorg/graalvm/compiler/nodes/ValueNode;
           15   30     9               value  Lorg/graalvm/compiler/nodes/ValueNode;
           16   30    10           realValue  Lorg/graalvm/compiler/nodes/ValueNode;
           27   30    11    proxyPlaceholder  Lorg/graalvm/compiler/nodes/GraphDecoder$ProxyPlaceholder;
           28   30    12               proxy  Lorg/graalvm/compiler/nodes/ValueProxyNode;
           34   37     7            newState  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
                    Name  Flags
      loopExit            
      loopExplosionMerge  
      loopExplosionEnd    

  private void handleIrreducibleLoop(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=18, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 2041
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 1
            aload 1 /* loop */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            if_acmpne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2043
      StackMap locals:
      StackMap stack:
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 2 /* loopState */
        start local 2 // org.graalvm.compiler.nodes.FrameState loopState
         2: .line 2044
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 3 /* explosionHeadState */
        start local 3 // org.graalvm.compiler.nodes.FrameState explosionHeadState
         3: .line 2045
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 4
            aload 2 /* loopState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            aload 3 /* explosionHeadState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            if_acmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2046
      StackMap locals: org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 2 /* loopState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            astore 4 /* loopValues */
        start local 4 // org.graalvm.compiler.graph.NodeInputList loopValues
         5: .line 2047
            aload 3 /* explosionHeadState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            astore 5 /* explosionHeadValues */
        start local 5 // org.graalvm.compiler.graph.NodeInputList explosionHeadValues
         6: .line 2048
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 7
            aload 4 /* loopValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            aload 5 /* explosionHeadValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            if_icmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 2054
      StackMap locals: org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList
      StackMap stack:
            iconst_m1
            istore 6 /* loopVariableIndex */
        start local 6 // int loopVariableIndex
         8: .line 2055
            aconst_null
            astore 7 /* loopValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode loopValue
         9: .line 2056
            aconst_null
            astore 8 /* explosionHeadValue */
        start local 8 // org.graalvm.compiler.nodes.ValueNode explosionHeadValue
        10: .line 2057
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        11: goto 21
        12: .line 2058
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 4 /* loopValues */
            iload 9 /* i */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 10 /* curLoopValue */
        start local 10 // org.graalvm.compiler.nodes.ValueNode curLoopValue
        13: .line 2059
            aload 5 /* explosionHeadValues */
            iload 9 /* i */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 11 /* curExplosionHeadValue */
        start local 11 // org.graalvm.compiler.nodes.ValueNode curExplosionHeadValue
        14: .line 2061
            aload 10 /* curLoopValue */
            aload 11 /* curExplosionHeadValue */
            if_acmpeq 20
        15: .line 2062
            iload 6 /* loopVariableIndex */
            iconst_m1
            if_icmpeq 17
        16: .line 2063
            new java.lang.StringBuilder
            dup
            ldc "must have only one variable that is changed in loop. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* loopValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* explosionHeadValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* curLoopValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* curExplosionHeadValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.nodes.LoopDetector.bailout:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        17: .line 2066
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 9 /* i */
            istore 6 /* loopVariableIndex */
        18: .line 2067
            aload 10 /* curLoopValue */
            astore 7 /* loopValue */
        19: .line 2068
            aload 11 /* curExplosionHeadValue */
            astore 8 /* explosionHeadValue */
        end local 11 // org.graalvm.compiler.nodes.ValueNode curExplosionHeadValue
        end local 10 // org.graalvm.compiler.nodes.ValueNode curLoopValue
        20: .line 2057
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 9 /* i */
            aload 4 /* loopValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            if_icmplt 12
        end local 9 // int i
        22: .line 2071
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 23
            iload 6 /* loopVariableIndex */
            iconst_m1
            if_icmpne 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 2072
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 24
            aload 8 /* explosionHeadValue */
            ifnonnull 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 2075
      StackMap locals:
      StackMap stack:
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 10 /* dispatchTable */
        start local 10 // java.util.SortedMap dispatchTable
        25: .line 2077
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnonnull 60
        26: .line 2082
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 27
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 8 /* explosionHeadValue */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 2083
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode top java.util.SortedMap
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 28
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
            ifne 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 2086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ValuePhiNode
            dup
            aload 8 /* explosionHeadValue */
            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.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            astore 9 /* loopVariablePhi */
        start local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        29: .line 2087
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        30: goto 33
        31: .line 2088
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap top int
      StackMap stack:
            aload 9 /* loopVariablePhi */
            aload 8 /* explosionHeadValue */
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        32: .line 2087
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 12 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phiPredecessorCount:()I
            if_icmplt 31
        end local 12 // int i
        34: .line 2095
            aload 3 /* explosionHeadState */
            astore 12 /* oldFrameState */
        start local 12 // org.graalvm.compiler.nodes.FrameState oldFrameState
        35: .line 2096
            new java.util.ArrayList
            dup
            aload 5 /* explosionHeadValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 13 /* newFrameStateValues */
        start local 13 // java.util.List newFrameStateValues
        36: .line 2097
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        37: goto 43
        38: .line 2098
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap top org.graalvm.compiler.nodes.FrameState java.util.List int
      StackMap stack:
            iload 14 /* i */
            iload 6 /* loopVariableIndex */
            if_icmpne 41
        39: .line 2099
            aload 13 /* newFrameStateValues */
            aload 9 /* loopVariablePhi */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 2100
            goto 42
        41: .line 2101
      StackMap locals:
      StackMap stack:
            aload 13 /* newFrameStateValues */
            aload 5 /* explosionHeadValues */
            iload 14 /* i */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 2097
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 14 /* i */
            aload 5 /* explosionHeadValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            if_icmplt 38
        end local 14 // int i
        44: .line 2105
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
        45: .line 2106
            new org.graalvm.compiler.nodes.FrameState
            dup
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.getCode:()Lorg/graalvm/compiler/bytecode/Bytecode;
            aload 12 /* oldFrameState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            aload 13 /* newFrameStateValues */
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
        46: .line 2107
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.rethrowException:()Z
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duringCall:()Z
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIds:()Lorg/graalvm/compiler/graph/NodeInputList;
        47: .line 2108
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        48: .line 2106
            invokespecial org.graalvm.compiler.nodes.FrameState.<init>:(Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/bytecode/Bytecode;ILjava/util/List;IIZZLjava/util/List;Ljava/util/List;)V
        49: .line 2105
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FrameState
            astore 14 /* newFrameState */
        start local 14 // org.graalvm.compiler.nodes.FrameState newFrameState
        50: .line 2109
            aload 12 /* oldFrameState */
            aload 14 /* newFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        51: .line 2115
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 15 /* handlerNext */
        start local 15 // org.graalvm.compiler.nodes.FixedNode handlerNext
        52: .line 2116
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        53: .line 2117
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.BeginNode
            dup
            invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.BeginNode
            astore 16 /* handlerBegin */
        start local 16 // org.graalvm.compiler.nodes.BeginNode handlerBegin
        54: .line 2118
            aload 16 /* handlerBegin */
            aload 15 /* handlerNext */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        55: .line 2119
            aload 10 /* dispatchTable */
            aload 8 /* explosionHeadValue */
            invokestatic org.graalvm.compiler.nodes.LoopDetector.asInt:(Lorg/graalvm/compiler/nodes/ValueNode;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 16 /* handlerBegin */
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        56: .line 2125
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.BeginNode
            dup
            invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.AbstractBeginNode
            astore 11 /* unreachableDefaultSuccessor */
        start local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        57: .line 2126
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.DeoptimizeNode
            dup
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateRecompile:Ljdk/vm/ci/meta/DeoptimizationAction;
            getstatic jdk.vm.ci.meta.DeoptimizationReason.UnreachedCode:Ljdk/vm/ci/meta/DeoptimizationReason;
            invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.DeoptimizeNode
            astore 17 /* deopt */
        start local 17 // org.graalvm.compiler.nodes.DeoptimizeNode deopt
        58: .line 2127
            aload 11 /* unreachableDefaultSuccessor */
            aload 17 /* deopt */
            invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 17 // org.graalvm.compiler.nodes.DeoptimizeNode deopt
        end local 16 // org.graalvm.compiler.nodes.BeginNode handlerBegin
        end local 15 // org.graalvm.compiler.nodes.FixedNode handlerNext
        end local 14 // org.graalvm.compiler.nodes.FrameState newFrameState
        end local 13 // java.util.List newFrameStateValues
        end local 12 // org.graalvm.compiler.nodes.FrameState oldFrameState
        59: .line 2129
            goto 76
        end local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        end local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        60: .line 2135
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode top java.util.SortedMap
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 61
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 8 /* explosionHeadValue */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 61
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        61: .line 2136
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 63
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            iconst_1
            if_icmpne 62
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
            aload 8 /* explosionHeadValue */
            if_acmpeq 63
      StackMap locals:
      StackMap stack:
        62: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        63: .line 2137
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 64
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 8 /* explosionHeadValue */
            if_acmpeq 64
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        64: .line 2140
      StackMap locals:
      StackMap stack:
            aload 8 /* explosionHeadValue */
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            astore 9 /* loopVariablePhi */
        start local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        65: .line 2146
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        66: goto 70
        67: .line 2147
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap top int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            iload 12 /* i */
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyAt:(I)Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 13 /* key */
        start local 13 // int key
        68: .line 2148
            aload 10 /* dispatchTable */
            iload 13 /* key */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            iload 13 /* key */
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.successorAtKey:(I)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // int key
        69: .line 2146
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 12 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyCount:()I
            if_icmplt 67
        end local 12 // int i
        71: .line 2150
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.defaultSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            astore 11 /* unreachableDefaultSuccessor */
        start local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        72: .line 2153
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 73
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            if_acmpeq 73
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        73: .line 2154
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap org.graalvm.compiler.nodes.AbstractBeginNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        74: .line 2155
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.clearSuccessors:()V
        75: .line 2156
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.safeDelete:()V
        76: .line 2160
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 77
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
            ifne 77
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        77: .line 2161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.BeginNode
            dup
            invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.BeginNode
            astore 12 /* dispatchBegin */
        start local 12 // org.graalvm.compiler.nodes.BeginNode dispatchBegin
        78: .line 2162
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.EndNode
            dup
            invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 13 /* dispatchEnd */
        start local 13 // org.graalvm.compiler.nodes.EndNode dispatchEnd
        79: .line 2163
            aload 12 /* dispatchBegin */
            aload 13 /* dispatchEnd */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        80: .line 2164
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 13 /* dispatchEnd */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
        81: .line 2165
            aload 7 /* loopValue */
            invokestatic org.graalvm.compiler.nodes.LoopDetector.asInt:(Lorg/graalvm/compiler/nodes/ValueNode;)I
            istore 14 /* intLoopValue */
        start local 14 // int intLoopValue
        82: .line 2166
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 83
            aload 10 /* dispatchTable */
            iload 14 /* intLoopValue */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.SortedMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 83
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        83: .line 2167
      StackMap locals: org.graalvm.compiler.nodes.BeginNode org.graalvm.compiler.nodes.EndNode int
      StackMap stack:
            aload 10 /* dispatchTable */
            iload 14 /* intLoopValue */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 12 /* dispatchBegin */
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        84: .line 2170
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 90
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeInputList org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.BeginNode org.graalvm.compiler.nodes.EndNode int top java.util.Iterator
      StackMap stack:
        85: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 15 /* end */
        start local 15 // org.graalvm.compiler.nodes.EndNode end
        86: .line 2171
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 15 /* end */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        87: .line 2172
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            aload 15 /* end */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        88: .line 2173
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 15 /* end */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
        89: .line 2174
            aload 9 /* loopVariablePhi */
            aload 7 /* loopValue */
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 15 // org.graalvm.compiler.nodes.EndNode end
        90: .line 2170
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 85
        91: .line 2178
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 9 /* loopVariablePhi */
            aload 10 /* dispatchTable */
            aload 11 /* unreachableDefaultSuccessor */
            invokestatic org.graalvm.compiler.nodes.LoopDetector.createSwitch:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljava/util/SortedMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.IntegerSwitchNode
            putfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
        92: .line 2179
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        93: .line 2180
            return
        end local 14 // int intLoopValue
        end local 13 // org.graalvm.compiler.nodes.EndNode dispatchEnd
        end local 12 // org.graalvm.compiler.nodes.BeginNode dispatchBegin
        end local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        end local 10 // java.util.SortedMap dispatchTable
        end local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        end local 8 // org.graalvm.compiler.nodes.ValueNode explosionHeadValue
        end local 7 // org.graalvm.compiler.nodes.ValueNode loopValue
        end local 6 // int loopVariableIndex
        end local 5 // org.graalvm.compiler.graph.NodeInputList explosionHeadValues
        end local 4 // org.graalvm.compiler.graph.NodeInputList loopValues
        end local 3 // org.graalvm.compiler.nodes.FrameState explosionHeadState
        end local 2 // org.graalvm.compiler.nodes.FrameState loopState
        end local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   94     0                         this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   94     1                         loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            2   94     2                    loopState  Lorg/graalvm/compiler/nodes/FrameState;
            3   94     3           explosionHeadState  Lorg/graalvm/compiler/nodes/FrameState;
            5   94     4                   loopValues  Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
            6   94     5          explosionHeadValues  Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
            8   94     6            loopVariableIndex  I
            9   94     7                    loopValue  Lorg/graalvm/compiler/nodes/ValueNode;
           10   94     8           explosionHeadValue  Lorg/graalvm/compiler/nodes/ValueNode;
           11   22     9                            i  I
           13   20    10                 curLoopValue  Lorg/graalvm/compiler/nodes/ValueNode;
           14   20    11        curExplosionHeadValue  Lorg/graalvm/compiler/nodes/ValueNode;
           29   60     9              loopVariablePhi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
           65   94     9              loopVariablePhi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
           25   94    10                dispatchTable  Ljava/util/SortedMap<Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
           57   60    11  unreachableDefaultSuccessor  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
           72   94    11  unreachableDefaultSuccessor  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
           30   34    12                            i  I
           35   59    12                oldFrameState  Lorg/graalvm/compiler/nodes/FrameState;
           36   59    13          newFrameStateValues  Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
           37   44    14                            i  I
           50   59    14                newFrameState  Lorg/graalvm/compiler/nodes/FrameState;
           52   59    15                  handlerNext  Lorg/graalvm/compiler/nodes/FixedNode;
           54   59    16                 handlerBegin  Lorg/graalvm/compiler/nodes/BeginNode;
           58   59    17                        deopt  Lorg/graalvm/compiler/nodes/DeoptimizeNode;
           66   71    12                            i  I
           68   69    13                          key  I
           78   94    12                dispatchBegin  Lorg/graalvm/compiler/nodes/BeginNode;
           79   94    13                  dispatchEnd  Lorg/graalvm/compiler/nodes/EndNode;
           82   94    14                 intLoopValue  I
           86   90    15                          end  Lorg/graalvm/compiler/nodes/EndNode;
    MethodParameters:
      Name  Flags
      loop  

  private static int asInt(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 2183
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 1
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 2
         1: .line 2184
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "must have a loop variable of type int. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* node */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.nodes.LoopDetector.bailout:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 2186
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            ireturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      node  

  private static java.lang.RuntimeException bailout(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/RuntimeException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 2190
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "Graal implementation restriction: Method with %s loop explosion %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin$LoopExplosionKind.MERGE_EXPLODE:Lorg/graalvm/compiler/nodes/graphbuilderconf/LoopExplosionPlugin$LoopExplosionKind;
            aastore
            dup
            iconst_1
            aload 0 /* msg */
            aastore
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  private static org.graalvm.compiler.nodes.extended.IntegerSwitchNode createSwitch(org.graalvm.compiler.nodes.ValuePhiNode, java.util.SortedMap<java.lang.Integer, org.graalvm.compiler.nodes.AbstractBeginNode>, org.graalvm.compiler.nodes.AbstractBeginNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljava/util/SortedMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValuePhiNode switchedValue
        start local 1 // java.util.SortedMap dispatchTable
        start local 2 // org.graalvm.compiler.nodes.AbstractBeginNode defaultSuccessor
         0: .line 2194
            aload 1 /* dispatchTable */
            invokeinterface java.util.SortedMap.size:()I
            istore 3 /* numKeys */
        start local 3 // int numKeys
         1: .line 2195
            iload 3 /* numKeys */
            iconst_1
            iadd
            istore 4 /* numSuccessors */
        start local 4 // int numSuccessors
         2: .line 2197
            iload 4 /* numSuccessors */
            anewarray org.graalvm.compiler.nodes.AbstractBeginNode
            astore 5 /* switchSuccessors */
        start local 5 // org.graalvm.compiler.nodes.AbstractBeginNode[] switchSuccessors
         3: .line 2198
            iload 3 /* numKeys */
            newarray 10
            astore 6 /* switchKeys */
        start local 6 // int[] switchKeys
         4: .line 2199
            iload 4 /* numSuccessors */
            newarray 7
            astore 7 /* switchKeyProbabilities */
        start local 7 // double[] switchKeyProbabilities
         5: .line 2200
            iload 4 /* numSuccessors */
            newarray 10
            astore 8 /* switchKeySuccessors */
        start local 8 // int[] switchKeySuccessors
         6: .line 2202
            iconst_0
            istore 9 /* idx */
        start local 9 // int idx
         7: .line 2203
            aload 1 /* dispatchTable */
            invokeinterface java.util.SortedMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 14
      StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode java.util.SortedMap org.graalvm.compiler.nodes.AbstractBeginNode int int org.graalvm.compiler.nodes.AbstractBeginNode[] int[] double[] int[] int top java.util.Iterator
      StackMap stack:
         8: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 10 /* entry */
        start local 10 // java.util.Map$Entry entry
         9: .line 2204
            aload 5 /* switchSuccessors */
            iload 9 /* idx */
            aload 10 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractBeginNode
            aastore
        10: .line 2205
            aload 6 /* switchKeys */
            iload 9 /* idx */
            aload 10 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        11: .line 2206
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_1
            iload 3 /* numKeys */
            i2d
            ddiv
            dastore
        12: .line 2207
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        13: .line 2208
            iinc 9 /* idx */ 1
        end local 10 // java.util.Map$Entry entry
        14: .line 2203
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 2210
            aload 5 /* switchSuccessors */
            iload 9 /* idx */
            aload 2 /* defaultSuccessor */
            aastore
        16: .line 2212
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_0
            dastore
        17: .line 2213
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        18: .line 2215
            new org.graalvm.compiler.nodes.extended.IntegerSwitchNode
            dup
            aload 0 /* switchedValue */
            aload 5 /* switchSuccessors */
            aload 6 /* switchKeys */
            aload 7 /* switchKeyProbabilities */
            aload 8 /* switchKeySuccessors */
            invokespecial org.graalvm.compiler.nodes.extended.IntegerSwitchNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/AbstractBeginNode;[I[D[I)V
            areturn
        end local 9 // int idx
        end local 8 // int[] switchKeySuccessors
        end local 7 // double[] switchKeyProbabilities
        end local 6 // int[] switchKeys
        end local 5 // org.graalvm.compiler.nodes.AbstractBeginNode[] switchSuccessors
        end local 4 // int numSuccessors
        end local 3 // int numKeys
        end local 2 // org.graalvm.compiler.nodes.AbstractBeginNode defaultSuccessor
        end local 1 // java.util.SortedMap dispatchTable
        end local 0 // org.graalvm.compiler.nodes.ValuePhiNode switchedValue
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   19     0           switchedValue  Lorg/graalvm/compiler/nodes/ValuePhiNode;
            0   19     1           dispatchTable  Ljava/util/SortedMap<Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
            0   19     2        defaultSuccessor  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            1   19     3                 numKeys  I
            2   19     4           numSuccessors  I
            3   19     5        switchSuccessors  [Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            4   19     6              switchKeys  [I
            5   19     7  switchKeyProbabilities  [D
            6   19     8     switchKeySuccessors  [I
            7   19     9                     idx  I
            9   14    10                   entry  Ljava/util/Map$Entry<Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
    Signature: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Ljava/util/SortedMap<Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
    MethodParameters:
                  Name  Flags
      switchedValue     
      dispatchTable     
      defaultSuccessor  

  private void logIrreducibleLoops();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
         0: .line 2223
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 1 /* debug */
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 2224
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 1 /* debug */
            ldc "IrreducibleLoops"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 4 /* s */
        start local 4 // org.graalvm.compiler.debug.DebugContext$Scope s
         3: .line 2225
            aload 1 /* debug */
            iconst_1
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:(I)Z
            ifeq 13
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnull 13
         4: .line 2226
            new java.lang.StringBuilder
            dup
            ldc "Inserted state machine to remove irreducible loops. Dispatching to the following states: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 5 /* msg */
        start local 5 // java.lang.StringBuilder msg
         5: .line 2227
            ldc ""
            astore 6 /* sep */
        start local 6 // java.lang.String sep
         6: .line 2228
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 11
         8: .line 2229
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 5 /* msg */
            aload 6 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            iload 7 /* i */
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyAt:(I)Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         9: .line 2230
            ldc ", "
            astore 6 /* sep */
        10: .line 2228
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            invokevirtual org.graalvm.compiler.nodes.extended.IntegerSwitchNode.keyCount:()I
            if_icmplt 8
        end local 7 // int i
        12: .line 2232
            aload 1 /* debug */
            iconst_1
            ldc "%s"
            aload 5 /* msg */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
        end local 6 // java.lang.String sep
        end local 5 // java.lang.StringBuilder msg
        13: .line 2234
      StackMap locals:
      StackMap stack:
            aload 4 /* s */
            ifnull 19
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 2
            aload 4 /* s */
            ifnull 15
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 4 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        15: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 3
            aload 2
            ifnonnull 17
            aload 3
            astore 2
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 2
            aload 3
            if_acmpeq 18
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 2
            athrow
        19: .line 2235
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   20     1  debug  Lorg/graalvm/compiler/debug/DebugContext;
            3   15     4      s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            5   13     5    msg  Ljava/lang/StringBuilder;
            6   13     6    sep  Ljava/lang/String;
            7   12     7      i  I
      Exception table:
        from    to  target  type
           3    13      14  any
           2    16      16  any
}
SourceFile: "GraphDecoder.java"
NestMembers:
  org.graalvm.compiler.nodes.LoopDetector$Loop
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  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
  protected MethodScope = org.graalvm.compiler.nodes.GraphDecoder$MethodScope of org.graalvm.compiler.nodes.GraphDecoder
  protected final ProxyPlaceholder = org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder of org.graalvm.compiler.nodes.GraphDecoder
  Loop = org.graalvm.compiler.nodes.LoopDetector$Loop of org.graalvm.compiler.nodes.LoopDetector
  public final LoopExplosionKind = org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin$LoopExplosionKind of org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin