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 1362
            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 1395
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1396
            aload 0 /* this */
            aload 1 /* graph */
            putfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
         2: .line 1397
            aload 0 /* this */
            aload 2 /* methodScope */
            putfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
         3: .line 1398
            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 1402
            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 1403
            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 1405
            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 1411
            return
         4: .line 1414
      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 1415
            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 1417
      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 1418
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         9: .line 1419
            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 1428
      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 1430
            aload 3 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
            ifeq 14
        12: .line 1431
            aload 0 /* this */
            aload 3 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.handleIrreducibleLoop:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        13: .line 1432
            goto 15
        14: .line 1433
      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 1435
      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 1417
      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 1438
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.logIrreducibleLoops:()V
        18: .line 1439
            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 1440
            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 1444
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 1 /* unorderedLoops */
        start local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
         1: .line 1446
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* orderedLoops */
        start local 2 // java.util.List orderedLoops
         2: .line 1452
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionHead:Lorg/graalvm/compiler/nodes/MergeNode;
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            putfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
         3: .line 1454
            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 1455
            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 1456
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 5 /* stack */
        start local 5 // java.util.Deque stack
         6: .line 1457
            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 1458
            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 1460
            goto 32
         9: .line 1461
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 5 /* stack */
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* current */
        start local 6 // org.graalvm.compiler.graph.Node current
        10: .line 1462
            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 1464
      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 1466
            aload 5 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
        13: .line 1467
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.clear:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1469
            aload 6 /* current */
            instanceof org.graalvm.compiler.nodes.MergeNode
            ifeq 32
        15: .line 1470
            aload 1 /* unorderedLoops */
            aload 6 /* current */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopDetector$Loop
            astore 7 /* loop */
        start local 7 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        16: .line 1471
            aload 7 /* loop */
            ifnull 32
        17: .line 1476
            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 1477
      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 1481
            goto 32
        20: .line 1487
      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 1488
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 31
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 7 /* successor */
        start local 7 // org.graalvm.compiler.graph.Node successor
        23: .line 1489
            aload 4 /* active */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 28
        24: .line 1491
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 7 /* successor */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Ljdk/internal/vm/compiler/collections/EconomicMap;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            astore 9 /* loop */
        start local 9 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        25: .line 1492
            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 1493
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.LoopDetector$Loop
      StackMap stack:
            aload 9 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            aload 6 /* current */
            checkcast org.graalvm.compiler.nodes.EndNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        27: .line 1495
            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 1500
            aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1501
            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 1488
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque org.graalvm.compiler.graph.Node top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 6 // org.graalvm.compiler.graph.Node current
        32: .line 1460
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector jdk.internal.vm.compiler.collections.EconomicMap java.util.List org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 5 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 9
        33: .line 1506
            aload 2 /* orderedLoops */
            areturn
        end local 5 // java.util.Deque stack
        end local 4 // org.graalvm.compiler.graph.NodeBitMap active
        end local 3 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 2 // java.util.List orderedLoops
        end local 1 // jdk.internal.vm.compiler.collections.EconomicMap unorderedLoops
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   34     1  unorderedLoops  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            2   34     2    orderedLoops  Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            4   34     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            5   34     4          active  Lorg/graalvm/compiler/graph/NodeBitMap;
            6   34     5           stack  Ljava/util/Deque<Lorg/graalvm/compiler/graph/Node;>;
           10   32     6         current  Lorg/graalvm/compiler/graph/Node;
           16   19     7            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
           23   31     7       successor  Lorg/graalvm/compiler/graph/Node;
           25   27     9            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
    Signature: ()Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;

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

  private void findLoopExits(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 1528
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* possibleExits */
        start local 2 // java.util.List possibleExits
         1: .line 1529
            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 1530
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* stack */
        start local 4 // java.util.Deque stack
         3: .line 1531
            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 1532
            aload 4 /* stack */
            aload 5 /* loopEnd */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         6: .line 1533
            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 1531
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1536
            goto 36
         9: .line 1537
      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 1538
            aload 5 /* current */
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            if_acmpne 12
        11: .line 1539
            goto 36
        12: .line 1541
      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 1546
            aload 1 /* loop */
            iconst_1
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
        14: .line 1547
            return
        15: .line 1550
      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 1551
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 27
        18: .line 1556
            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 1557
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 35
        20: .line 1558
            aload 4 /* stack */
            aload 8 /* innerLoopBegin */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        21: .line 1559
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 1566
            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 1567
            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 1566
      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 1571
            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 1572
            aload 4 /* stack */
            aload 6 /* predecessor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        29: .line 1573
            aload 3 /* visited */
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1575
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 35
        31: .line 1576
            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 1584
            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 1576
      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 1550
      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 1536
      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 1606
            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 1607
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 43
        40: .line 1608
            aload 4 /* stack */
            aload 5 /* succ */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        41: .line 1609
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        42: .line 1610
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 43
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 5 /* succ */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 43
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // org.graalvm.compiler.graph.Node succ
        43: .line 1606
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        44: .line 1614
            goto 59
        45: .line 1615
      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 1616
            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 1617
      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 1619
      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 1620
            aload 3 /* visited */
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 58
        51: .line 1623
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 6 /* successor */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 56
        52: .line 1630
            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 1631
      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 1632
      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 1634
            goto 58
        56: .line 1636
      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 1637
            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 1619
      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 1614
      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 1641
            return
        end local 4 // java.util.Deque stack
        end local 3 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 2 // java.util.List possibleExits
        end local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   61     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   61     1            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            1   61     2   possibleExits  Ljava/util/List<Lorg/graalvm/compiler/graph/Node;>;
            2   61     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            3   61     4           stack  Ljava/util/Deque<Lorg/graalvm/compiler/graph/Node;>;
            5    7     5         loopEnd  Lorg/graalvm/compiler/nodes/EndNode;
           10   36     5         current  Lorg/graalvm/compiler/graph/Node;
           17   35     6     predecessor  Lorg/graalvm/compiler/graph/Node;
           19   26     8  innerLoopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           24   25     9            exit  Lorg/graalvm/compiler/nodes/LoopExitNode;
           33   34     8            succ  Lorg/graalvm/compiler/graph/Node;
           39   43     5            succ  Lorg/graalvm/compiler/graph/Node;
           46   59     5         current  Lorg/graalvm/compiler/graph/Node;
           50   58     6       successor  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      loop  

  private void insertLoopNodes(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 1644
            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 1645
            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 1646
            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 1647
            aload 2 /* merge */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 1648
            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 1649
            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 1651
            aload 2 /* merge */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         7: .line 1653
            aload 6 /* loopBegin */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
         8: .line 1654
            aload 6 /* loopBegin */
            aload 4 /* afterMerge */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 1655
            aload 6 /* loopBegin */
            aload 3 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        10: .line 1662
            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 1663
            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 1664
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 20
        14: .line 1665
      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 1666
            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 1667
            aload 10 /* mergePhi */
            aload 11 /* loopBeginPhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 1672
            aload 11 /* loopBeginPhi */
            aload 10 /* mergePhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        18: .line 1673
            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 1664
            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 1676
            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 1677
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 29
        25: .line 1678
      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 1679
            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 1680
            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 1677
            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 1683
            aload 2 /* merge */
            aload 9 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        31: .line 1684
            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 1685
            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 1676
      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 1692
            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 1693
            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 1694
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 38
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Ljdk/internal/vm/compiler/collections/EconomicSet;
            aload 11 /* loopExplosionMerge */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 1696
      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 1697
            aload 9 /* exit */
            aload 12 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        40: .line 1698
            aload 12 /* loopExit */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        41: .line 1699
            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 1692
      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 1701
            return
        end local 8 // java.util.List loopBeginPhis
        end local 7 // java.util.List mergePhis
        end local 6 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 5 // org.graalvm.compiler.nodes.EndNode preLoopEnd
        end local 4 // org.graalvm.compiler.nodes.FixedNode afterMerge
        end local 3 // org.graalvm.compiler.nodes.FrameState stateAfter
        end local 2 // org.graalvm.compiler.nodes.MergeNode merge
        end local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   44     0                this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   44     1                loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            1   44     2               merge  Lorg/graalvm/compiler/nodes/MergeNode;
            2   44     3          stateAfter  Lorg/graalvm/compiler/nodes/FrameState;
            3   44     4          afterMerge  Lorg/graalvm/compiler/nodes/FixedNode;
            5   44     5          preLoopEnd  Lorg/graalvm/compiler/nodes/EndNode;
            6   44     6           loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           11   44     7           mergePhis  Ljava/util/List<Lorg/graalvm/compiler/nodes/PhiNode;>;
           12   44     8       loopBeginPhis  Ljava/util/List<Lorg/graalvm/compiler/nodes/PhiNode;>;
           13   21     9                   i  I
           15   19    10            mergePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           16   19    11        loopBeginPhi  Lorg/graalvm/compiler/nodes/PhiNode;
           23   33     9             endNode  Lorg/graalvm/compiler/nodes/EndNode;
           24   30    11                   i  I
           26   28    12            mergePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           27   28    13        loopBeginPhi  Lorg/graalvm/compiler/nodes/PhiNode;
           32   33    11             loopEnd  Lorg/graalvm/compiler/nodes/LoopEndNode;
           36   42     9                exit  Lorg/graalvm/compiler/nodes/AbstractEndNode;
           37   42    11  loopExplosionMerge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
           39   42    12            loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
    MethodParameters:
      Name  Flags
      loop  

  private void assignLoopExitState(org.graalvm.compiler.nodes.LoopExitNode, org.graalvm.compiler.nodes.AbstractMergeNode, org.graalvm.compiler.nodes.AbstractEndNode);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=13, args_size=4
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        start local 2 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        start local 3 // org.graalvm.compiler.nodes.AbstractEndNode loopExplosionEnd
         0: .line 1710
            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 1713
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 5 /* loopBeginValues */
        start local 5 // jdk.internal.vm.compiler.collections.EconomicSet loopBeginValues
         2: .line 1714
            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 1715
      StackMap locals: org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* value */
        start local 7 // org.graalvm.compiler.nodes.ValueNode value
         6: .line 1716
            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 1717
            aload 5 /* loopBeginValues */
            aload 7 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.nodes.ValueNode value
         8: .line 1715
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 1714
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 6 /* state */
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet org.graalvm.compiler.nodes.FrameState
      StackMap stack:
        10: aload 6 /* state */
            ifnonnull 4
        end local 6 // org.graalvm.compiler.nodes.FrameState state
        11: .line 1722
            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 1723
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 30
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* v */
        start local 7 // org.graalvm.compiler.nodes.ValueNode v
        14: .line 1724
            aload 7 /* v */
            astore 9 /* value */
        start local 9 // org.graalvm.compiler.nodes.ValueNode value
        15: .line 1725
            aload 9 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* realValue */
        start local 10 // org.graalvm.compiler.nodes.ValueNode realValue
        16: .line 1732
            aload 10 /* realValue */
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifeq 19
            aload 2 /* loopExplosionMerge */
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isPhiAtMerge:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 19
        17: .line 1733
            aload 10 /* realValue */
            checkcast org.graalvm.compiler.nodes.PhiNode
            aload 3 /* loopExplosionEnd */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* value */
        18: .line 1734
            aload 9 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* realValue */
        19: .line 1737
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List org.graalvm.compiler.nodes.ValueNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 10 /* realValue */
            ifnull 20
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 20
            aload 5 /* loopBeginValues */
            aload 10 /* realValue */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 20
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.methodStartMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            aload 10 /* realValue */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isNew:(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Z
            ifne 22
        20: .line 1738
      StackMap locals:
      StackMap stack:
            aload 6 /* newValues */
            aload 10 /* realValue */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1739
            goto 30
        22: .line 1744
      StackMap locals:
      StackMap stack:
            aload 9 /* value */
            instanceof org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            ifeq 23
            aload 9 /* value */
            checkcast org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            getfield org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.proxyPoint:Lorg/graalvm/compiler/graph/Node;
            aload 2 /* loopExplosionMerge */
            if_acmpne 23
            iconst_1
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_0
        24: .line 1745
      StackMap locals:
      StackMap stack: int
            ldc "Value flowing out of loop, but we are not prepared to insert a ProxyNode"
        25: .line 1744
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;)V
        26: .line 1747
            aload 9 /* value */
            checkcast org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder
            astore 11 /* proxyPlaceholder */
        start local 11 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        27: .line 1748
            aload 11 /* proxyPlaceholder */
            getfield org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.value:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* loopExit */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ProxyNode.forValue:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueProxyNode;
            astore 12 /* proxy */
        start local 12 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        28: .line 1749
            aload 11 /* proxyPlaceholder */
            aload 12 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.setValue:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        29: .line 1750
            aload 6 /* newValues */
            aload 12 /* proxy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.graalvm.compiler.nodes.ValueProxyNode proxy
        end local 11 // org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder proxyPlaceholder
        end local 10 // org.graalvm.compiler.nodes.ValueNode realValue
        end local 9 // org.graalvm.compiler.nodes.ValueNode value
        end local 7 // org.graalvm.compiler.nodes.ValueNode v
        30: .line 1723
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        31: .line 1754
            new org.graalvm.compiler.nodes.FrameState
            dup
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.getCode:()Lorg/graalvm/compiler/bytecode/Bytecode;
            aload 4 /* oldState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            aload 6 /* newValues */
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.rethrowException:()Z
        32: .line 1755
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.duringCall:()Z
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIds:()Lorg/graalvm/compiler/graph/NodeInputList;
            aload 4 /* oldState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        33: .line 1754
            invokespecial org.graalvm.compiler.nodes.FrameState.<init>:(Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/bytecode/Bytecode;ILjava/util/List;IIZZLjava/util/List;Ljava/util/List;)V
            astore 7 /* newState */
        start local 7 // org.graalvm.compiler.nodes.FrameState newState
        34: .line 1757
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 35
            aload 1 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            ifnull 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 1758
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState jdk.internal.vm.compiler.collections.EconomicSet java.util.List org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 1 /* loopExit */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 7 /* newState */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FrameState
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        36: .line 1759
            return
        end local 7 // org.graalvm.compiler.nodes.FrameState newState
        end local 6 // java.util.List newValues
        end local 5 // jdk.internal.vm.compiler.collections.EconomicSet loopBeginValues
        end local 4 // org.graalvm.compiler.nodes.FrameState oldState
        end local 3 // org.graalvm.compiler.nodes.AbstractEndNode loopExplosionEnd
        end local 2 // org.graalvm.compiler.nodes.AbstractMergeNode loopExplosionMerge
        end local 1 // org.graalvm.compiler.nodes.LoopExitNode loopExit
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   37     0                this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   37     1            loopExit  Lorg/graalvm/compiler/nodes/LoopExitNode;
            0   37     2  loopExplosionMerge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            0   37     3    loopExplosionEnd  Lorg/graalvm/compiler/nodes/AbstractEndNode;
            1   37     4            oldState  Lorg/graalvm/compiler/nodes/FrameState;
            2   37     5     loopBeginValues  Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/graph/Node;>;
            3   11     6               state  Lorg/graalvm/compiler/nodes/FrameState;
            6    8     7               value  Lorg/graalvm/compiler/nodes/ValueNode;
           12   37     6           newValues  Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
           14   30     7                   v  Lorg/graalvm/compiler/nodes/ValueNode;
           15   30     9               value  Lorg/graalvm/compiler/nodes/ValueNode;
           16   30    10           realValue  Lorg/graalvm/compiler/nodes/ValueNode;
           27   30    11    proxyPlaceholder  Lorg/graalvm/compiler/nodes/GraphDecoder$ProxyPlaceholder;
           28   30    12               proxy  Lorg/graalvm/compiler/nodes/ValueProxyNode;
           34   37     7            newState  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
                    Name  Flags
      loopExit            
      loopExplosionMerge  
      loopExplosionEnd    

  private void handleIrreducibleLoop(org.graalvm.compiler.nodes.LoopDetector$Loop);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=18, args_size=2
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
        start local 1 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         0: .line 1785
            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 1787
      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 1788
            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 1789
            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 1790
      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 1791
            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 1792
            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 1798
      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 1799
            aconst_null
            astore 7 /* loopValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode loopValue
         9: .line 1800
            aconst_null
            astore 8 /* explosionHeadValue */
        start local 8 // org.graalvm.compiler.nodes.ValueNode explosionHeadValue
        10: .line 1801
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        11: goto 21
        12: .line 1802
      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 1803
            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 1805
            aload 10 /* curLoopValue */
            aload 11 /* curExplosionHeadValue */
            if_acmpeq 20
        15: .line 1806
            iload 6 /* loopVariableIndex */
            iconst_m1
            if_icmpeq 17
        16: .line 1807
            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 1810
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 9 /* i */
            istore 6 /* loopVariableIndex */
        18: .line 1811
            aload 10 /* curLoopValue */
            astore 7 /* loopValue */
        19: .line 1812
            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 1801
      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 1815
            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 1818
      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
        24: .line 1820
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnonnull 59
        25: .line 1825
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 26
            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 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 1826
      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 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;
            invokevirtual org.graalvm.compiler.nodes.MergeNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 1829
      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
        28: .line 1830
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        29: goto 32
        30: .line 1831
      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
        31: .line 1830
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: 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 30
        end local 12 // int i
        33: .line 1838
            aload 3 /* explosionHeadState */
            astore 12 /* oldFrameState */
        start local 12 // org.graalvm.compiler.nodes.FrameState oldFrameState
        34: .line 1839
            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
        35: .line 1840
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        36: goto 42
        37: .line 1841
      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 40
        38: .line 1842
            aload 13 /* newFrameStateValues */
            aload 9 /* loopVariablePhi */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1843
            goto 41
        40: .line 1844
      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
        41: .line 1840
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 14 /* i */
            aload 5 /* explosionHeadValues */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            if_icmplt 37
        end local 14 // int i
        43: .line 1848
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
        44: .line 1849
            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
        45: .line 1850
            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;
        46: .line 1851
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        47: .line 1849
            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
        48: .line 1848
            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
        49: .line 1852
            aload 12 /* oldFrameState */
            aload 14 /* newFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        50: .line 1858
            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
        51: .line 1859
            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
        52: .line 1860
            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
        53: .line 1861
            aload 16 /* handlerBegin */
            aload 15 /* handlerNext */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        54: .line 1862
            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
        55: .line 1868
            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
        56: .line 1869
            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
        57: .line 1870
            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
        58: .line 1872
            goto 75
        end local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        end local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        59: .line 1878
      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 60
            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 60
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        60: .line 1879
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 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.count:()I
            iconst_1
            if_icmpne 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;
            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 62
      StackMap locals:
      StackMap stack:
        61: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 1880
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 63
            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 63
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        63: .line 1883
      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
        64: .line 1889
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        65: goto 69
        66: .line 1890
      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
        67: .line 1891
            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
        68: .line 1889
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        69: 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 66
        end local 12 // int i
        70: .line 1893
            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
        71: .line 1896
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 72
            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 72
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        72: .line 1897
      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
        73: .line 1898
            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
        74: .line 1899
            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
        75: .line 1903
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 76
            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 76
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        76: .line 1904
      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
        77: .line 1905
            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
        78: .line 1906
            aload 12 /* dispatchBegin */
            aload 13 /* dispatchEnd */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        79: .line 1907
            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
        80: .line 1908
            aload 7 /* loopValue */
            invokestatic org.graalvm.compiler.nodes.LoopDetector.asInt:(Lorg/graalvm/compiler/nodes/ValueNode;)I
            istore 14 /* intLoopValue */
        start local 14 // int intLoopValue
        81: .line 1909
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 82
            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 82
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        82: .line 1910
      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
        83: .line 1913
            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 89
      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:
        84: 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
        85: .line 1914
            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
        86: .line 1915
            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
        87: .line 1916
            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
        88: .line 1917
            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
        89: .line 1913
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 84
        90: .line 1921
            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;
        91: .line 1922
            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
        92: .line 1923
            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   93     0                         this  Lorg/graalvm/compiler/nodes/LoopDetector;
            0   93     1                         loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            2   93     2                    loopState  Lorg/graalvm/compiler/nodes/FrameState;
            3   93     3           explosionHeadState  Lorg/graalvm/compiler/nodes/FrameState;
            5   93     4                   loopValues  Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
            6   93     5          explosionHeadValues  Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
            8   93     6            loopVariableIndex  I
            9   93     7                    loopValue  Lorg/graalvm/compiler/nodes/ValueNode;
           10   93     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;
           28   59     9              loopVariablePhi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
           64   93     9              loopVariablePhi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
           24   93    10                dispatchTable  Ljava/util/SortedMap<Ljava/lang/Integer;Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
           56   59    11  unreachableDefaultSuccessor  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
           71   93    11  unreachableDefaultSuccessor  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
           29   33    12                            i  I
           34   58    12                oldFrameState  Lorg/graalvm/compiler/nodes/FrameState;
           35   58    13          newFrameStateValues  Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
           36   43    14                            i  I
           49   58    14                newFrameState  Lorg/graalvm/compiler/nodes/FrameState;
           51   58    15                  handlerNext  Lorg/graalvm/compiler/nodes/FixedNode;
           53   58    16                 handlerBegin  Lorg/graalvm/compiler/nodes/BeginNode;
           57   58    17                        deopt  Lorg/graalvm/compiler/nodes/DeoptimizeNode;
           65   70    12                            i  I
           67   68    13                          key  I
           77   93    12                dispatchBegin  Lorg/graalvm/compiler/nodes/BeginNode;
           78   93    13                  dispatchEnd  Lorg/graalvm/compiler/nodes/EndNode;
           81   93    14                 intLoopValue  I
           85   89    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 1926
            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 1927
      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 1929
      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 1933
            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 1937
            aload 1 /* dispatchTable */
            invokeinterface java.util.SortedMap.size:()I
            istore 3 /* numKeys */
        start local 3 // int numKeys
         1: .line 1938
            iload 3 /* numKeys */
            iconst_1
            iadd
            istore 4 /* numSuccessors */
        start local 4 // int numSuccessors
         2: .line 1940
            iload 4 /* numSuccessors */
            anewarray org.graalvm.compiler.nodes.AbstractBeginNode
            astore 5 /* switchSuccessors */
        start local 5 // org.graalvm.compiler.nodes.AbstractBeginNode[] switchSuccessors
         3: .line 1941
            iload 3 /* numKeys */
            newarray 10
            astore 6 /* switchKeys */
        start local 6 // int[] switchKeys
         4: .line 1942
            iload 4 /* numSuccessors */
            newarray 7
            astore 7 /* switchKeyProbabilities */
        start local 7 // double[] switchKeyProbabilities
         5: .line 1943
            iload 4 /* numSuccessors */
            newarray 10
            astore 8 /* switchKeySuccessors */
        start local 8 // int[] switchKeySuccessors
         6: .line 1945
            iconst_0
            istore 9 /* idx */
        start local 9 // int idx
         7: .line 1946
            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 1947
            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 1948
            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 1949
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_1
            iload 3 /* numKeys */
            i2d
            ddiv
            dastore
        12: .line 1950
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        13: .line 1951
            iinc 9 /* idx */ 1
        end local 10 // java.util.Map$Entry entry
        14: .line 1946
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 1953
            aload 5 /* switchSuccessors */
            iload 9 /* idx */
            aload 2 /* defaultSuccessor */
            aastore
        16: .line 1955
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_0
            dastore
        17: .line 1956
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        18: .line 1958
            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 1966
            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 1967
            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 1968
            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 1969
            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 1970
            ldc ""
            astore 6 /* sep */
        start local 6 // java.lang.String sep
         6: .line 1971
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 11
         8: .line 1972
      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 1973
            ldc ", "
            astore 6 /* sep */
        10: .line 1971
            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 1975
            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 1977
      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 1978
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   20     1  debug  Lorg/graalvm/compiler/debug/DebugContext;
            3   15     4      s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            5   13     5    msg  Ljava/lang/StringBuilder;
            6   13     6    sep  Ljava/lang/String;
            7   12     7      i  I
      Exception table:
        from    to  target  type
           3    13      14  any
           2    16      16  any
}
SourceFile: "GraphDecoder.java"
NestMembers:
  org.graalvm.compiler.nodes.LoopDetector$Loop
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
  protected MethodScope = org.graalvm.compiler.nodes.GraphDecoder$MethodScope of org.graalvm.compiler.nodes.GraphDecoder
  protected final ProxyPlaceholder = org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder of org.graalvm.compiler.nodes.GraphDecoder
  Loop = org.graalvm.compiler.nodes.LoopDetector$Loop of org.graalvm.compiler.nodes.LoopDetector
  public final LoopExplosionKind = org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin$LoopExplosionKind of org.graalvm.compiler.nodes.graphbuilderconf.LoopExplosionPlugin