public class com.oracle.svm.hosted.code.CompilationInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.code.CompilationInfo
  super_class: java.lang.Object
{
  protected final com.oracle.svm.hosted.meta.HostedMethod method;
    descriptor: Lcom/oracle/svm/hosted/meta/HostedMethod;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.util.concurrent.atomic.AtomicBoolean inParseQueue;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected volatile org.graalvm.compiler.nodes.StructuredGraph graph;
    descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected boolean isTrivialMethod;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean canDeoptForTesting;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected org.graalvm.compiler.nodes.ConstantNode[] specializedArguments;
    descriptor: [Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x0004) ACC_PROTECTED

  protected com.oracle.svm.hosted.meta.HostedMethod deoptTarget;
    descriptor: Lcom/oracle/svm/hosted/meta/HostedMethod;
    flags: (0x0004) ACC_PROTECTED

  protected com.oracle.svm.hosted.meta.HostedMethod deoptOrigin;
    descriptor: Lcom/oracle/svm/hosted/meta/HostedMethod;
    flags: (0x0004) ACC_PROTECTED

  protected com.oracle.svm.hosted.code.CompileQueue$ParseFunction customParseFunction;
    descriptor: Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;
    flags: (0x0004) ACC_PROTECTED

  protected com.oracle.svm.hosted.code.CompileQueue$CompileFunction customCompileFunction;
    descriptor: Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
    flags: (0x0004) ACC_PROTECTED

  protected long numNodesBeforeCompilation;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected long numNodesAfterCompilation;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected long numDeoptEntryPoints;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected long numDuringCallEntryPoints;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  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 38
            ldc Lcom/oracle/svm/hosted/code/CompilationInfo;
            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 com.oracle.svm.hosted.code.CompilationInfo.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.svm.hosted.meta.HostedMethod);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // com.oracle.svm.hosted.meta.HostedMethod method
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield com.oracle.svm.hosted.code.CompilationInfo.inParseQueue:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 75
            aload 0 /* this */
            aload 1 /* method */
            putfield com.oracle.svm.hosted.code.CompilationInfo.method:Lcom/oracle/svm/hosted/meta/HostedMethod;
         3: .line 76
            return
        end local 1 // com.oracle.svm.hosted.meta.HostedMethod method
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    4     1  method  Lcom/oracle/svm/hosted/meta/HostedMethod;
    MethodParameters:
        Name  Flags
      method  

  public boolean isDeoptTarget();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 79
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.deoptOrigin:Lcom/oracle/svm/hosted/meta/HostedMethod;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public boolean isDeoptEntry(int, boolean, boolean);
    descriptor: (IZZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // int bci
        start local 2 // boolean duringCall
        start local 3 // boolean rethrowException
         0: .line 83
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.code.CompilationInfo.isDeoptTarget:()Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.deoptOrigin:Lcom/oracle/svm/hosted/meta/HostedMethod;
            getfield com.oracle.svm.hosted.meta.HostedMethod.compilationInfo:Lcom/oracle/svm/hosted/code/CompilationInfo;
            getfield com.oracle.svm.hosted.code.CompilationInfo.canDeoptForTesting:Z
            ifne 1
            invokestatic com.oracle.svm.hosted.code.CompilationInfoSupport.singleton:()Lcom/oracle/svm/hosted/code/CompilationInfoSupport;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.method:Lcom/oracle/svm/hosted/meta/HostedMethod;
            iload 1 /* bci */
            iload 2 /* duringCall */
            iload 3 /* rethrowException */
            invokevirtual com.oracle.svm.hosted.code.CompilationInfoSupport.isDeoptEntry:(Ljdk/vm/ci/meta/ResolvedJavaMethod;IZZ)Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 3 // boolean rethrowException
        end local 2 // boolean duringCall
        end local 1 // int bci
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    3     1               bci  I
            0    3     2        duringCall  Z
            0    3     3  rethrowException  Z
    MethodParameters:
                  Name  Flags
      bci               
      duringCall        
      rethrowException  

  public boolean canDeoptForTesting();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 87
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.canDeoptForTesting:Z
            ireturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public com.oracle.svm.hosted.meta.HostedMethod getDeoptTargetMethod();
    descriptor: ()Lcom/oracle/svm/hosted/meta/HostedMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 91
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.deoptTarget:Lcom/oracle/svm/hosted/meta/HostedMethod;
            areturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public void setDeoptTarget(com.oracle.svm.hosted.meta.HostedMethod);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // com.oracle.svm.hosted.meta.HostedMethod deoptTarget
         0: .line 95
            getstatic com.oracle.svm.hosted.code.CompilationInfo.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.deoptTarget:Lcom/oracle/svm/hosted/meta/HostedMethod;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* deoptTarget */
            putfield com.oracle.svm.hosted.code.CompilationInfo.deoptTarget:Lcom/oracle/svm/hosted/meta/HostedMethod;
         2: .line 97
            aload 1 /* deoptTarget */
            getfield com.oracle.svm.hosted.meta.HostedMethod.compilationInfo:Lcom/oracle/svm/hosted/code/CompilationInfo;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.method:Lcom/oracle/svm/hosted/meta/HostedMethod;
            putfield com.oracle.svm.hosted.code.CompilationInfo.deoptOrigin:Lcom/oracle/svm/hosted/meta/HostedMethod;
         3: .line 98
            return
        end local 1 // com.oracle.svm.hosted.meta.HostedMethod deoptTarget
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    4     1  deoptTarget  Lcom/oracle/svm/hosted/meta/HostedMethod;
    MethodParameters:
             Name  Flags
      deoptTarget  

  public void setGraph(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 101
            aload 0 /* this */
            aload 1 /* graph */
            putfield com.oracle.svm.hosted.code.CompilationInfo.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
         1: .line 102
            return
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    2     1  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
    MethodParameters:
       Name  Flags
      graph  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 105
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.hosted.code.CompilationInfo.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
         1: .line 106
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.hosted.code.CompilationInfo.specializedArguments:[Lorg/graalvm/compiler/nodes/ConstantNode;
         2: .line 107
            return
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public org.graalvm.compiler.nodes.StructuredGraph getGraph();
    descriptor: ()Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 110
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.graph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            areturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public boolean isTrivialMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 114
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.isTrivialMethod:Z
            ireturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public void setTrivialMethod(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // boolean trivial
         0: .line 118
            aload 0 /* this */
            iload 1 /* trivial */
            putfield com.oracle.svm.hosted.code.CompilationInfo.isTrivialMethod:Z
         1: .line 119
            return
        end local 1 // boolean trivial
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    2     1  trivial  Z
    MethodParameters:
         Name  Flags
      trivial  

  public void setCustomParseFunction(com.oracle.svm.hosted.code.CompileQueue$ParseFunction);
    descriptor: (Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // com.oracle.svm.hosted.code.CompileQueue$ParseFunction parseFunction
         0: .line 122
            aload 0 /* this */
            aload 1 /* parseFunction */
            putfield com.oracle.svm.hosted.code.CompilationInfo.customParseFunction:Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;
         1: .line 123
            return
        end local 1 // com.oracle.svm.hosted.code.CompileQueue$ParseFunction parseFunction
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    2     1  parseFunction  Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;
    MethodParameters:
               Name  Flags
      parseFunction  

  public com.oracle.svm.hosted.code.CompileQueue$ParseFunction getCustomParseFunction();
    descriptor: ()Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 126
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.customParseFunction:Lcom/oracle/svm/hosted/code/CompileQueue$ParseFunction;
            areturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public void setCustomCompileFunction(com.oracle.svm.hosted.code.CompileQueue$CompileFunction);
    descriptor: (Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
        start local 1 // com.oracle.svm.hosted.code.CompileQueue$CompileFunction compileFunction
         0: .line 130
            aload 0 /* this */
            aload 1 /* compileFunction */
            putfield com.oracle.svm.hosted.code.CompilationInfo.customCompileFunction:Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
         1: .line 131
            return
        end local 1 // com.oracle.svm.hosted.code.CompileQueue$CompileFunction compileFunction
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/svm/hosted/code/CompilationInfo;
            0    2     1  compileFunction  Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
    MethodParameters:
                 Name  Flags
      compileFunction  

  public com.oracle.svm.hosted.code.CompileQueue$CompileFunction getCustomCompileFunction();
    descriptor: ()Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 134
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.customCompileFunction:Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
            areturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;

  public boolean hasDefaultParseFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.CompilationInfo this
         0: .line 138
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.CompilationInfo.customCompileFunction:Lcom/oracle/svm/hosted/code/CompileQueue$CompileFunction;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.svm.hosted.code.CompilationInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/hosted/code/CompilationInfo;
}
SourceFile: "CompilationInfo.java"
InnerClasses:
  public abstract CompileFunction = com.oracle.svm.hosted.code.CompileQueue$CompileFunction of com.oracle.svm.hosted.code.CompileQueue
  public abstract ParseFunction = com.oracle.svm.hosted.code.CompileQueue$ParseFunction of com.oracle.svm.hosted.code.CompileQueue