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 1652
            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 1685
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1686
            aload 0 /* this */
            aload 1 /* graph */
            putfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
         2: .line 1687
            aload 0 /* this */
            aload 2 /* methodScope */
            putfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
         3: .line 1688
            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 1692
            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 1693
            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 1695
            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 1701
            return
         4: .line 1704
      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 1705
            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 1707
      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 1708
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         9: .line 1709
            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 1718
      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 1720
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
            ifeq 14
        12: .line 1721
            aload 0 /* this */
            aload 3 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.handleIrreducibleLoop:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        13: .line 1722
            goto 15
        14: .line 1723
      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 1725
      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 1707
      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 1728
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.logIrreducibleLoops:()V
        18: .line 1729
            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 1730
            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 1734
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicMap;
            astore 1 /* unorderedLoops */
        start local 1 // org.graalvm.collections.EconomicMap unorderedLoops
         1: .line 1736
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* orderedLoops */
        start local 2 // java.util.List orderedLoops
         2: .line 1742
            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:(Lorg/graalvm/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 1744
            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 1745
            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 1746
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 5 /* stack */
        start local 5 // java.util.Deque stack
         6: .line 1747
            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 1748
            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 1750
            goto 32
         9: .line 1751
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.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 1752
            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 1754
      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 1756
            aload 5 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
        13: .line 1757
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.clear:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1759
            aload 6 /* current */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifeq 32
        15: .line 1760
            aload 1 /* unorderedLoops */
            aload 6 /* current */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface org.graalvm.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 1761
            aload 7 /* loop */
            ifnull 32
        17: .line 1766
            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 1767
      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 1771
            goto 32
        20: .line 1777
      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 1778
            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 org.graalvm.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 1779
            aload 4 /* active */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 28
        24: .line 1781
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 7 /* successor */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Lorg/graalvm/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 1782
            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 1783
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.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 1785
            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 1790
            aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1791
            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 1778
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.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 1750
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.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 1796
            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 // org.graalvm.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  Lorg/graalvm/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(org.graalvm.collections.EconomicMap<org.graalvm.compiler.nodes.MergeNode, org.graalvm.compiler.nodes.LoopDetector$Loop>, org.graalvm.compiler.nodes.MergeNode);
    descriptor: (Lorg/graalvm/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 // org.graalvm.collections.EconomicMap unorderedLoops
        start local 2 // org.graalvm.compiler.nodes.MergeNode loopHeader
         0: .line 1800
            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:Lorg/graalvm/collections/EconomicSet;
            aload 2 /* loopHeader */
            invokeinterface org.graalvm.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 1801
      StackMap locals:
      StackMap stack:
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            invokeinterface org.graalvm.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 1802
            aload 3 /* loop */
            ifnonnull 6
         3: .line 1803
            new org.graalvm.compiler.nodes.LoopDetector$Loop
            dup
            invokespecial org.graalvm.compiler.nodes.LoopDetector$Loop.<init>:()V
            astore 3 /* loop */
         4: .line 1804
            aload 3 /* loop */
            aload 2 /* loopHeader */
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
         5: .line 1805
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            aload 3 /* loop */
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1807
      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 // org.graalvm.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  Lorg/graalvm/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: (Lorg/graalvm/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 1818
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* possibleExits */
        start local 2 // java.util.List possibleExits
         1: .line 1819
            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 1820
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* stack */
        start local 4 // java.util.Deque stack
         3: .line 1821
            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 1822
            aload 4 /* stack */
            aload 5 /* loopEnd */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         6: .line 1823
            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 1821
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1826
            goto 36
         9: .line 1827
      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 1828
            aload 5 /* current */
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            if_acmpne 12
        11: .line 1829
            goto 36
        12: .line 1831
      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 1836
            aload 1 /* loop */
            iconst_1
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
        14: .line 1837
            return
        15: .line 1840
      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 1841
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 27
        18: .line 1846
            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 1847
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 35
        20: .line 1848
            aload 4 /* stack */
            aload 8 /* innerLoopBegin */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        21: .line 1849
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 1856
            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 1857
            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 1856
      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 1861
            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 1862
            aload 4 /* stack */
            aload 6 /* predecessor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        29: .line 1863
            aload 3 /* visited */
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1865
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 35
        31: .line 1866
            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 1874
            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 1866
      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 1840
      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 1826
      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 1896
            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 1897
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 43
        40: .line 1898
            aload 4 /* stack */
            aload 5 /* succ */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        41: .line 1899
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        42: .line 1900
            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:Lorg/graalvm/collections/EconomicSet;
            aload 5 /* succ */
            invokeinterface org.graalvm.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 1896
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        44: .line 1904
            goto 59
        45: .line 1905
      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 1906
            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 1907
      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 1909
      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 1910
            aload 3 /* visited */
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 58
        51: .line 1913
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/collections/EconomicSet;
            aload 6 /* successor */
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 56
        52: .line 1920
            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 1921
      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 1922
      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 1924
            goto 58
        56: .line 1926
      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 1927
            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 1909
      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 1904
      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 1973
            getstatic org.graalvm.collections.Equivalence.IDENTITY_WITH_SYSTEM_HASHCODE:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
            astore 5 /* merges */
        start local 5 // org.graalvm.collections.EconomicSet merges
        61: .line 1974
            getstatic org.graalvm.collections.Equivalence.IDENTITY_WITH_SYSTEM_HASHCODE:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
            astore 6 /* mergesToRemove */
        start local 6 // org.graalvm.collections.EconomicSet mergesToRemove
        62: .line 1976
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 70
      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.collections.EconomicSet org.graalvm.collections.EconomicSet top java.util.Iterator
      StackMap stack:
        63: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            astore 7 /* end */
        start local 7 // org.graalvm.compiler.nodes.AbstractEndNode end
        64: .line 1977
            aload 7 /* end */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            astore 9 /* merge */
        start local 9 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        65: .line 1978
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 66
            aload 9 /* merge */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifne 66
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        66: .line 1979
      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.collections.EconomicSet org.graalvm.collections.EconomicSet org.graalvm.compiler.nodes.AbstractEndNode java.util.Iterator org.graalvm.compiler.nodes.AbstractMergeNode
      StackMap stack:
            aload 5 /* merges */
            aload 9 /* merge */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 69
        67: .line 1980
            aload 6 /* mergesToRemove */
            aload 9 /* merge */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        68: .line 1981
            goto 70
        69: .line 1982
      StackMap locals:
      StackMap stack:
            aload 5 /* merges */
            aload 9 /* merge */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        end local 7 // org.graalvm.compiler.nodes.AbstractEndNode end
        70: .line 1976
      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.collections.EconomicSet org.graalvm.collections.EconomicSet top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        71: .line 1985
            aload 5 /* merges */
            invokeinterface org.graalvm.collections.EconomicSet.clear:()V
        72: .line 1986
            aload 5 /* merges */
            aload 6 /* mergesToRemove */
            invokeinterface org.graalvm.collections.EconomicSet.addAll:(Lorg/graalvm/collections/EconomicSet;)V
        73: .line 1987
            aload 6 /* mergesToRemove */
            invokeinterface org.graalvm.collections.EconomicSet.clear:()V
        74: .line 1988
            aload 5 /* merges */
            invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 8
            goto 82
      StackMap locals:
      StackMap stack:
        75: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.MergeNode
            astore 7 /* merge */
        start local 7 // org.graalvm.compiler.nodes.MergeNode merge
        76: .line 1989
            aload 7 /* merge */
            getfield org.graalvm.compiler.nodes.MergeNode.ends:Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 10
            goto 80
      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.collections.EconomicSet org.graalvm.collections.EconomicSet org.graalvm.compiler.nodes.MergeNode java.util.Iterator top java.util.Iterator
      StackMap stack:
        77: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.EndNode
            astore 9 /* end */
        start local 9 // org.graalvm.compiler.nodes.EndNode end
        78: .line 1990
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            aload 9 /* end */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 80
        79: .line 1991
            goto 82
        end local 9 // org.graalvm.compiler.nodes.EndNode end
        80: .line 1989
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 77
        81: .line 1994
            aload 6 /* mergesToRemove */
            aload 7 /* merge */
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.nodes.MergeNode merge
        82: .line 1988
      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.collections.EconomicSet org.graalvm.collections.EconomicSet top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 75
        83: .line 1997
            aload 6 /* mergesToRemove */
            invokeinterface org.graalvm.collections.EconomicSet.size:()I
            ifle 98
        84: .line 1998
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 85
            aload 5 /* merges */
            invokeinterface org.graalvm.collections.EconomicSet.size:()I
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 85
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        85: .line 1999
      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.collections.EconomicSet org.graalvm.collections.EconomicSet
      StackMap stack:
            aload 6 /* mergesToRemove */
            invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 8
            goto 97
      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.collections.EconomicSet org.graalvm.collections.EconomicSet top java.util.Iterator
      StackMap stack:
        86: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.MergeNode
            astore 7 /* merge */
        start local 7 // org.graalvm.compiler.nodes.MergeNode merge
        87: .line 2000
            aload 7 /* merge */
            astore 9 /* current */
        start local 9 // org.graalvm.compiler.nodes.FixedNode current
        88: .line 2001
            goto 96
        89: .line 2002
      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.collections.EconomicSet org.graalvm.collections.EconomicSet org.graalvm.compiler.nodes.MergeNode java.util.Iterator org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 9 /* current */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifeq 92
        90: .line 2003
            aload 9 /* current */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 9 /* current */
        91: .line 2004
            goto 96
        92: .line 2006
      StackMap locals:
      StackMap stack:
            aload 9 /* current */
            instanceof org.graalvm.compiler.nodes.EndNode
            ifeq 97
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/collections/EconomicSet;
            aload 9 /* current */
            checkcast org.graalvm.compiler.nodes.EndNode
            invokevirtual org.graalvm.compiler.nodes.EndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 97
        93: .line 2009
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            aload 7 /* merge */
            invokedynamic test(Lorg/graalvm/compiler/nodes/MergeNode;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/compiler/nodes/LoopDetector.lambda$0(Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/AbstractEndNode;)Z (6)
                  (Lorg/graalvm/compiler/nodes/AbstractEndNode;)Z
            invokeinterface java.util.List.removeIf:(Ljava/util/function/Predicate;)Z
            pop
        94: .line 2010
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.exits:Ljava/util/List;
            aload 9 /* current */
            checkcast org.graalvm.compiler.nodes.EndNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        95: .line 2011
            goto 97
        96: .line 2001
      StackMap locals:
      StackMap stack:
            aload 9 /* current */
            ifnonnull 89
        end local 9 // org.graalvm.compiler.nodes.FixedNode current
        end local 7 // org.graalvm.compiler.nodes.MergeNode merge
        97: .line 1999
      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.collections.EconomicSet org.graalvm.collections.EconomicSet top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 86
        98: .line 2022
      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.collections.EconomicSet org.graalvm.collections.EconomicSet
      StackMap stack:
            return
        end local 6 // org.graalvm.collections.EconomicSet mergesToRemove
        end local 5 // org.graalvm.collections.EconomicSet merges
        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   99     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   99     1            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            1   99     2   possibleExits  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
            2   99     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            3   99     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;
           61   99     5          merges  Lorg/graalvm/collections/EconomicSet<Lorg/graalvm/compiler/nodes/MergeNode;>;
           62   99     6  mergesToRemove  Lorg/graalvm/collections/EconomicSet<Lorg/graalvm/compiler/nodes/MergeNode;>;
           64   70     7             end  Lorg/graalvm/compiler/nodes/AbstractEndNode;
           65   70     9           merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
           76   82     7           merge  Lorg/graalvm/compiler/nodes/MergeNode;
           78   80     9             end  Lorg/graalvm/compiler/nodes/EndNode;
           87   97     7           merge  Lorg/graalvm/compiler/nodes/MergeNode;
           88   97     9         current  Lorg/graalvm/compiler/nodes/FixedNode;
    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 2025
            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 2026
            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 2027
            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 2028
            aload 2 /* merge */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 2029
            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 2030
            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 2032
            aload 2 /* merge */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         7: .line 2034
            aload 6 /* loopBegin */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
         8: .line 2035
            aload 6 /* loopBegin */
            aload 4 /* afterMerge */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 2036
            aload 6 /* loopBegin */
            aload 3 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        10: .line 2043
            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 2044
            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 2045
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 20
        14: .line 2046
      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 2047
            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 2048
            aload 10 /* mergePhi */
            aload 11 /* loopBeginPhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 2053
            aload 11 /* loopBeginPhi */
            aload 10 /* mergePhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        18: .line 2054
            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 2045
            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 2057
            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 2058
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 29
        25: .line 2059
      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 2060
            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 2061
            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 2058
            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 2064
            aload 2 /* merge */
            aload 9 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        31: .line 2065
            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 2066
            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 2057
      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 2073
            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 2074
            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 2075
            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:Lorg/graalvm/collections/EconomicSet;
            aload 11 /* loopExplosionMerge */
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 2077
      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 2078
            aload 9 /* exit */
            aload 12 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        40: .line 2079
            aload 12 /* loopExit */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        41: .line 2080
            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 2073
      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 2082
            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=14, 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 2091
            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 2094
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
            astore 5 /* loopBeginValues */
        start local 5 // org.graalvm.collections.EconomicSet loopBeginValues
         2: .line 2095
            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 2096
      StackMap locals: org.graalvm.compiler.nodes.FrameState org.graalvm.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 org.graalvm.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 2097
            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 2098
            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 org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.nodes.ValueNode value
         8: .line 2096
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 2095
            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 org.graalvm.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 2102
            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 2104
            invokestatic org.graalvm.collections.EconomicMap.create:()Lorg/graalvm/collections/EconomicMap;
            astore 7 /* old2NewValues */
        start local 7 // org.graalvm.collections.EconomicMap old2NewValues
        13: .line 2105
            aload 4 /* oldState */
            getfield org.graalvm.compiler.nodes.FrameState.values:Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 9
            goto 37
      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 org.graalvm.collections.EconomicSet java.util.List org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 8 /* v */
        start local 8 // org.graalvm.compiler.nodes.ValueNode v
        15: .line 2106
            aload 8 /* v */
            ifnull 18
            aload 7 /* old2NewValues */
            aload 8 /* v */
            invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 2107
            aload 6 /* newValues */
            aload 7 /* old2NewValues */
            aload 8 /* v */
            invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 2108
            goto 37
        18: .line 2111
      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 org.graalvm.collections.EconomicSet java.util.List org.graalvm.collections.EconomicMap org.graalvm.compiler.nodes.ValueNode java.util.Iterator
      StackMap stack:
            aload 8 /* v */
            astore 10 /* value */
        start local 10 // org.graalvm.compiler.nodes.ValueNode value
        19: .line 2112
            aload 10 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* realValue */
        start local 11 // org.graalvm.compiler.nodes.ValueNode realValue
        20: .line 2119
            aload 11 /* realValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 23
            aload 2 /* loopExplosionMerge */
            aload 11 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 23
        21: .line 2120
            aload 11 /* 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 10 /* value */
        22: .line 2121
            aload 10 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* realValue */
        23: .line 2124
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 11 /* realValue */
            ifnull 24
            aload 11 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 24
            aload 5 /* loopBeginValues */
            aload 11 /* realValue */
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 24
            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 11 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifne 28
        24: .line 2130
      StackMap locals:
      StackMap stack:
            aload 6 /* newValues */
            aload 8 /* v */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 2131
            aload 8 /* v */
            ifnull 37
        26: .line 2132
            aload 7 /* old2NewValues */
            aload 8 /* v */
            aload 8 /* v */
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 2134
            goto 37
        28: .line 2139
      StackMap locals:
      StackMap stack:
            aload 10 /* value */
            instanceof org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            ifeq 29
            aload 10 /* 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 29
            iconst_1
            goto 30
      StackMap locals:
      StackMap stack:
        29: iconst_0
        30: .line 2140
      StackMap locals:
      StackMap stack: int
            ldc "Value flowing out of loop, but we are not prepared to insert a ProxyNode"
        31: .line 2139
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        32: .line 2142
            aload 10 /* value */
            checkcast org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            astore 12 /* proxyPlaceholder */
        start local 12 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        33: .line 2143
            aload 12 /* 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 13 /* proxy */
        start local 13 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        34: .line 2144
            aload 12 /* proxyPlaceholder */
            aload 13 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.setValue:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        35: .line 2145
            aload 6 /* newValues */
            aload 13 /* proxy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 2146
            aload 7 /* old2NewValues */
            aload 8 /* v */
            aload 13 /* proxy */
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        end local 12 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        end local 11 // org.graalvm.compiler.nodes.ValueNode realValue
        end local 10 // org.graalvm.compiler.nodes.ValueNode value
        end local 8 // org.graalvm.compiler.nodes.ValueNode v
        37: .line 2105
      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 org.graalvm.collections.EconomicSet java.util.List org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        38: .line 2150
            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
        39: .line 2151
            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;
        40: .line 2150
            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 8 /* newState */
        start local 8 // org.graalvm.compiler.nodes.FrameState newState
        41: .line 2153
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 42
            aload 1 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 2154
      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 org.graalvm.collections.EconomicSet java.util.List org.graalvm.collections.EconomicMap 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 8 /* 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
        43: .line 2155
            return
        end local 8 // org.graalvm.compiler.nodes.FrameState newState
        end local 7 // org.graalvm.collections.EconomicMap old2NewValues
        end local 6 // java.util.List newValues
        end local 5 // org.graalvm.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   44     0                this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   44     1            loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
            0   44     2  loopExplosionMerge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            0   44     3    loopExplosionEnd  Lorg/graalvm/compiler/nodes/AbstractEndNode;
            1   44     4            oldState  Lorg/graalvm/compiler/nodes/FrameState;
            2   44     5     loopBeginValues  Lorg/graalvm/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   44     6           newValues  Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
           13   44     7       old2NewValues  Lorg/graalvm/collections/EconomicMap<Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;>;
           15   37     8                   v  Lorg/graalvm/compiler/nodes/ValueNode;
           19   37    10               value  Lorg/graalvm/compiler/nodes/ValueNode;
           20   37    11           realValue  Lorg/graalvm/compiler/nodes/ValueNode;
           33   37    12    proxyPlaceholder  Lorg/graalvm/compiler/nodes/GraphDecoder$ProxyPlaceholder;
           34   37    13               proxy  Lorg/graalvm/compiler/nodes/ValueProxyNode;
           41   44     8            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 2181
            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 2183
      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 2184
            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 2185
            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 2186
      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 2187
            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 2188
            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 2194
      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 2195
            aconst_null
            astore 7 /* loopValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode loopValue
         9: .line 2196
            aconst_null
            astore 8 /* explosionHeadValue */
        start local 8 // org.graalvm.compiler.nodes.ValueNode explosionHeadValue
        10: .line 2197
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        11: goto 21
        12: .line 2198
      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 2199
            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 2201
            aload 10 /* curLoopValue */
            aload 11 /* curExplosionHeadValue */
            if_acmpeq 20
        15: .line 2202
            iload 6 /* loopVariableIndex */
            iconst_m1
            if_icmpeq 17
        16: .line 2203
            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 2206
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 9 /* i */
            istore 6 /* loopVariableIndex */
        18: .line 2207
            aload 10 /* curLoopValue */
            astore 7 /* loopValue */
        19: .line 2208
            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 2197
      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 2211
            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 2212
      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 2215
      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 2217
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnonnull 60
        26: .line 2222
            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 2223
      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 2226
      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 2227
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        30: goto 33
        31: .line 2228
      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 2227
            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 2235
            aload 3 /* explosionHeadState */
            astore 12 /* oldFrameState */
        start local 12 // org.graalvm.compiler.nodes.FrameState oldFrameState
        35: .line 2236
            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 2237
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        37: goto 43
        38: .line 2238
      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 2239
            aload 13 /* newFrameStateValues */
            aload 9 /* loopVariablePhi */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 2240
            goto 42
        41: .line 2241
      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 2237
      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 2245
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
        45: .line 2246
            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 2247
            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 2248
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        48: .line 2246
            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 2245
            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 2249
            aload 12 /* oldFrameState */
            aload 14 /* newFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        51: .line 2255
            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 2256
            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 2257
            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 2258
            aload 16 /* handlerBegin */
            aload 15 /* handlerNext */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        55: .line 2259
            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 2265
            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 2266
            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 2267
            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 2269
            goto 76
        end local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        end local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        60: .line 2275
      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 2276
      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 2277
      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 2280
      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 2286
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        66: goto 70
        67: .line 2287
      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 2288
            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 2286
            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 2290
            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 2293
            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 2294
      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 2295
            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 2296
            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 2300
      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 2301
      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 2302
            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 2303
            aload 12 /* dispatchBegin */
            aload 13 /* dispatchEnd */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        80: .line 2304
            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 2305
            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 2306
            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 2307
      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 2310
            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 2311
            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 2312
            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 2313
            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 2314
            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 2310
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 85
        91: .line 2318
            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 2319
            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 2320
            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 2323
            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 2324
      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 2326
      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 2330
            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 2334
            aload 1 /* dispatchTable */
            invokeinterface java.util.SortedMap.size:()I
            istore 3 /* numKeys */
        start local 3 // int numKeys
         1: .line 2335
            iload 3 /* numKeys */
            iconst_1
            iadd
            istore 4 /* numSuccessors */
        start local 4 // int numSuccessors
         2: .line 2337
            iload 4 /* numSuccessors */
            anewarray org.graalvm.compiler.nodes.AbstractBeginNode
            astore 5 /* switchSuccessors */
        start local 5 // org.graalvm.compiler.nodes.AbstractBeginNode[] switchSuccessors
         3: .line 2338
            iload 3 /* numKeys */
            newarray 10
            astore 6 /* switchKeys */
        start local 6 // int[] switchKeys
         4: .line 2339
            iload 4 /* numSuccessors */
            newarray 7
            astore 7 /* switchKeyProbabilities */
        start local 7 // double[] switchKeyProbabilities
         5: .line 2340
            iload 4 /* numSuccessors */
            newarray 10
            astore 8 /* switchKeySuccessors */
        start local 8 // int[] switchKeySuccessors
         6: .line 2342
            iconst_0
            istore 9 /* idx */
        start local 9 // int idx
         7: .line 2343
            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 2344
            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 2345
            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 2346
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_1
            iload 3 /* numKeys */
            i2d
            ddiv
            dastore
        12: .line 2347
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        13: .line 2348
            iinc 9 /* idx */ 1
        end local 10 // java.util.Map$Entry entry
        14: .line 2343
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 2350
            aload 5 /* switchSuccessors */
            iload 9 /* idx */
            aload 2 /* defaultSuccessor */
            aastore
        16: .line 2352
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_0
            dastore
        17: .line 2353
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        18: .line 2355
            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 2363
            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 2364
            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 2365
            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 2366
            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 2367
            ldc ""
            astore 6 /* sep */
        start local 6 // java.lang.String sep
         6: .line 2368
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 11
         8: .line 2369
      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 2370
            ldc ", "
            astore 6 /* sep */
        10: .line 2368
            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 2372
            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 2374
      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 2375
      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

  private static boolean lambda$0(org.graalvm.compiler.nodes.MergeNode, org.graalvm.compiler.nodes.AbstractEndNode);
    descriptor: (Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/AbstractEndNode;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.nodes.AbstractEndNode x
         0: .line 2009
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.nodes.AbstractEndNode x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     x  Lorg/graalvm/compiler/nodes/AbstractEndNode;
}
SourceFile: "GraphDecoder.java"
NestMembers:
  org.graalvm.compiler.nodes.LoopDetector$Loop
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  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