public class org.graalvm.compiler.core.test.ReentrantBlockIteratorTest extends org.graalvm.compiler.core.test.GraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.test.ReentrantBlockIteratorTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  public static int IntSideEffect;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 45
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;

  public static int oneBlock();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int fourBlock(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int a
         0: .line 54
            iload 0 /* a */
            ifle 3
         1: .line 55
            iload 0 /* a */
            putstatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.IntSideEffect:I
         2: .line 56
            goto 4
         3: .line 57
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.IntSideEffect:I
         4: .line 59
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.controlFlowAnchor:()V
         5: .line 60
            iconst_0
            ireturn
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     a  I
    MethodParameters:
      Name  Flags
      a     

  public static int loopBlocks(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int a
         0: .line 64
            iconst_0
            istore 1 /* phi */
        start local 1 // int phi
         1: .line 65
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 66
      StackMap locals: int int
      StackMap stack:
            iload 1 /* phi */
            iload 2 /* i */
            iadd
            istore 1 /* phi */
         4: .line 65
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 0 /* a */
            if_icmplt 3
        end local 2 // int i
         6: .line 68
            iload 1 /* phi */
            ireturn
        end local 1 // int phi
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     a  I
            1    7     1   phi  I
            2    6     2     i  I
    MethodParameters:
      Name  Flags
      a     

  public static int loopBlocks2(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int a
         0: .line 72
            iconst_0
            istore 1 /* phi */
        start local 1 // int phi
         1: .line 73
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 74
      StackMap locals: int int
      StackMap stack:
            iload 1 /* phi */
            iload 2 /* i */
            iadd
            istore 1 /* phi */
         4: .line 73
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 0 /* a */
            if_icmplt 3
        end local 2 // int i
         6: .line 77
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 10
         8: .line 78
      StackMap locals:
      StackMap stack:
            iload 1 /* phi */
            iload 2 /* i */
            iadd
            istore 1 /* phi */
         9: .line 77
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            iload 0 /* a */
            if_icmplt 8
        end local 2 // int i
        11: .line 80
            iload 1 /* phi */
            ireturn
        end local 1 // int phi
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0     a  I
            1   12     1   phi  I
            2    6     2     i  I
            7   11     2     i  I
    MethodParameters:
      Name  Flags
      a     

  public static int loopBlocks3(char[], int, int, char[], int, int, int);
    descriptor: ([CII[CIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=13, args_size=7
        start local 0 // char[] source
        start local 1 // int sourceOffset
        start local 2 // int sourceCount
        start local 3 // char[] target
        start local 4 // int targetOffset
        start local 5 // int targetCount
        start local 6 // int fromIndex
         0: .line 89
            iload 6 /* fromIndex */
            iload 2 /* sourceCount */
            if_icmplt 4
         1: .line 90
            iload 5 /* targetCount */
            ifne 2
            iload 2 /* sourceCount */
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            iload 6 /* fromIndex */
            ifge 6
         5: .line 93
            iconst_0
            istore 6 /* fromIndex */
         6: .line 95
      StackMap locals:
      StackMap stack:
            iload 5 /* targetCount */
            ifne 8
         7: .line 96
            iload 6 /* fromIndex */
            ireturn
         8: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* target */
            iload 4 /* targetOffset */
            caload
            istore 7 /* first */
        start local 7 // char first
         9: .line 100
            iload 1 /* sourceOffset */
            iload 2 /* sourceCount */
            iload 5 /* targetCount */
            isub
            iadd
            istore 8 /* max */
        start local 8 // int max
        10: .line 102
            iload 1 /* sourceOffset */
            iload 6 /* fromIndex */
            iadd
            istore 9 /* i */
        start local 9 // int i
        11: goto 24
        12: .line 104
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* source */
            iload 9 /* i */
            caload
            iload 7 /* first */
            if_icmpeq 14
        13: .line 105
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
            iload 9 /* i */
            iload 8 /* max */
            if_icmpgt 14
            aload 0 /* source */
            iload 9 /* i */
            caload
            iload 7 /* first */
            if_icmpne 13
        14: .line 111
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 8 /* max */
            if_icmpgt 23
        15: .line 112
            iload 9 /* i */
            iconst_1
            iadd
            istore 10 /* j */
        start local 10 // int j
        16: .line 113
            iload 10 /* j */
            iload 5 /* targetCount */
            iadd
            iconst_1
            isub
            istore 11 /* end */
        start local 11 // int end
        17: .line 114
            iload 4 /* targetOffset */
            iconst_1
            iadd
            istore 12 /* k */
        start local 12 // int k
        18: goto 20
      StackMap locals: int int int
      StackMap stack:
        19: iinc 10 /* j */ 1
            iinc 12 /* k */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* j */
            iload 11 /* end */
            if_icmpge 21
            aload 0 /* source */
            iload 10 /* j */
            caload
            aload 3 /* target */
            iload 12 /* k */
            caload
            if_icmpeq 19
        end local 12 // int k
        21: .line 118
      StackMap locals:
      StackMap stack:
            iload 10 /* j */
            iload 11 /* end */
            if_icmpne 23
        22: .line 120
            iload 9 /* i */
            iload 1 /* sourceOffset */
            isub
            ireturn
        end local 11 // int end
        end local 10 // int j
        23: .line 102
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 9 /* i */
            iload 8 /* max */
            if_icmple 12
        end local 9 // int i
        25: .line 124
            iconst_m1
            ireturn
        end local 8 // int max
        end local 7 // char first
        end local 6 // int fromIndex
        end local 5 // int targetCount
        end local 4 // int targetOffset
        end local 3 // char[] target
        end local 2 // int sourceCount
        end local 1 // int sourceOffset
        end local 0 // char[] source
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0        source  [C
            0   26     1  sourceOffset  I
            0   26     2   sourceCount  I
            0   26     3        target  [C
            0   26     4  targetOffset  I
            0   26     5   targetCount  I
            0   26     6     fromIndex  I
            9   26     7         first  C
           10   26     8           max  I
           11   25     9             i  I
           16   23    10             j  I
           17   23    11           end  I
           18   21    12             k  I
    MethodParameters:
              Name  Flags
      source        
      sourceOffset  
      sourceCount   
      target        
      targetOffset  
      targetCount   
      fromIndex     

  public static int loopBlocks4(int, int, int);
    descriptor: (III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // int a
        start local 1 // int c
        start local 2 // int d
         0: .line 129
            iconst_0
            istore 3 /* phi */
        start local 3 // int phi
         1: .line 130
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 17
         3: .line 131
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 5 /* k */
        start local 5 // int k
         4: goto 13
         5: .line 132
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 6 /* l */
        start local 6 // int l
         6: goto 11
         7: .line 133
      StackMap locals: int
      StackMap stack:
            iload 3 /* phi */
            iload 4 /* i */
            iload 5 /* k */
            imul
            iload 6 /* l */
            imul
            iadd
            istore 3 /* phi */
         8: .line 134
            iload 3 /* phi */
            iconst_5
            if_icmpne 10
         9: .line 135
            goto 14
        10: .line 132
      StackMap locals:
      StackMap stack:
            iinc 6 /* l */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* l */
            iload 2 /* d */
            if_icmplt 7
        end local 6 // int l
        12: .line 131
            iinc 5 /* k */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* k */
            iload 1 /* c */
            if_icmplt 5
        end local 5 // int k
        14: .line 139
      StackMap locals:
      StackMap stack:
            iload 3 /* phi */
            bipush 100
            if_icmple 16
        15: .line 140
            goto 18
        16: .line 130
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            iload 0 /* a */
            if_icmplt 3
        end local 4 // int i
        18: .line 143
      StackMap locals:
      StackMap stack:
            iload 3 /* phi */
            ireturn
        end local 3 // int phi
        end local 2 // int d
        end local 1 // int c
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0     a  I
            0   19     1     c  I
            0   19     2     d  I
            1   19     3   phi  I
            2   18     4     i  I
            4   14     5     k  I
            6   12     6     l  I
    MethodParameters:
      Name  Flags
      a     
      c     
      d     

  public void test01();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 149
            aload 0 /* this */
            ldc "oneBlock"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            astore 1 /* blocks */
        start local 1 // java.util.List blocks
         1: .line 150
            aload 1 /* blocks */
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            invokestatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.assertOrder:(Ljava/util/List;[I)V
         2: .line 151
            return
        end local 1 // java.util.List blocks
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            1    3     1  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void test02();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 155
            aload 0 /* this */
            ldc "fourBlock"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            astore 1 /* blocks */
        start local 1 // java.util.List blocks
         1: .line 156
            aload 1 /* blocks */
            iconst_4
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            invokestatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.assertOrder:(Ljava/util/List;[I)V
         2: .line 157
            return
        end local 1 // java.util.List blocks
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            1    3     1  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void test03();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 161
            aload 0 /* this */
            ldc "loopBlocks"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            astore 1 /* blocks */
        start local 1 // java.util.List blocks
         1: .line 162
            aload 1 /* blocks */
            iconst_4
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            invokestatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.assertOrder:(Ljava/util/List;[I)V
         2: .line 163
            return
        end local 1 // java.util.List blocks
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            1    3     1  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void test04();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 167
            aload 0 /* this */
            ldc "loopBlocks2"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            astore 1 /* blocks */
        start local 1 // java.util.List blocks
         1: .line 168
            aload 1 /* blocks */
            bipush 7
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            dup
            iconst_4
            iconst_4
            iastore
            dup
            iconst_5
            iconst_5
            iastore
            dup
            bipush 6
            bipush 6
            iastore
            invokestatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.assertOrder:(Ljava/util/List;[I)V
         2: .line 169
            return
        end local 1 // java.util.List blocks
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            1    3     1  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void test05();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 173
            aload 0 /* this */
            ldc "loopBlocks3"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            astore 1 /* blocks */
        start local 1 // java.util.List blocks
         1: .line 174
            aload 1 /* blocks */
            bipush 33
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            dup
            iconst_4
            iconst_4
            iastore
            dup
            iconst_5
            iconst_5
            iastore
            dup
            bipush 6
            bipush 6
            iastore
            dup
            bipush 7
            bipush 7
            iastore
            dup
            bipush 8
            bipush 8
            iastore
            dup
            bipush 9
            bipush 9
            iastore
            dup
            bipush 10
            bipush 10
            iastore
            dup
            bipush 11
            bipush 11
            iastore
            dup
            bipush 12
            bipush 12
            iastore
            dup
            bipush 13
            bipush 13
            iastore
            dup
            bipush 14
            bipush 14
            iastore
            dup
            bipush 15
            bipush 15
            iastore
            dup
            bipush 16
            bipush 16
            iastore
            dup
            bipush 17
            bipush 17
            iastore
            dup
            bipush 18
            bipush 18
            iastore
            dup
            bipush 19
            bipush 19
            iastore
            dup
            bipush 20
            bipush 20
            iastore
            dup
            bipush 21
            bipush 21
            iastore
            dup
            bipush 22
            bipush 22
            iastore
            dup
            bipush 23
            bipush 23
            iastore
            dup
            bipush 24
            bipush 24
            iastore
            dup
            bipush 25
            bipush 25
            iastore
            dup
            bipush 26
            bipush 26
            iastore
            dup
            bipush 27
            bipush 27
            iastore
            dup
            bipush 28
            bipush 28
            iastore
            dup
            bipush 29
            bipush 29
            iastore
            dup
            bipush 30
            bipush 30
            iastore
            dup
            bipush 31
            bipush 31
            iastore
            dup
            bipush 32
            bipush 32
            iastore
            invokestatic org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.assertVisited:(Ljava/util/List;[I)V
         2: .line 175
            return
        end local 1 // java.util.List blocks
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            1    3     1  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void test06();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
         0: .line 179
            aload 0 /* this */
            ldc "loopBlocks4"
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.getVisitedBlocksInOrder:(Ljava/lang/String;)Ljava/util/List;
            pop
         1: .line 180
            return
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void assertOrder(java.util.List<org.graalvm.compiler.nodes.cfg.Block>, );
    descriptor: (Ljava/util/List;[I)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.List blocks
        start local 1 // int[] ids
         0: .line 183
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            aload 1 /* ids */
            arraylength
            if_icmpeq 2
         1: .line 184
            new java.lang.StringBuilder
            dup
            ldc "Different length of blocks "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* blocks */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ids:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ids */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
         2: .line 186
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 187
      StackMap locals: int
      StackMap stack:
            aload 0 /* blocks */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getId:()I
            aload 1 /* ids */
            iload 2 /* i */
            iaload
            if_icmpeq 6
         5: .line 188
            new java.lang.StringBuilder
            dup
            ldc "Different id for block "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* blocks */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and associated id "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ids */
            iload 2 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
         6: .line 186
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 2 // int i
         8: .line 191
            return
        end local 1 // int[] ids
        end local 0 // java.util.List blocks
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0    9     1     ids  [I
            3    8     2       i  I
    Signature: (Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;[I)V
    MethodParameters:
        Name  Flags
      blocks  
      ids     

  private static void assertVisited(java.util.List<org.graalvm.compiler.nodes.cfg.Block>, );
    descriptor: (Ljava/util/List;[I)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.List blocks
        start local 1 // int[] ids
         0: .line 194
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            aload 1 /* ids */
            arraylength
            if_icmpeq 2
         1: .line 195
            new java.lang.StringBuilder
            dup
            ldc "Different length of blocks "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* blocks */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ids:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ids */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
         2: .line 197
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 12
         4: .line 198
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         5: goto 9
         6: .line 199
      StackMap locals: int
      StackMap stack:
            aload 0 /* blocks */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getId:()I
            aload 1 /* ids */
            iload 3 /* j */
            iaload
            if_icmpne 8
         7: .line 200
            goto 11
         8: .line 198
      StackMap locals:
      StackMap stack:
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* j */
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 6
        end local 3 // int j
        10: .line 203
            new java.lang.StringBuilder
            dup
            ldc "Id for block "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* blocks */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        11: .line 197
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* blocks */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 2 // int i
        13: .line 205
            return
        end local 1 // int[] ids
        end local 0 // java.util.List blocks
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0  blocks  Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0   14     1     ids  [I
            3   13     2       i  I
            5   10     3       j  I
    Signature: (Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;[I)V
    MethodParameters:
        Name  Flags
      blocks  
      ids     

  private java.util.List<org.graalvm.compiler.nodes.cfg.Block> getVisitedBlocksInOrder(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
        start local 1 // java.lang.String snippet
         0: .line 208
            aload 0 /* this */
            aload 1 /* snippet */
            getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.YES:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
            invokevirtual org.graalvm.compiler.core.test.ReentrantBlockIteratorTest.parseEager:(Ljava/lang/String;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 210
            aload 2 /* graph */
            getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.AFTER_FSA:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
         2: .line 211
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* blocks */
        start local 3 // java.util.ArrayList blocks
         3: .line 214
            new org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState.<init>:(Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;)V
            astore 4 /* voidState */
        start local 4 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState voidState
         4: .line 215
            new org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1
            dup
            aload 0 /* this */
            aload 4 /* voidState */
            aload 3 /* blocks */
            invokespecial org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1.<init>:(Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest$1VoidState;Ljava/util/ArrayList;)V
            astore 5 /* closure */
        start local 5 // org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure closure
         5: .line 244
            aload 2 /* graph */
            iconst_1
            iconst_1
            iconst_1
            iconst_0
            invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.compute:(Lorg/graalvm/compiler/nodes/StructuredGraph;ZZZZ)Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            astore 6 /* cfg */
        start local 6 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         6: .line 245
            aload 5 /* closure */
            aload 6 /* cfg */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getStartBlock:()Lorg/graalvm/compiler/nodes/cfg/Block;
            invokestatic org.graalvm.compiler.phases.graph.ReentrantBlockIterator.apply:(Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
         7: .line 247
            new org.graalvm.compiler.phases.schedule.SchedulePhase
            dup
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokespecial org.graalvm.compiler.phases.schedule.SchedulePhase.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.phases.schedule.SchedulePhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
         8: .line 248
            aload 3 /* blocks */
            areturn
        end local 6 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 5 // org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure closure
        end local 4 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState voidState
        end local 3 // java.util.ArrayList blocks
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // java.lang.String snippet
        end local 0 // org.graalvm.compiler.core.test.ReentrantBlockIteratorTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest;
            0    9     1    snippet  Ljava/lang/String;
            1    9     2      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    9     3     blocks  Ljava/util/ArrayList<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            4    9     4  voidState  Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest$1VoidState;
            5    9     5    closure  Lorg/graalvm/compiler/phases/graph/ReentrantBlockIterator$BlockIteratorClosure<Lorg/graalvm/compiler/core/test/ReentrantBlockIteratorTest$1VoidState;>;
            6    9     6        cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
    Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    MethodParameters:
         Name  Flags
      snippet  
}
SourceFile: "ReentrantBlockIteratorTest.java"
NestMembers:
  org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1  org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState
InnerClasses:
  org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1
  VoidState = org.graalvm.compiler.core.test.ReentrantBlockIteratorTest$1VoidState
  public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract BlockIteratorClosure = org.graalvm.compiler.phases.graph.ReentrantBlockIterator$BlockIteratorClosure of org.graalvm.compiler.phases.graph.ReentrantBlockIterator