public class org.graalvm.compiler.core.test.NestedLoopTest 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.NestedLoopTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  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.NestedLoopTest this
         0: .line 39
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;

  public void test1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
         0: .line 41
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void test2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
         0: .line 46
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void test3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
         0: .line 51
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void test4();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
         0: .line 56
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public static void test1Snippet(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int a
         0: .line 63
            goto 5
         1: .line 66
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.d:()Z
            ifeq 3
         2: .line 67
            goto 5
         3: .line 65
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.c:()Z
            ifne 1
         4: .line 64
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.b:()Z
            ifne 3
         5: .line 63
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.a:()Z
            ifne 4
         6: .line 72
            return
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     a  I
    MethodParameters:
      Name  Flags
      a     

  public static void test2Snippet(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int a
         0: .line 76
            goto 7
         1: .line 80
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.d:()Z
            ifeq 3
         2: .line 81
            goto 7
         3: .line 79
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.c:()Z
            ifne 1
         4: .line 78
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.b:()Z
            ifne 3
         5: .line 85
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: pop
         7: .line 76
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.a:()Z
            ifne 4
         8: .line 88
            return
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0     a  I
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      a     

  public static void test3Snippet(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int a
         0: .line 92
            goto 8
         1: .line 96
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.d:()Z
            ifeq 4
         2: .line 97
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.a:()Z
            pop
         3: .line 98
            goto 8
         4: .line 95
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.c:()Z
            ifne 1
         5: .line 94
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.b:()Z
            ifne 4
         6: .line 102
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: pop
         8: .line 92
      StackMap locals:
      StackMap stack:
            iload 0 /* a */
            ifeq 5
         9: .line 105
            return
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     a  I
      Exception table:
        from    to  target  type
           1     6       7  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      a     

  public static void test4Snippet(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int a
         0: .line 108
            goto 12
         1: .line 111
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.b:()Z
            pop
         2: .line 112
            goto 5
         3: .line 113
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.d:()Z
            ifeq 5
         4: .line 114
            goto 12
         5: .line 112
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.c:()Z
            ifne 3
         6: .line 117
            iload 0 /* a */
            iconst_2
            if_icmpeq 9
         7: .line 118
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.a:()Z
            pop
         8: .line 119
            new java.lang.Exception
            dup
            invokespecial java.lang.Exception.<init>:()V
            athrow
         9: .line 110
      StackMap locals:
      StackMap stack:
            iload 0 /* a */
            ifne 1
        10: .line 122
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: pop
        12: .line 108
      StackMap locals:
      StackMap stack:
            iload 0 /* a */
            ifne 9
        13: .line 125
            return
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  I
      Exception table:
        from    to  target  type
           1    10      11  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      a     

  private static native boolean a();
    descriptor: ()Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native boolean b();
    descriptor: ()Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native boolean c();
    descriptor: ()Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native boolean d();
    descriptor: ()Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static org.graalvm.compiler.nodes.Invoke getInvoke(java.lang.String, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Ljava/lang/String;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/Invoke;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String name
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 136
            aload 1 /* graph */
            getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.String org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 2 /* callTarget */
        start local 2 // org.graalvm.compiler.nodes.java.MethodCallTargetNode callTarget
         2: .line 137
            aload 2 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 138
            aload 2 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            areturn
        end local 2 // org.graalvm.compiler.nodes.java.MethodCallTargetNode callTarget
         4: .line 136
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 141
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        name  Ljava/lang/String;
            0    6     1       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    4     2  callTarget  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
    MethodParameters:
       Name  Flags
      name   
      graph  

  private void test(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
         0: .line 150
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n\tAssert cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.NestedLoopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/NestedLoopTest;
    MethodParameters:
             Name  Flags
      snippet      
      rootExits    
      nestedExits  
      innerExits   

  private static boolean contains(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.nodes.Invoke, org.graalvm.compiler.nodes.cfg.ControlFlowGraph);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 172
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tAssert cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
    MethodParameters:
      Name  Flags
      loop  
      node  
      cfg   

  private static boolean containsDirect(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.nodes.Invoke, org.graalvm.compiler.nodes.cfg.ControlFlowGraph);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.core.common.cfg.Loop loop
        start local 1 // org.graalvm.compiler.nodes.Invoke node
        start local 2 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         0: .line 177
            aload 0 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.nodes.Invoke org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.Loop
            astore 3 /* child */
        start local 3 // org.graalvm.compiler.core.common.cfg.Loop child
         2: .line 178
            aload 3 /* child */
            aload 1 /* node */
            aload 2 /* cfg */
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.contains:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
            ifeq 4
         3: .line 179
            iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.core.common.cfg.Loop child
         4: .line 177
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 182
            aload 0 /* loop */
            aload 1 /* node */
            aload 2 /* cfg */
            invokestatic org.graalvm.compiler.core.test.NestedLoopTest.contains:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 1 // org.graalvm.compiler.nodes.Invoke node
        end local 0 // org.graalvm.compiler.core.common.cfg.Loop loop
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0    6     1   node  Lorg/graalvm/compiler/nodes/Invoke;
            0    6     2    cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            2    4     3  child  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)Z
    MethodParameters:
      Name  Flags
      loop  
      node  
      cfg   
}
SourceFile: "NestedLoopTest.java"