public class jdk.tools.jaotc.AOTBackend
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.tools.jaotc.AOTBackend
  super_class: java.lang.Object
{
  private final jdk.tools.jaotc.Main main;
    descriptor: Ljdk/tools/jaotc/Main;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.HotSpotBackend backend;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotBackend;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.meta.HotSpotProviders providers;
    descriptor: Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.hotspot.HotSpotCodeCacheProvider codeCache;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.phases.PhaseSuite<org.graalvm.compiler.phases.tiers.HighTierContext> graphBuilderSuite;
    descriptor: Lorg/graalvm/compiler/phases/PhaseSuite;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;

  private final org.graalvm.compiler.phases.tiers.HighTierContext highTierContext;
    descriptor: Lorg/graalvm/compiler/phases/tiers/HighTierContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.tools.jaotc.GraalFilters filters;
    descriptor: Ljdk/tools/jaotc/GraalFilters;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(jdk.tools.jaotc.Main, org.graalvm.compiler.hotspot.HotSpotBackend, jdk.tools.jaotc.GraalFilters);
    descriptor: (Ljdk/tools/jaotc/Main;Lorg/graalvm/compiler/hotspot/HotSpotBackend;Ljdk/tools/jaotc/GraalFilters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.tools.jaotc.Main main
        start local 2 // org.graalvm.compiler.hotspot.HotSpotBackend backend
        start local 3 // jdk.tools.jaotc.GraalFilters filters
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            aload 1 /* main */
            putfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
         2: .line 76
            aload 0 /* this */
            aload 2 /* backend */
            putfield jdk.tools.jaotc.AOTBackend.backend:Lorg/graalvm/compiler/hotspot/HotSpotBackend;
         3: .line 77
            aload 0 /* this */
            aload 3 /* filters */
            putfield jdk.tools.jaotc.AOTBackend.filters:Ljdk/tools/jaotc/GraalFilters;
         4: .line 78
            aload 0 /* this */
            aload 2 /* backend */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getProviders:()Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            putfield jdk.tools.jaotc.AOTBackend.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
         5: .line 79
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            putfield jdk.tools.jaotc.AOTBackend.codeCache:Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
         6: .line 80
            aload 0 /* this */
            aload 2 /* backend */
            aload 1 /* main */
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Main$Options;
            getfield jdk.tools.jaotc.Main$Options.compileWithAssertions:Z
            invokestatic jdk.tools.jaotc.AOTBackend.initGraphBuilderSuite:(Lorg/graalvm/compiler/hotspot/HotSpotBackend;Z)Lorg/graalvm/compiler/phases/PhaseSuite;
            putfield jdk.tools.jaotc.AOTBackend.graphBuilderSuite:Lorg/graalvm/compiler/phases/PhaseSuite;
         7: .line 81
            aload 0 /* this */
            new org.graalvm.compiler.phases.tiers.HighTierContext
            dup
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.graphBuilderSuite:Lorg/graalvm/compiler/phases/PhaseSuite;
            getstatic org.graalvm.compiler.phases.OptimisticOptimizations.ALL:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
            invokespecial org.graalvm.compiler.phases.tiers.HighTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/PhaseSuite;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
            putfield jdk.tools.jaotc.AOTBackend.highTierContext:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
         8: .line 82
            return
        end local 3 // jdk.tools.jaotc.GraalFilters filters
        end local 2 // org.graalvm.compiler.hotspot.HotSpotBackend backend
        end local 1 // jdk.tools.jaotc.Main main
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljdk/tools/jaotc/AOTBackend;
            0    9     1     main  Ljdk/tools/jaotc/Main;
            0    9     2  backend  Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            0    9     3  filters  Ljdk/tools/jaotc/GraalFilters;
    MethodParameters:
         Name  Flags
      main     
      backend  
      filters  

  public org.graalvm.compiler.phases.PhaseSuite<org.graalvm.compiler.phases.tiers.HighTierContext> getGraphBuilderSuite();
    descriptor: ()Lorg/graalvm/compiler/phases/PhaseSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jaotc.AOTBackend this
         0: .line 85
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.graphBuilderSuite:Lorg/graalvm/compiler/phases/PhaseSuite;
            areturn
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jaotc/AOTBackend;
    Signature: ()Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;

  private org.graalvm.compiler.phases.tiers.Suites getSuites();
    descriptor: ()Lorg/graalvm/compiler/phases/tiers/Suites;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jaotc.AOTBackend this
         0: .line 90
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.backend:Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getSuites:()Lorg/graalvm/compiler/phases/tiers/SuitesProvider;
            invokeinterface org.graalvm.compiler.phases.tiers.SuitesProvider.getDefaultSuites:()Lorg/graalvm/compiler/phases/tiers/Suites;
            areturn
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jaotc/AOTBackend;

  private org.graalvm.compiler.lir.phases.LIRSuites getLirSuites();
    descriptor: ()Lorg/graalvm/compiler/lir/phases/LIRSuites;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jaotc.AOTBackend this
         0: .line 95
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.backend:Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getSuites:()Lorg/graalvm/compiler/phases/tiers/SuitesProvider;
            invokeinterface org.graalvm.compiler.phases.tiers.SuitesProvider.getDefaultLIRSuites:()Lorg/graalvm/compiler/lir/phases/LIRSuites;
            areturn
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jaotc/AOTBackend;

  public org.graalvm.compiler.code.CompilationResult compileMethod(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/code/CompilationResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
         0: .line 100
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic org.graalvm.compiler.core.common.GraalOptions.ImmutableCode:Lorg/graalvm/compiler/options/OptionValue;
            aastore
            dup
            iconst_1
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_2
            getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
            aastore
            dup
            iconst_3
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokestatic org.graalvm.compiler.options.OptionValue.override:([Ljava/lang/Object;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 4 /* s */
        start local 4 // org.graalvm.compiler.options.OptionValue$OverrideScope s
         2: .line 101
            aload 0 /* this */
            aload 1 /* resolvedMethod */
            invokevirtual jdk.tools.jaotc.AOTBackend.buildStructuredGraph:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 5 /* graph */
        start local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 102
            aload 5 /* graph */
            ifnull 7
         4: .line 103
            aload 0 /* this */
            aload 1 /* resolvedMethod */
            aload 5 /* graph */
            invokevirtual jdk.tools.jaotc.AOTBackend.compileGraph:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/code/CompilationResult;
         5: .line 106
            aload 4 /* s */
            ifnull 6
            aload 4 /* s */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.close:()V
         6: .line 103
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Throwable java.lang.Throwable org.graalvm.compiler.options.OptionValue$OverrideScope org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: org.graalvm.compiler.code.CompilationResult
            areturn
         7: .line 106
      StackMap locals:
      StackMap stack:
            aload 4 /* s */
            ifnull 8
            aload 4 /* s */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.close:()V
         8: .line 105
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Throwable java.lang.Throwable org.graalvm.compiler.options.OptionValue$OverrideScope
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 106
            aload 4 /* s */
            ifnull 11
            aload 4 /* s */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.close:()V
        end local 4 // org.graalvm.compiler.options.OptionValue$OverrideScope s
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 3
            aload 2
            ifnonnull 13
            aload 3
            astore 2
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 2
            aload 3
            if_acmpeq 14
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Ljdk/tools/jaotc/AOTBackend;
            0   15     1  resolvedMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2   11     4               s  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            3    9     5           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
      Exception table:
        from    to  target  type
           2     5       9  any
           1     6      12  any
           7     8      12  any
           9    12      12  any
    MethodParameters:
                Name  Flags
      resolvedMethod  

  private org.graalvm.compiler.nodes.StructuredGraph buildStructuredGraph(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod javaMethod
         0: .line 117
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: ldc "AOTParseMethod"
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 4 /* s */
        start local 4 // org.graalvm.compiler.debug.Debug$Scope s
         2: .line 118
            new org.graalvm.compiler.nodes.StructuredGraph
            dup
            aload 1 /* javaMethod */
            getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.NO:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
            iconst_0
            getstatic org.graalvm.compiler.core.common.CompilationIdentifier.INVALID_COMPILATION_ID:Lorg/graalvm/compiler/core/common/CompilationRequestIdentifier;
            invokespecial org.graalvm.compiler.nodes.StructuredGraph.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;ZLorg/graalvm/compiler/core/common/CompilationIdentifier;)V
            astore 5 /* graph */
        start local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 119
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.graphBuilderSuite:Lorg/graalvm/compiler/phases/PhaseSuite;
            aload 5 /* graph */
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.highTierContext:Lorg/graalvm/compiler/phases/tiers/HighTierContext;
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
         4: .line 120
            aload 5 /* graph */
         5: .line 121
            aload 4 /* s */
            ifnull 6
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
         6: .line 120
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
            areturn
        end local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 121
            aload 4 /* s */
            ifnull 9
            aload 4 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 4 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
         9: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 2
            ifnonnull 11
            aload 3
            astore 2
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 2
            aload 3
            if_acmpeq 12
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack: java.lang.Throwable
        13: astore 2 /* e */
        start local 2 // java.lang.Throwable e
        14: .line 122
            aload 0 /* this */
            aload 1 /* javaMethod */
            aload 2 /* e */
            ldc " (building graph)"
            invokevirtual jdk.tools.jaotc.AOTBackend.handleError:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 2 // java.lang.Throwable e
        15: .line 124
            aconst_null
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod javaMethod
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljdk/tools/jaotc/AOTBackend;
            0   16     1  javaMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2    9     4           s  Lorg/graalvm/compiler/debug/Debug$Scope;
            3    7     5       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           14   15     2           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     5       7  any
           1     6      10  any
           7    10      10  any
           0     6      13  Class java.lang.Throwable
           7    13      13  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      javaMethod  

  private org.graalvm.compiler.code.CompilationResult compileGraph(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/code/CompilationResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=8, args_size=3
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 129
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: ldc "AOTCompileMethod"
            invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
            astore 5 /* s */
        start local 5 // org.graalvm.compiler.debug.Debug$Scope s
         2: .line 130
            getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
            invokestatic jdk.vm.ci.meta.DefaultProfilingInfo.get:(Ljdk/vm/ci/meta/TriState;)Ljdk/vm/ci/meta/ProfilingInfo;
            astore 6 /* profilingInfo */
        start local 6 // jdk.vm.ci.meta.ProfilingInfo profilingInfo
         3: .line 133
            new org.graalvm.compiler.code.CompilationResult
            dup
            aload 1 /* resolvedMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            iconst_1
            invokespecial org.graalvm.compiler.code.CompilationResult.<init>:(Ljava/lang/String;Z)V
            astore 7 /* compilationResult */
        start local 7 // org.graalvm.compiler.code.CompilationResult compilationResult
         4: .line 135
            aload 2 /* graph */
            aload 1 /* resolvedMethod */
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.backend:Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.graphBuilderSuite:Lorg/graalvm/compiler/phases/PhaseSuite;
            getstatic org.graalvm.compiler.phases.OptimisticOptimizations.ALL:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
            aload 6 /* profilingInfo */
            aload 0 /* this */
            invokevirtual jdk.tools.jaotc.AOTBackend.getSuites:()Lorg/graalvm/compiler/phases/tiers/Suites;
            aload 0 /* this */
            invokevirtual jdk.tools.jaotc.AOTBackend.getLirSuites:()Lorg/graalvm/compiler/lir/phases/LIRSuites;
         5: .line 136
            aload 7 /* compilationResult */
            getstatic org.graalvm.compiler.lir.asm.CompilationResultBuilderFactory.Default:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilderFactory;
         6: .line 135
            invokestatic org.graalvm.compiler.core.GraalCompiler.compileGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/core/target/Backend;Lorg/graalvm/compiler/phases/PhaseSuite;Lorg/graalvm/compiler/phases/OptimisticOptimizations;Ljdk/vm/ci/meta/ProfilingInfo;Lorg/graalvm/compiler/phases/tiers/Suites;Lorg/graalvm/compiler/lir/phases/LIRSuites;Lorg/graalvm/compiler/code/CompilationResult;Lorg/graalvm/compiler/lir/asm/CompilationResultBuilderFactory;)Lorg/graalvm/compiler/code/CompilationResult;
         7: .line 138
            aload 5 /* s */
            ifnull 8
            aload 5 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
         8: .line 135
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope jdk.vm.ci.meta.ProfilingInfo org.graalvm.compiler.code.CompilationResult
      StackMap stack: org.graalvm.compiler.code.CompilationResult
            areturn
        end local 7 // org.graalvm.compiler.code.CompilationResult compilationResult
        end local 6 // jdk.vm.ci.meta.ProfilingInfo profilingInfo
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
      StackMap stack: java.lang.Throwable
         9: astore 3
        10: .line 138
            aload 5 /* s */
            ifnull 11
            aload 5 /* s */
            invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
        end local 5 // org.graalvm.compiler.debug.Debug$Scope s
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
      StackMap locals: jdk.tools.jaotc.AOTBackend jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: java.lang.Throwable
        15: astore 3 /* e */
        start local 3 // java.lang.Throwable e
        16: .line 139
            aload 0 /* this */
            aload 1 /* resolvedMethod */
            aload 3 /* e */
            ldc " (compiling graph)"
            invokevirtual jdk.tools.jaotc.AOTBackend.handleError:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 3 // java.lang.Throwable e
        17: .line 141
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               this  Ljdk/tools/jaotc/AOTBackend;
            0   18     1     resolvedMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   18     2              graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   11     5                  s  Lorg/graalvm/compiler/debug/Debug$Scope;
            3    9     6      profilingInfo  Ljdk/vm/ci/meta/ProfilingInfo;
            4    9     7  compilationResult  Lorg/graalvm/compiler/code/CompilationResult;
           16   17     3                  e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     7       9  any
           1     8      12  any
           9    12      12  any
           0     8      15  Class java.lang.Throwable
           9    15      15  Class java.lang.Throwable
    MethodParameters:
                Name  Flags
      resolvedMethod  
      graph           

  public boolean isDebugVM();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jaotc.AOTBackend this
         0: .line 150
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.backend:Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.cAssertions:Z
            ireturn
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jaotc/AOTBackend;

  private static org.graalvm.compiler.phases.PhaseSuite<org.graalvm.compiler.phases.tiers.HighTierContext> initGraphBuilderSuite(org.graalvm.compiler.hotspot.HotSpotBackend, boolean);
    descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotBackend;Z)Lorg/graalvm/compiler/phases/PhaseSuite;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.HotSpotBackend backend
        start local 1 // boolean compileWithAssertions
         0: .line 154
            aload 0 /* backend */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getSuites:()Lorg/graalvm/compiler/phases/tiers/SuitesProvider;
            invokeinterface org.graalvm.compiler.phases.tiers.SuitesProvider.getDefaultGraphBuilderSuite:()Lorg/graalvm/compiler/phases/PhaseSuite;
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.copy:()Lorg/graalvm/compiler/phases/PhaseSuite;
            astore 2 /* graphBuilderSuite */
        start local 2 // org.graalvm.compiler.phases.PhaseSuite graphBuilderSuite
         1: .line 155
            aload 2 /* graphBuilderSuite */
            ldc Lorg/graalvm/compiler/java/GraphBuilderPhase;
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.findPhase:(Ljava/lang/Class;)Ljava/util/ListIterator;
            astore 3 /* iterator */
        start local 3 // java.util.ListIterator iterator
         2: .line 156
            aload 3 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.java.GraphBuilderPhase
            invokevirtual org.graalvm.compiler.java.GraphBuilderPhase.getGraphBuilderConfig:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            astore 4 /* baseConfig */
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration baseConfig
         3: .line 159
            aload 4 /* baseConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            astore 5 /* plugins */
        start local 5 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
         4: .line 160
            aload 5 /* plugins */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withEagerResolving:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            iload 1 /* compileWithAssertions */
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: org.graalvm.compiler.hotspot.HotSpotBackend int org.graalvm.compiler.phases.PhaseSuite java.util.ListIterator org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
      StackMap stack: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
         5: iconst_1
      StackMap locals: org.graalvm.compiler.hotspot.HotSpotBackend int org.graalvm.compiler.phases.PhaseSuite java.util.ListIterator org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
      StackMap stack: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration int
         6: invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withOmitAssertions:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            astore 6 /* aotConfig */
        start local 6 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration aotConfig
         7: .line 162
            aload 3 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
         8: .line 163
            aload 3 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
         9: .line 164
            aload 3 /* iterator */
            new org.graalvm.compiler.java.GraphBuilderPhase
            dup
            aload 6 /* aotConfig */
            invokespecial org.graalvm.compiler.java.GraphBuilderPhase.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        10: .line 166
            aload 2 /* graphBuilderSuite */
            areturn
        end local 6 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration aotConfig
        end local 5 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration baseConfig
        end local 3 // java.util.ListIterator iterator
        end local 2 // org.graalvm.compiler.phases.PhaseSuite graphBuilderSuite
        end local 1 // boolean compileWithAssertions
        end local 0 // org.graalvm.compiler.hotspot.HotSpotBackend backend
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                backend  Lorg/graalvm/compiler/hotspot/HotSpotBackend;
            0   11     1  compileWithAssertions  Z
            1   11     2      graphBuilderSuite  Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;
            2   11     3               iterator  Ljava/util/ListIterator<Lorg/graalvm/compiler/phases/BasePhase<-Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;>;
            3   11     4             baseConfig  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            4   11     5                plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            7   11     6              aotConfig  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
    Signature: (Lorg/graalvm/compiler/hotspot/HotSpotBackend;Z)Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;
    MethodParameters:
                       Name  Flags
      backend                
      compileWithAssertions  

  private void handleError(jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Throwable, java.lang.String);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Throwable;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
        start local 2 // java.lang.Throwable e
        start local 3 // java.lang.String message
         0: .line 170
            aload 1 /* resolvedMethod */
            invokestatic jdk.tools.jaotc.MiscUtils.uniqueMethodName:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
            astore 4 /* methodName */
        start local 4 // java.lang.String methodName
         1: .line 172
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Main$Options;
            getfield jdk.tools.jaotc.Main$Options.debug:Z
            ifeq 3
         2: .line 173
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            new java.lang.StringBuilder
            dup
            ldc "Failed compilation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.Main.printError:(Ljava/lang/String;)V
         3: .line 177
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.filters:Ljdk/tools/jaotc/GraalFilters;
            aload 2 /* e */
            invokevirtual jdk.tools.jaotc.GraalFilters.shouldIgnoreException:(Ljava/lang/Throwable;)Z
            ifeq 5
         4: .line 178
            return
         5: .line 181
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Failed compilation of method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.tools.jaotc.Main.writeLog:(Ljava/lang/String;)V
         6: .line 183
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Main$Options;
            getfield jdk.tools.jaotc.Main$Options.debug:Z
            ifne 8
         7: .line 184
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            new java.lang.StringBuilder
            dup
            ldc "Failed compilation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.Main.printError:(Ljava/lang/String;)V
         8: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Main$Options;
            getfield jdk.tools.jaotc.Main$Options.verbose:Z
            ifeq 10
         9: .line 188
            aload 2 /* e */
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.log:Ljava/io/PrintWriter;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
        10: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Main$Options;
            getfield jdk.tools.jaotc.Main$Options.exitOnError:Z
            ifeq 12
        11: .line 192
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        12: .line 194
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String message
        end local 2 // java.lang.Throwable e
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod resolvedMethod
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Ljdk/tools/jaotc/AOTBackend;
            0   13     1  resolvedMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   13     2               e  Ljava/lang/Throwable;
            0   13     3         message  Ljava/lang/String;
            1   13     4      methodName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      resolvedMethod  
      e               
      message         

  public void printCompiledMethod(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod, org.graalvm.compiler.code.CompilationResult);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.tools.jaotc.AOTBackend this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod resolvedMethod
        start local 2 // org.graalvm.compiler.code.CompilationResult compResult
         0: .line 198
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.codeCache:Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            aload 1 /* resolvedMethod */
            aconst_null
            aconst_null
            aload 2 /* compResult */
            invokestatic org.graalvm.compiler.hotspot.HotSpotCompiledCodeBuilder.createCompiledCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/hotspot/HotSpotCompilationRequest;Lorg/graalvm/compiler/code/CompilationResult;)Ljdk/vm/ci/hotspot/HotSpotCompiledCode;
            aconst_null
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotCodeCacheProvider.addCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/code/CompiledCode;Ljdk/vm/ci/meta/SpeculationLog;Ljdk/vm/ci/code/InstalledCode;)Ljdk/vm/ci/code/InstalledCode;
            astore 3 /* installedCode */
        start local 3 // jdk.vm.ci.code.InstalledCode installedCode
         1: .line 199
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.codeCache:Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            aload 3 /* installedCode */
            invokevirtual jdk.vm.ci.hotspot.HotSpotCodeCacheProvider.disassemble:(Ljdk/vm/ci/code/InstalledCode;)Ljava/lang/String;
            astore 4 /* disassembly */
        start local 4 // java.lang.String disassembly
         2: .line 200
            aload 4 /* disassembly */
            ifnull 4
         3: .line 201
            aload 0 /* this */
            getfield jdk.tools.jaotc.AOTBackend.main:Ljdk/tools/jaotc/Main;
            aload 4 /* disassembly */
            invokevirtual jdk.tools.jaotc.Main.printlnDebug:(Ljava/lang/String;)V
         4: .line 203
      StackMap locals: jdk.vm.ci.code.InstalledCode java.lang.String
      StackMap stack:
            return
        end local 4 // java.lang.String disassembly
        end local 3 // jdk.vm.ci.code.InstalledCode installedCode
        end local 2 // org.graalvm.compiler.code.CompilationResult compResult
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod resolvedMethod
        end local 0 // jdk.tools.jaotc.AOTBackend this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljdk/tools/jaotc/AOTBackend;
            0    5     1  resolvedMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;
            0    5     2      compResult  Lorg/graalvm/compiler/code/CompilationResult;
            1    5     3   installedCode  Ljdk/vm/ci/code/InstalledCode;
            2    5     4     disassembly  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      resolvedMethod  
      compResult      
}
SourceFile: "AOTBackend.java"
InnerClasses:
  public Options = jdk.tools.jaotc.Main$Options of jdk.tools.jaotc.Main
  public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
  public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public abstract OverrideScope = org.graalvm.compiler.options.OptionValue$OverrideScope of org.graalvm.compiler.options.OptionValue