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.GraphDecoder$MethodScope methodScope;
    descriptor: Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.FixedNode startInstruction;
    descriptor: Lorg/graalvm/compiler/nodes/FixedNode;
    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 1258
            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.GraphDecoder$MethodScope, org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;Lorg/graalvm/compiler/nodes/FixedNode;)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.GraphDecoder$MethodScope methodScope
        start local 2 // org.graalvm.compiler.nodes.FixedNode startInstruction
         0: .line 1291
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1292
            aload 0 /* this */
            aload 1 /* methodScope */
            putfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
         2: .line 1293
            aload 0 /* this */
            aload 2 /* startInstruction */
            putfield org.graalvm.compiler.nodes.LoopDetector.startInstruction:Lorg/graalvm/compiler/nodes/FixedNode;
         3: .line 1294
            return
        end local 2 // org.graalvm.compiler.nodes.FixedNode startInstruction
        end local 1 // org.graalvm.compiler.nodes.GraphDecoder$MethodScope methodScope
        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       methodScope  Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            0    4     2  startInstruction  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
                  Name  Flags
      methodScope       
      startInstruction  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
         0: .line 1298
            iconst_3
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "Before loop detection"
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
         1: .line 1300
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findLoops:()Ljava/util/List;
            astore 1 /* orderedLoops */
        start local 1 // java.util.List orderedLoops
         2: .line 1301
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 3
            aload 1 /* orderedLoops */
            aload 1 /* 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 3
            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
         3: .line 1303
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* orderedLoops */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.LoopDetector$Loop
            astore 2 /* loop */
        start local 2 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
         5: .line 1304
            aload 2 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.ends:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 1305
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 13
            aload 2 /* loop */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopHandler:Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 1314
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.List org.graalvm.compiler.nodes.LoopDetector$Loop java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 2 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findLoopExits:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
         8: .line 1316
            aload 2 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
            ifeq 11
         9: .line 1317
            aload 0 /* this */
            aload 2 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.handleIrreducibleLoop:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        10: .line 1318
            goto 12
        11: .line 1319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.insertLoopNodes:(Lorg/graalvm/compiler/nodes/LoopDetector$Loop;)V
        12: .line 1321
      StackMap locals:
      StackMap stack:
            iconst_3
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After handling of loop %s"
            aload 2 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 2 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        13: .line 1303
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 1324
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.logIrreducibleLoops:()V
        15: .line 1325
            iconst_3
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            ldc "After loop detection"
            invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        16: .line 1326
            return
        end local 1 // java.util.List orderedLoops
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lorg/graalvm/compiler/nodes/LoopDetector;
            2   17     1  orderedLoops  Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            5   13     2          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 1330
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* unorderedLoops */
        start local 1 // java.util.Map unorderedLoops
         1: .line 1332
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* orderedLoops */
        start local 2 // java.util.List orderedLoops
         2: .line 1338
            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:(Ljava/util/Map;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 1340
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1341
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1342
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 5 /* stack */
        start local 5 // java.util.Deque stack
         6: .line 1343
            aload 3 /* visited */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.startInstruction:Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
         7: .line 1344
            aload 5 /* stack */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.startInstruction:Lorg/graalvm/compiler/nodes/FixedNode;
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         8: .line 1346
            goto 31
         9: .line 1347
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.Map 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 1348
            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 1350
      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 19
        12: .line 1352
            aload 5 /* stack */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
        13: .line 1353
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.clear:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 1355
            aload 1 /* unorderedLoops */
            aload 6 /* current */
            invokeinterface java.util.Map.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
        15: .line 1356
            aload 7 /* loop */
            ifnull 31
        16: .line 1361
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 17
            aload 2 /* orderedLoops */
            aload 7 /* loop */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 1362
      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
        18: .line 1365
            goto 31
        19: .line 1371
      StackMap locals:
      StackMap stack:
            aload 4 /* active */
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        20: .line 1372
            aload 6 /* current */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 30
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.Map 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:
        21: 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
        22: .line 1373
            aload 4 /* active */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 27
        23: .line 1375
            aload 0 /* this */
            aload 1 /* unorderedLoops */
            aload 7 /* successor */
            checkcast org.graalvm.compiler.nodes.MergeNode
            invokevirtual org.graalvm.compiler.nodes.LoopDetector.findOrCreateLoop:(Ljava/util/Map;Lorg/graalvm/compiler/nodes/MergeNode;)Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
            astore 9 /* loop */
        start local 9 // org.graalvm.compiler.nodes.LoopDetector$Loop loop
        24: .line 1376
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 25
            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 25
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 1377
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.Map 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
        26: .line 1379
            goto 30
      StackMap locals:
      StackMap stack:
        27: aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 30
        28: .line 1384
            aload 3 /* visited */
            aload 7 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        29: .line 1385
            aload 5 /* stack */
            aload 7 /* successor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.graph.Node successor
        30: .line 1372
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.Map 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 21
        end local 6 // org.graalvm.compiler.graph.Node current
        31: .line 1346
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.util.Map 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
        32: .line 1390
            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 // java.util.Map unorderedLoops
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lorg/graalvm/compiler/nodes/LoopDetector;
            1   33     1  unorderedLoops  Ljava/util/Map<Lorg/graalvm/compiler/nodes/MergeNode;Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            2   33     2    orderedLoops  Ljava/util/List<Lorg/graalvm/compiler/nodes/LoopDetector$Loop;>;
            4   33     3         visited  Lorg/graalvm/compiler/graph/NodeBitMap;
            5   33     4          active  Lorg/graalvm/compiler/graph/NodeBitMap;
            6   33     5           stack  Ljava/util/Deque<Lorg/graalvm/compiler/graph/Node;>;
           10   31     6         current  Lorg/graalvm/compiler/graph/Node;
           15   18     7            loop  Lorg/graalvm/compiler/nodes/LoopDetector$Loop;
           22   30     7       successor  Lorg/graalvm/compiler/graph/Node;
           24   26     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(java.util.Map<org.graalvm.compiler.nodes.MergeNode, org.graalvm.compiler.nodes.LoopDetector$Loop>, org.graalvm.compiler.nodes.MergeNode);
    descriptor: (Ljava/util/Map;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 // java.util.Map unorderedLoops
        start local 2 // org.graalvm.compiler.nodes.MergeNode loopHeader
         0: .line 1394
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/compiler/graph/NodeBitMap;
            aload 2 /* loopHeader */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarkedAndGrow:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            aload 2 /* loopHeader */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1395
      StackMap locals:
      StackMap stack:
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            invokeinterface java.util.Map.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 1396
            aload 3 /* loop */
            ifnonnull 6
         3: .line 1397
            new org.graalvm.compiler.nodes.LoopDetector$Loop
            dup
            invokespecial org.graalvm.compiler.nodes.LoopDetector$Loop.<init>:()V
            astore 3 /* loop */
         4: .line 1398
            aload 3 /* loop */
            aload 2 /* loopHeader */
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
         5: .line 1399
            aload 1 /* unorderedLoops */
            aload 2 /* loopHeader */
            aload 3 /* loop */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1401
      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 // java.util.Map 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  Ljava/util/Map<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: (Ljava/util/Map<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 1412
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createNodeBitMap:()Lorg/graalvm/compiler/graph/NodeBitMap;
            astore 2 /* possibleExits */
        start local 2 // org.graalvm.compiler.graph.NodeBitMap possibleExits
         1: .line 1413
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1414
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* stack */
        start local 4 // java.util.Deque stack
         3: .line 1415
            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 org.graalvm.compiler.graph.NodeBitMap 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 1416
            aload 4 /* stack */
            aload 5 /* loopEnd */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         6: .line 1417
            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 1415
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1420
            goto 36
         9: .line 1421
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.graph.NodeBitMap 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 1422
            aload 5 /* current */
            aload 1 /* loop */
            getfield org.graalvm.compiler.nodes.LoopDetector$Loop.header:Lorg/graalvm/compiler/nodes/MergeNode;
            if_acmpne 12
        11: .line 1423
            goto 36
        12: .line 1425
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1430
            aload 1 /* loop */
            iconst_1
            putfield org.graalvm.compiler.nodes.LoopDetector$Loop.irreducible:Z
        14: .line 1431
            return
        15: .line 1434
      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 org.graalvm.compiler.graph.NodeBitMap 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 1435
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.LoopExitNode
            ifeq 27
        18: .line 1440
            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 1441
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 35
        20: .line 1442
            aload 4 /* stack */
            aload 8 /* innerLoopBegin */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        21: .line 1443
            aload 3 /* visited */
            aload 8 /* innerLoopBegin */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 1450
            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 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.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 1451
            aload 2 /* possibleExits */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        end local 9 // org.graalvm.compiler.nodes.LoopExitNode exit
        25: .line 1450
      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 1455
            goto 35
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop 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
      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 1456
            aload 4 /* stack */
            aload 6 /* predecessor */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        29: .line 1457
            aload 3 /* visited */
            aload 6 /* predecessor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 1459
            aload 6 /* predecessor */
            instanceof org.graalvm.compiler.nodes.ControlSplitNode
            ifeq 35
        31: .line 1460
            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 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 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 1468
            aload 2 /* possibleExits */
            aload 8 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        end local 8 // org.graalvm.compiler.graph.Node succ
        34: .line 1460
      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 1434
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop 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 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 5 // org.graalvm.compiler.graph.Node current
        36: .line 1420
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 9
        37: .line 1476
            aload 2 /* possibleExits */
            aload 3 /* visited */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.subtract:(Lorg/graalvm/compiler/graph/NodeBitMap;)V
        38: .line 1494
            aload 2 /* possibleExits */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.iterator:()Ljava/util/Iterator;
            astore 6
            goto 43
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque top java.util.Iterator
      StackMap stack:
        39: 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
        40: .line 1495
            aload 4 /* stack */
            aload 5 /* succ */
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        41: .line 1496
            aload 3 /* visited */
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        42: .line 1497
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 43
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/compiler/graph/NodeBitMap;
            aload 5 /* succ */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarkedAndGrow:(Lorg/graalvm/compiler/graph/Node;)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 1494
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        44: .line 1500
            goto 59
        45: .line 1501
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.graph.NodeBitMap 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 1502
            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 1503
      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 1505
      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 org.graalvm.compiler.graph.NodeBitMap 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 1506
            aload 3 /* visited */
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 58
        51: .line 1509
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/compiler/graph/NodeBitMap;
            aload 6 /* successor */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarkedAndGrow:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 56
        52: .line 1516
            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 1517
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop 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
      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 1518
      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 1520
            goto 58
        56: .line 1522
      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 1523
            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 1505
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop 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 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        end local 5 // org.graalvm.compiler.graph.Node current
        59: .line 1500
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopDetector$Loop org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.graph.NodeBitMap java.util.Deque
      StackMap stack:
            aload 4 /* stack */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 45
        60: .line 1527
            return
        end local 4 // java.util.Deque stack
        end local 3 // org.graalvm.compiler.graph.NodeBitMap visited
        end local 2 // org.graalvm.compiler.graph.NodeBitMap 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  Lorg/graalvm/compiler/graph/NodeBitMap;
            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;
           40   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 1530
            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 1531
            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 1532
            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 1533
            aload 2 /* merge */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 1534
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1535
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1537
            aload 2 /* merge */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         7: .line 1539
            aload 6 /* loopBegin */
            aload 5 /* preLoopEnd */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
         8: .line 1540
            aload 6 /* loopBegin */
            aload 4 /* afterMerge */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
         9: .line 1541
            aload 6 /* loopBegin */
            aload 3 /* stateAfter */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        10: .line 1548
            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 1549
            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 1550
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 20
        14: .line 1551
      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 1552
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ValuePhiNode
            dup
            aload 10 /* mergePhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:()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 1553
            aload 10 /* mergePhi */
            aload 11 /* loopBeginPhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 1558
            aload 11 /* loopBeginPhi */
            aload 10 /* mergePhi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        18: .line 1559
            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 1550
            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 1562
            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 1563
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 29
        25: .line 1564
      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 1565
            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 1566
            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 1563
            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 1569
            aload 2 /* merge */
            aload 9 /* endNode */
            invokevirtual org.graalvm.compiler.nodes.MergeNode.removeEnd:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)V
        31: .line 1570
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1571
            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 1562
      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 1578
            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 1579
            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 1580
            getstatic org.graalvm.compiler.nodes.LoopDetector.$assertionsDisabled:Z
            ifne 38
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.loopExplosionMerges:Lorg/graalvm/compiler/graph/NodeBitMap;
            aload 11 /* loopExplosionMerge */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarkedAndGrow:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 1582
      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.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1583
            aload 9 /* exit */
            aload 12 /* loopExit */
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        40: .line 1584
            aload 12 /* loopExit */
            aload 9 /* exit */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        41: .line 1585
            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 1578
      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 1587
            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 1596
            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 1599
            new org.graalvm.compiler.graph.NodeBitMap
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokespecial org.graalvm.compiler.graph.NodeBitMap.<init>:(Lorg/graalvm/compiler/graph/Graph;)V
            astore 5 /* loopBeginValues */
        start local 5 // org.graalvm.compiler.graph.NodeBitMap loopBeginValues
         2: .line 1600
            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 1601
      StackMap locals: org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap 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 1602
            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 1603
            aload 5 /* loopBeginValues */
            aload 7 /* value */
            invokestatic org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.unwrap:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.mark:(Lorg/graalvm/compiler/graph/Node;)V
        end local 7 // org.graalvm.compiler.nodes.ValueNode value
         8: .line 1601
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 1600
            aload 6 /* state */
            invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 6 /* state */
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.FrameState
      StackMap stack:
        10: aload 6 /* state */
            ifnonnull 4
        end local 6 // org.graalvm.compiler.nodes.FrameState state
        11: .line 1608
            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 1609
            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 org.graalvm.compiler.graph.NodeBitMap 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 1610
            aload 7 /* v */
            astore 9 /* value */
        start local 9 // org.graalvm.compiler.nodes.ValueNode value
        15: .line 1611
            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 1618
            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 1619
            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 1620
            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 1623
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap 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 */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 20
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1624
      StackMap locals:
      StackMap stack:
            aload 6 /* newValues */
            aload 10 /* realValue */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1625
            goto 30
        22: .line 1630
      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 1631
      StackMap locals:
      StackMap stack: int
            ldc "Value flowing out of loop, but we are not prepared to insert a ProxyNode"
            iconst_0
            anewarray java.lang.Object
        25: .line 1630
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        26: .line 1633
            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 1634
            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.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1635
            aload 11 /* proxyPlaceholder */
            aload 12 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.GraphDecoder$ProxyPlaceholder.setValue:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        29: .line 1636
            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 1609
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        31: .line 1640
            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 1641
            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 1640
            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 1643
            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 1644
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector org.graalvm.compiler.nodes.LoopExitNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeBitMap java.util.List org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            aload 1 /* loopExit */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1645
            return
        end local 7 // org.graalvm.compiler.nodes.FrameState newState
        end local 6 // java.util.List newValues
        end local 5 // org.graalvm.compiler.graph.NodeBitMap 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  Lorg/graalvm/compiler/graph/NodeBitMap;
            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 1671
            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 1673
      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 1674
            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 1675
            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 1676
      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 1677
            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 1678
            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 1684
      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 1685
            aconst_null
            astore 7 /* loopValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode loopValue
         9: .line 1686
            aconst_null
            astore 8 /* explosionHeadValue */
        start local 8 // org.graalvm.compiler.nodes.ValueNode explosionHeadValue
        10: .line 1687
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        11: goto 21
        12: .line 1688
      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 1689
            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 1691
            aload 10 /* curLoopValue */
            aload 11 /* curExplosionHeadValue */
            if_acmpeq 20
        15: .line 1692
            iload 6 /* loopVariableIndex */
            iconst_m1
            if_icmpeq 17
        16: .line 1693
            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 1696
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 9 /* i */
            istore 6 /* loopVariableIndex */
        18: .line 1697
            aload 10 /* curLoopValue */
            astore 7 /* loopValue */
        19: .line 1698
            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 1687
      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 1701
            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 1704
      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 1706
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnonnull 59
        25: .line 1711
            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 1712
      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 1715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ValuePhiNode
            dup
            aload 8 /* explosionHeadValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 1716
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        29: goto 32
        30: .line 1717
      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 1716
            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 1724
            aload 3 /* explosionHeadState */
            astore 12 /* oldFrameState */
        start local 12 // org.graalvm.compiler.nodes.FrameState oldFrameState
        34: .line 1725
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* newFrameStateValues */
        start local 13 // java.util.List newFrameStateValues
        35: .line 1726
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        36: goto 42
        37: .line 1727
      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 1728
            aload 13 /* newFrameStateValues */
            aload 9 /* loopVariablePhi */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1729
            goto 41
        40: .line 1730
      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 1726
      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 1733
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
        44: .line 1734
            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 1735
            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 1736
            aload 12 /* oldFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.virtualObjectMappings:()Lorg/graalvm/compiler/graph/NodeInputList;
        47: .line 1734
            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 1733
            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 1737
            aload 12 /* oldFrameState */
            aload 14 /* newFrameState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        50: .line 1743
            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 1744
            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 1745
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1746
            aload 16 /* handlerBegin */
            aload 15 /* handlerNext */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        54: .line 1747
            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 1753
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1754
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1755
            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 1757
            goto 75
        end local 11 // org.graalvm.compiler.nodes.AbstractBeginNode unreachableDefaultSuccessor
        end local 9 // org.graalvm.compiler.nodes.ValuePhiNode loopVariablePhi
        59: .line 1763
      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 1764
      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 1765
      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 1768
      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 1774
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        65: goto 69
        66: .line 1775
      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 1776
            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 1774
            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 1778
            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 1781
            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 1782
      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 1783
            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 1784
            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 1788
      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 1789
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1790
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1791
            aload 12 /* dispatchBegin */
            aload 13 /* dispatchEnd */
            invokevirtual org.graalvm.compiler.nodes.BeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        79: .line 1792
            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 1793
            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 1794
            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 1795
      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 1798
            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 1799
            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 1800
            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 1801
            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 1802
            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 1798
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 84
        90: .line 1806
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.methodScope:Lorg/graalvm/compiler/nodes/GraphDecoder$MethodScope;
            getfield org.graalvm.compiler.nodes.GraphDecoder$MethodScope.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 1807
            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 1808
            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 1811
            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 1812
      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 1814
      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 1818
            new org.graalvm.compiler.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.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 1822
            aload 1 /* dispatchTable */
            invokeinterface java.util.SortedMap.size:()I
            istore 3 /* numKeys */
        start local 3 // int numKeys
         1: .line 1823
            iload 3 /* numKeys */
            iconst_1
            iadd
            istore 4 /* numSuccessors */
        start local 4 // int numSuccessors
         2: .line 1825
            iload 4 /* numSuccessors */
            anewarray org.graalvm.compiler.nodes.AbstractBeginNode
            astore 5 /* switchSuccessors */
        start local 5 // org.graalvm.compiler.nodes.AbstractBeginNode[] switchSuccessors
         3: .line 1826
            iload 3 /* numKeys */
            newarray 10
            astore 6 /* switchKeys */
        start local 6 // int[] switchKeys
         4: .line 1827
            iload 4 /* numSuccessors */
            newarray 7
            astore 7 /* switchKeyProbabilities */
        start local 7 // double[] switchKeyProbabilities
         5: .line 1828
            iload 4 /* numSuccessors */
            newarray 10
            astore 8 /* switchKeySuccessors */
        start local 8 // int[] switchKeySuccessors
         6: .line 1830
            iconst_0
            istore 9 /* idx */
        start local 9 // int idx
         7: .line 1831
            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 1832
            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 1833
            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 1834
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_1
            iload 3 /* numKeys */
            i2d
            ddiv
            dastore
        12: .line 1835
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        13: .line 1836
            iinc 9 /* idx */ 1
        end local 10 // java.util.Map$Entry entry
        14: .line 1831
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 1838
            aload 5 /* switchSuccessors */
            iload 9 /* idx */
            aload 2 /* defaultSuccessor */
            aastore
        16: .line 1840
            aload 7 /* switchKeyProbabilities */
            iload 9 /* idx */
            dconst_0
            dastore
        17: .line 1841
            aload 8 /* switchKeySuccessors */
            iload 9 /* idx */
            iload 9 /* idx */
            iastore
        18: .line 1843
            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=3, locals=7, args_size=1
        start local 0 // org.graalvm.compiler.nodes.LoopDetector this
         0: .line 1851
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: ldc "IrreducibleLoops"
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 3 /* s */
        start local 3 // org.graalvm.compiler.debug.Debug$Scope s
         2: .line 1852
            iconst_1
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:(I)Z
            ifeq 12
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.LoopDetector.irreducibleLoopSwitch:Lorg/graalvm/compiler/nodes/extended/IntegerSwitchNode;
            ifnull 12
         3: .line 1853
            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 4 /* msg */
        start local 4 // java.lang.StringBuilder msg
         4: .line 1854
            ldc ""
            astore 5 /* sep */
        start local 5 // java.lang.String sep
         5: .line 1855
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 1856
      StackMap locals: org.graalvm.compiler.nodes.LoopDetector java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 4 /* msg */
            aload 5 /* 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 6 /* 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
         8: .line 1857
            ldc ", "
            astore 5 /* sep */
         9: .line 1855
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* 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 7
        end local 6 // int i
        11: .line 1859
            iconst_1
            ldc "%s"
            aload 4 /* msg */
            invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;Ljava/lang/Object;)V
        end local 5 // java.lang.String sep
        end local 4 // java.lang.StringBuilder msg
        12: .line 1861
      StackMap locals:
      StackMap stack:
            aload 3 /* s */
            ifnull 18
            aload 3 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 1
            aload 3 /* s */
            ifnull 14
            aload 3 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 3 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
        14: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 2
            aload 1
            ifnonnull 16
            aload 2
            astore 1
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 1
            aload 2
            if_acmpeq 17
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 1
            athrow
        18: .line 1862
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.nodes.LoopDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/graalvm/compiler/nodes/LoopDetector;
            2   14     3     s  Lorg/graalvm/compiler/debug/Debug$Scope;
            4   12     4   msg  Ljava/lang/StringBuilder;
            5   12     5   sep  Ljava/lang/String;
            6   11     6     i  I
      Exception table:
        from    to  target  type
           2    12      13  any
           1    15      15  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.Debug$Scope of org.graalvm.compiler.debug.Debug
  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