public interface org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph<T extends org.graalvm.compiler.core.common.cfg.AbstractBlockBase<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph
  super_class: java.lang.Object
{
  public static final int BLOCK_ID_INITIAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int BLOCK_ID_VISITED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1019) ACC_PUBLIC, 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 29
            ldc Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            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.core.common.cfg.AbstractControlFlowGraph.$assertionsDisabled:Z
         3: .line 32
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public abstract T[] getBlocks();
    descriptor: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()[TT;

  public abstract java.util.Collection<org.graalvm.compiler.core.common.cfg.Loop<T>> getLoops();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Collection<Lorg/graalvm/compiler/core/common/cfg/Loop<TT;>;>;

  public abstract T getStartBlock();
    descriptor: ()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()TT;

  public static boolean isDominatedBy(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 52
            aload 0 /* a */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorNumber:()I
            istore 2 /* domNumberA */
        start local 2 // int domNumberA
         1: .line 53
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorNumber:()I
            istore 3 /* domNumberB */
        start local 3 // int domNumberB
         2: .line 54
            iload 2 /* domNumberA */
            iload 3 /* domNumberB */
            if_icmplt 3
            iload 2 /* domNumberA */
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getMaxChildDominatorNumber:()I
            if_icmpgt 3
            iconst_1
            ireturn
      StackMap locals: int int
      StackMap stack:
         3: iconst_0
            ireturn
        end local 3 // int domNumberB
        end local 2 // int domNumberA
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0           a  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    4     1           b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    4     2  domNumberA  I
            2    4     3  domNumberB  I
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
      Name  Flags
      a     
      b     

  public static boolean strictlyDominates(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 62
            aload 0 /* a */
            aload 1 /* b */
            if_acmpeq 1
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.dominates:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    2     1     b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
      Name  Flags
      a     
      b     

  public static boolean dominates(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 69
            getstatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.$assertionsDisabled:Z
            ifne 2
            aload 0 /* a */
            ifnull 1
            aload 1 /* b */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 70
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            aload 0 /* a */
            invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.isDominatedBy:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ireturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    3     1     b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
      Name  Flags
      a     
      b     

  public static org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> commonDominator(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 82
            aload 0 /* a */
            ifnonnull 2
         1: .line 83
            aload 1 /* b */
            areturn
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            ifnonnull 4
         3: .line 85
            aload 0 /* a */
            areturn
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            aload 1 /* b */
            if_acmpne 6
         5: .line 87
            aload 0 /* a */
            areturn
         6: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorDepth:()I
            istore 2 /* aDomDepth */
        start local 2 // int aDomDepth
         7: .line 90
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorDepth:()I
            istore 3 /* bDomDepth */
        start local 3 // int bDomDepth
         8: .line 93
            iload 2 /* aDomDepth */
            iload 3 /* bDomDepth */
            if_icmple 12
         9: .line 94
            aload 0 /* a */
            astore 4 /* aTemp */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase aTemp
        10: .line 95
            aload 1 /* b */
            astore 5 /* bTemp */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase bTemp
        11: .line 96
            goto 14
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase bTemp
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase aTemp
        12: .line 97
      StackMap locals: int int
      StackMap stack:
            aload 1 /* b */
            astore 4 /* aTemp */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase aTemp
        13: .line 98
            aload 0 /* a */
            astore 5 /* bTemp */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase bTemp
        14: .line 100
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 4 /* aTemp */
            aload 5 /* bTemp */
            invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.commonDominatorHelper:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            areturn
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase bTemp
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase aTemp
        end local 3 // int bDomDepth
        end local 2 // int aDomDepth
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   15     1          b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            7   15     2  aDomDepth  I
            8   15     3  bDomDepth  I
           10   12     4      aTemp  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           13   15     4      aTemp  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           11   12     5      bTemp  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           14   15     5      bTemp  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
      Name  Flags
      a     
      b     

  public static org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> commonDominatorHelper(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 105
            aload 0 /* a */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorNumber:()I
            istore 2 /* domNumberA */
        start local 2 // int domNumberA
         1: .line 106
            aload 1 /* b */
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase result
         2: .line 107
            goto 4
         3: .line 108
      StackMap locals: int org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 3 /* result */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominator:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 3 /* result */
         4: .line 107
      StackMap locals:
      StackMap stack:
            iload 2 /* domNumberA */
            aload 3 /* result */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatorNumber:()I
            if_icmplt 3
         5: .line 110
            goto 7
         6: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominator:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 3 /* result */
         7: .line 110
      StackMap locals:
      StackMap stack:
            iload 2 /* domNumberA */
            aload 3 /* result */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getMaxChildDominatorNumber:()I
            if_icmpgt 6
         8: .line 113
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase result
        end local 2 // int domNumberA
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0           a  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    9     1           b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    9     2  domNumberA  I
            2    9     3      result  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    MethodParameters:
      Name  Flags
      a     
      b     

  public static <T extends org.graalvm.compiler.core.common.cfg.AbstractBlockBase<T>> T commonDominatorTyped(T, );
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         0: .line 121
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.commonDominator:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            areturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        end local 0 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  TT;
            0    1     1     b  TT;
    Signature: <T:Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<TT;>;>(TT;TT;)TT;
    MethodParameters:
      Name  Flags
      a     
      b     
}
Signature: <T:Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<TT;>;>Ljava/lang/Object;
SourceFile: "AbstractControlFlowGraph.java"