public final class com.oracle.svm.truffle.api.SubstrateTruffleRuntime extends org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.truffle.api.SubstrateTruffleRuntime
  super_class: org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime
{
  private static final int DEBUG_TEAR_DOWN_TIMEOUT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2000

  private static final int PRODUCTION_TEAR_DOWN_TIMEOUT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$CallMethods hostedCallMethods;
    descriptor: Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
    flags: (0x0002) ACC_PRIVATE

  private volatile org.graalvm.compiler.truffle.runtime.BackgroundCompileQueue compileQueue;
    descriptor: Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean initialized;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.lang.Boolean profilingEnabled;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$utilities$TriState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 93
            ldc Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            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.truffle.api.SubstrateTruffleRuntime.$assertionsDisabled:Z
         3: .line 96
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 105
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.<init>:(Ljava/lang/Iterable;)V
         1: .line 107
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getLoopNodeFactory:()Lorg/graalvm/compiler/truffle/runtime/LoopNodeFactory;
            pop
         2: .line 108
            return
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  public org.graalvm.compiler.truffle.runtime.BackgroundCompileQueue getCompileQueue();
    descriptor: ()Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 112
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.compileQueue:Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public void resetHosted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 117
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
         1: .line 118
            return
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  private void initializeAtRuntime(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         0: .line 121
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getOptionsForCompiler:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/util/Map;
            aload 1 /* callTarget */
            iconst_1
            invokeinterface org.graalvm.compiler.truffle.common.TruffleCompiler.initialize:(Ljava/util/Map;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Z)V
         1: .line 122
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleOptions.isMultiThreaded:()Z
            ifeq 3
         2: .line 123
            aload 0 /* this */
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.createBackgroundCompileQueue:(Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;)Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.compileQueue:Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
         3: .line 125
      StackMap locals:
      StackMap stack:
            aload 1 /* callTarget */
            getfield org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.engine:Lorg/graalvm/compiler/truffle/runtime/EngineData;
            getfield org.graalvm.compiler.truffle.runtime.EngineData.traceTransferToInterpreter:Z
            ifeq 7
         4: .line 126
            getstatic com.oracle.svm.core.SubstrateOptions.IncludeNodeSourcePositions:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 6
         5: .line 127
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "Warning: TraceTruffleTransferToInterpreter cannot print stack traces. Build image with -H:+IncludeNodeSourcePositions to enable stack traces."
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         6: .line 129
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.option.RuntimeOptionValues.singleton:()Lcom/oracle/svm/core/option/RuntimeOptionValues;
            getstatic com.oracle.svm.core.deopt.Deoptimizer$Options.TraceDeoptimization:Lcom/oracle/svm/core/option/RuntimeOptionKey;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.oracle.svm.core.option.RuntimeOptionValues.update:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;)V
         7: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.installDefaultListeners:()V
         8: .line 132
            invokestatic com.oracle.svm.core.jdk.RuntimeSupport.getRuntimeSupport:()Lcom/oracle/svm/core/jdk/RuntimeSupport;
            aload 0 /* this */
            invokedynamic run(Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  com/oracle/svm/truffle/api/SubstrateTruffleRuntime.teardown()V (7)
                  ()V
            invokevirtual com.oracle.svm.core.jdk.RuntimeSupport.addTearDownHook:(Ljava/lang/Runnable;)V
         9: .line 133
            return
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0   10     1  callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
    MethodParameters:
            Name  Flags
      callTarget  

  private void teardown();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 136
            invokestatic com.oracle.svm.core.SubstrateUtil.assertionsEnabled:()Z
            ifeq 1
            sipush 2000
            goto 2
      StackMap locals:
      StackMap stack:
         1: sipush 10000
      StackMap locals:
      StackMap stack: int
         2: i2l
            lstore 1 /* timeout */
        start local 1 // long timeout
         3: .line 137
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getCompileQueue:()Lorg/graalvm/compiler/truffle/runtime/BackgroundCompileQueue;
            lload 1 /* timeout */
            invokevirtual org.graalvm.compiler.truffle.runtime.BackgroundCompileQueue.shutdownAndAwaitTermination:(J)V
         4: .line 139
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            astore 3 /* tcp */
        start local 3 // org.graalvm.compiler.truffle.common.TruffleCompiler tcp
         5: .line 140
            aload 3 /* tcp */
            ifnull 7
         6: .line 141
            aload 3 /* tcp */
            checkcast com.oracle.svm.truffle.api.SubstrateTruffleCompiler
            invokeinterface com.oracle.svm.truffle.api.SubstrateTruffleCompiler.teardown:()V
         7: .line 143
      StackMap locals: long org.graalvm.compiler.truffle.common.TruffleCompiler
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.truffle.common.TruffleCompiler tcp
        end local 1 // long timeout
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            3    8     1  timeout  J
            5    8     3      tcp  Lorg/graalvm/compiler/truffle/common/TruffleCompiler;

  public com.oracle.svm.truffle.api.SubstrateTruffleCompiler initTruffleCompiler();
    descriptor: ()Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 147
            getstatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "Cannot re-initialize Substrate TruffleCompiler"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.newTruffleCompiler:()Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
            astore 1 /* compiler */
        start local 1 // com.oracle.svm.truffle.api.SubstrateTruffleCompiler compiler
         2: .line 149
            aload 0 /* this */
            aload 1 /* compiler */
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
         3: .line 150
            aload 1 /* compiler */
            areturn
        end local 1 // com.oracle.svm.truffle.api.SubstrateTruffleCompiler compiler
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            2    4     1  compiler  Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  public jdk.vm.ci.meta.ResolvedJavaMethod[] getAnyFrameMethod();
    descriptor: ()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.callMethods:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
            getfield org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$CallMethods.anyFrameMethod:[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  protected java.lang.String getCompilerConfigurationName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 159
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            astore 1 /* compiler */
        start local 1 // org.graalvm.compiler.truffle.common.TruffleCompiler compiler
         1: .line 160
            aload 1 /* compiler */
            ifnull 3
         2: .line 161
            aload 1 /* compiler */
            invokeinterface org.graalvm.compiler.truffle.common.TruffleCompiler.getCompilerConfigurationName:()Ljava/lang/String;
            areturn
         3: .line 163
      StackMap locals: org.graalvm.compiler.truffle.common.TruffleCompiler
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.truffle.common.TruffleCompiler compiler
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            1    4     1  compiler  Lorg/graalvm/compiler/truffle/common/TruffleCompiler;

  public com.oracle.svm.truffle.api.SubstrateTruffleCompiler newTruffleCompiler();
    descriptor: ()Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 169
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.createTruffleCompiler:(Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;)Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  public com.oracle.svm.truffle.api.SubstrateTruffleCompiler getTruffleCompiler(org.graalvm.compiler.truffle.common.CompilableTruffleAST);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
         0: .line 174
            aload 1 /* compilable */
            ldc "Compilable must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 175
            aload 0 /* this */
            aload 1 /* compilable */
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.ensureInitializedAtRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
         2: .line 176
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.truffleCompiler:Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            checkcast com.oracle.svm.truffle.api.SubstrateTruffleCompiler
            areturn
        end local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    3     1  compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
    MethodParameters:
            Name  Flags
      compilable  

  public void lookupCallMethods(jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 182
            aload 0 /* this */
            aload 1 /* metaAccess */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.lookupCallMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
         1: .line 183
            aload 0 /* this */
            invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$CallMethods.lookup:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.hostedCallMethods:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
         2: .line 184
            return
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    3     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
    MethodParameters:
            Name  Flags
      metaAccess  

  protected void clearState();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 189
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.clearState:()V
         1: .line 190
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.hostedCallMethods:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
         2: .line 191
            return
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  protected org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$CallMethods getCallMethods();
    descriptor: ()Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 195
            getstatic com.oracle.svm.core.SubstrateUtil.HOSTED:Z
            ifeq 2
         1: .line 196
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.hostedCallMethods:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
            areturn
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.callMethods:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime$CallMethods;
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public org.graalvm.compiler.truffle.runtime.OptimizedCallTarget createOptimizedCallTarget(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget, com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget source
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
         0: .line 204
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 205
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.profilingEnabled:Ljava/lang/Boolean;
            ifnonnull 3
         2: .line 206
            aload 0 /* this */
            aload 2 /* rootNode */
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getEngineData:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/EngineData;
            getfield org.graalvm.compiler.truffle.runtime.EngineData.profilingEnabled:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.profilingEnabled:Ljava/lang/Boolean;
         3: .line 208
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 1 /* source */
            aload 2 /* rootNode */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.createOptimizedCallTarget:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
            astore 3 /* callTarget */
        start local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         4: .line 209
            aload 0 /* this */
            aload 3 /* callTarget */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.ensureInitializedAtRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
         5: .line 210
            aload 3 /* callTarget */
            areturn
        end local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget source
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    6     1      source  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            0    6     2    rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            4    6     3  callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
    MethodParameters:
          Name  Flags
      source    
      rootNode  

  private void ensureInitializedAtRuntime(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
         0: .line 214
            getstatic com.oracle.svm.core.SubstrateUtil.HOSTED:Z
            ifne 9
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.initialized:Z
            ifne 9
         1: .line 216
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 217
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.initialized:Z
            ifne 5
         3: .line 218
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.initializeAtRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
         4: .line 219
            aload 0 /* this */
            iconst_1
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.initialized:Z
         5: .line 216
      StackMap locals: com.oracle.svm.truffle.api.SubstrateTruffleRuntime
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget callTarget
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0   10     1  callTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    MethodParameters:
            Name  Flags
      callTarget  

  public jdk.vm.ci.meta.SpeculationLog createSpeculationLog();
    descriptor: ()Ljdk/vm/ci/meta/SpeculationLog;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 228
            new com.oracle.svm.core.deopt.SubstrateSpeculationLog
            dup
            invokespecial com.oracle.svm.core.deopt.SubstrateSpeculationLog.<init>:()V
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public void notifyTransferToInterpreter();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 233
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 238
            return
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public boolean isProfilingEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 242
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.profilingEnabled:Ljava/lang/Boolean;
            ifnonnull 2
         1: .line 243
            aload 0 /* this */
            aconst_null
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getEngineData:(Lcom/oracle/truffle/api/nodes/RootNode;)Lorg/graalvm/compiler/truffle/runtime/EngineData;
            getfield org.graalvm.compiler.truffle.runtime.EngineData.profilingEnabled:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.profilingEnabled:Ljava/lang/Boolean;
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.api.SubstrateTruffleRuntime.profilingEnabled:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public org.graalvm.compiler.truffle.runtime.CompilationTask submitForCompilation(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget, boolean);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Z)Lorg/graalvm/compiler/truffle/runtime/CompilationTask;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        start local 2 // boolean lastTierCompilation
         0: .line 250
            getstatic com.oracle.svm.core.SubstrateUtil.HOSTED:Z
            ifeq 2
         1: .line 258
            aconst_null
            areturn
         2: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* optimizedCallTarget */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.ensureInitializedAtRuntime:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
         3: .line 267
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleOptions.isMultiThreaded:()Z
            ifeq 5
         4: .line 268
            aload 0 /* this */
            aload 1 /* optimizedCallTarget */
            iload 2 /* lastTierCompilation */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.submitForCompilation:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Z)Lorg/graalvm/compiler/truffle/runtime/CompilationTask;
            areturn
         5: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* optimizedCallTarget */
            aconst_null
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.doCompile:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Lorg/graalvm/compiler/truffle/common/TruffleCompilationTask;)V
         6: .line 274
            goto 12
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.OptimizationFailedException
         7: astore 3 /* e */
        start local 3 // com.oracle.truffle.api.OptimizationFailedException e
         8: .line 275
            aload 1 /* optimizedCallTarget */
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationExceptionsArePrinted:Lorg/graalvm/options/OptionKey;
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 10
         9: .line 276
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.printStackTraceToString:(Ljava/lang/Throwable;)Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        10: .line 278
      StackMap locals: com.oracle.truffle.api.OptimizationFailedException
      StackMap stack:
            getstatic com.oracle.svm.truffle.api.SubstrateTruffleOptions.TrufflePropagateCompilationErrors:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 12
        11: .line 279
            aload 3 /* e */
            athrow
        end local 3 // com.oracle.truffle.api.OptimizationFailedException e
        12: .line 283
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean lastTierCompilation
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0   13     1  optimizedCallTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            0   13     2  lastTierCompilation  Z
            8   12     3                    e  Lcom/oracle/truffle/api/OptimizationFailedException;
      Exception table:
        from    to  target  type
           5     6       7  Class com.oracle.truffle.api.OptimizationFailedException
    MethodParameters:
                     Name  Flags
      optimizedCallTarget  
      lastTierCompilation  

  public void finishCompilation(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget, org.graalvm.compiler.truffle.runtime.CompilationTask, boolean);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Lorg/graalvm/compiler/truffle/runtime/CompilationTask;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        start local 2 // org.graalvm.compiler.truffle.runtime.CompilationTask task
        start local 3 // boolean mayBeAsynchronous
         0: .line 288
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleOptions.isMultiThreaded:()Z
            ifeq 2
         1: .line 289
            aload 0 /* this */
            aload 1 /* optimizedCallTarget */
            aload 2 /* task */
            iload 3 /* mayBeAsynchronous */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.finishCompilation:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Lorg/graalvm/compiler/truffle/runtime/CompilationTask;Z)V
         2: .line 291
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean mayBeAsynchronous
        end local 2 // org.graalvm.compiler.truffle.runtime.CompilationTask task
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    3     1  optimizedCallTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            0    3     2                 task  Lorg/graalvm/compiler/truffle/runtime/CompilationTask;
            0    3     3    mayBeAsynchronous  Z
    MethodParameters:
                     Name  Flags
      optimizedCallTarget  
      task                 
      mayBeAsynchronous    

  public void waitForCompilation(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget, long);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        start local 2 // long timeout
         0: .line 295
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleOptions.isMultiThreaded:()Z
            ifeq 3
         1: .line 296
            aload 0 /* this */
            aload 1 /* optimizedCallTarget */
            lload 2 /* timeout */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.waitForCompilation:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;J)V
         2: .line 297
            return
         3: .line 301
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long timeout
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget optimizedCallTarget
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    4     1  optimizedCallTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            0    4     2              timeout  J
    Exceptions:
      throws java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    MethodParameters:
                     Name  Flags
      optimizedCallTarget  
      timeout              

  protected jdk.vm.ci.code.stack.StackIntrospection getStackIntrospection();
    descriptor: ()Ljdk/vm/ci/code/stack/StackIntrospection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 305
            getstatic com.oracle.svm.core.stack.SubstrateStackIntrospection.SINGLETON:Lcom/oracle/svm/core/stack/SubstrateStackIntrospection;
            areturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public <T> T getGraalOptions(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // java.lang.Class type
         0: .line 310
            aload 1 /* type */
            ldc Lorg/graalvm/compiler/options/OptionValues;
            if_acmpne 2
         1: .line 311
            aload 1 /* type */
            invokestatic com.oracle.svm.core.option.RuntimeOptionValues.singleton:()Lcom/oracle/svm/core/option/RuntimeOptionValues;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getGraalOptions:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    3     1  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  

  protected boolean isPrintGraphEnabled();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 318
            getstatic org.graalvm.compiler.debug.DebugOptions.PrintGraph:Lorg/graalvm/compiler/options/EnumOptionKey;
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getGraalOptions:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionValues
            invokevirtual org.graalvm.compiler.options.EnumOptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            getstatic org.graalvm.compiler.debug.DebugOptions$PrintGraphTarget.Disable:Lorg/graalvm/compiler/debug/DebugOptions$PrintGraphTarget;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;

  public void resetNativeImageState();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
         0: .line 323
            aload 0 /* this */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.clearState:()V
         1: .line 324
            return
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  protected <T> T asObject(java.lang.Class<T>, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // java.lang.Class type
        start local 2 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 329
            aload 1 /* type */
            aload 2 /* constant */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            ldc Ljava/lang/Object;
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaConstant constant
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    1     1      type  Ljava/lang/Class<TT;>;
            0    1     2  constant  Ljdk/vm/ci/meta/JavaConstant;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljdk/vm/ci/meta/JavaConstant;)TT;
    MethodParameters:
          Name  Flags
      type      
      constant  

  protected jdk.vm.ci.meta.JavaConstant forObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // java.lang.Object object
         0: .line 334
            aload 1 /* object */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.util.function.Consumer<org.graalvm.compiler.truffle.common.OptimizedAssumptionDependency> registerOptimizedAssumptionDependency(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljava/util/function/Consumer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // jdk.vm.ci.meta.JavaConstant optimizedAssumptionConstant
         0: .line 339
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 1 /* optimizedAssumptionConstant */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.registerOptimizedAssumptionDependency:(Ljdk/vm/ci/meta/JavaConstant;)Ljava/util/function/Consumer;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant optimizedAssumptionConstant
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    1     0                         this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    1     1  optimizedAssumptionConstant  Ljdk/vm/ci/meta/JavaConstant;
    Signature: (Ljdk/vm/ci/meta/JavaConstant;)Ljava/util/function/Consumer<Lorg/graalvm/compiler/truffle/common/OptimizedAssumptionDependency;>;
    MethodParameters:
                             Name  Flags
      optimizedAssumptionConstant  

  public jdk.vm.ci.meta.JavaConstant getCallTargetForCallNode(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // jdk.vm.ci.meta.JavaConstant callNodeConstant
         0: .line 344
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 1 /* callNodeConstant */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.getCallTargetForCallNode:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant callNodeConstant
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    1     1  callNodeConstant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
                  Name  Flags
      callNodeConstant  

  public org.graalvm.compiler.truffle.common.CompilableTruffleAST asCompilableTruffleAST(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 349
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 1 /* constant */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.asCompilableTruffleAST:(Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant constant
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    1     1  constant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
          Name  Flags
      constant  

  public void log(java.lang.String, org.graalvm.compiler.truffle.common.CompilableTruffleAST, java.lang.String);
    descriptor: (Ljava/lang/String;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // java.lang.String loggerId
        start local 2 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        start local 3 // java.lang.String message
         0: .line 354
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 0 /* this */
            aload 1 /* loggerId */
            aload 2 /* compilable */
            aload 3 /* message */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.tryLog:(Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;Ljava/lang/String;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;)Z
            ifne 2
         1: .line 355
            aload 0 /* this */
            aload 1 /* loggerId */
            aload 2 /* compilable */
            aload 3 /* message */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.log:(Ljava/lang/String;Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/lang/String;)V
         2: .line 357
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String message
        end local 2 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        end local 1 // java.lang.String loggerId
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    3     1    loggerId  Ljava/lang/String;
            0    3     2  compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0    3     3     message  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      loggerId    
      compilable  
      message     

  public boolean isSuppressedFailure(org.graalvm.compiler.truffle.common.CompilableTruffleAST, java.util.function.Supplier<java.lang.String>);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/function/Supplier;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
        start local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        start local 2 // java.util.function.Supplier serializedException
         0: .line 361
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSupport:()Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 1 /* compilable */
            aload 2 /* serializedException */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.tryIsSuppressedFailure:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/function/Supplier;)Lcom/oracle/truffle/api/utilities/TriState;
            astore 3 /* res */
        start local 3 // com.oracle.truffle.api.utilities.TriState res
         1: .line 362
            invokestatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.$SWITCH_TABLE$com$oracle$truffle$api$utilities$TriState:()[I
            aload 3 /* res */
            invokevirtual com.oracle.truffle.api.utilities.TriState.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         2: .line 364
      StackMap locals: com.oracle.truffle.api.utilities.TriState
      StackMap stack:
            iconst_1
            ireturn
         3: .line 366
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* compilable */
            aload 2 /* serializedException */
            invokespecial org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.isSuppressedFailure:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/function/Supplier;)Z
            ireturn
         5: .line 370
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported value "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* res */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // com.oracle.truffle.api.utilities.TriState res
        end local 2 // java.util.function.Supplier serializedException
        end local 1 // org.graalvm.compiler.truffle.common.CompilableTruffleAST compilable
        end local 0 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
            0    6     1           compilable  Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
            0    6     2  serializedException  Ljava/util/function/Supplier<Ljava/lang/String;>;
            1    6     3                  res  Lcom/oracle/truffle/api/utilities/TriState;
    Signature: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;Ljava/util/function/Supplier<Ljava/lang/String;>;)Z
    MethodParameters:
                     Name  Flags
      compilable           
      serializedException  

  public org.graalvm.compiler.truffle.common.TruffleCompiler newTruffleCompiler();
    descriptor: ()Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.newTruffleCompiler:()Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.graalvm.compiler.truffle.common.TruffleCompiler getTruffleCompiler(org.graalvm.compiler.truffle.common.CompilableTruffleAST);
    descriptor: (Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getTruffleCompiler:(Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;)Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$com$oracle$truffle$api$utilities$TriState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 93
            getstatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.$SWITCH_TABLE$com$oracle$truffle$api$utilities$TriState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.api.utilities.TriState.values:()[Lcom/oracle/truffle/api/utilities/TriState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.api.utilities.TriState.FALSE:Lcom/oracle/truffle/api/utilities/TriState;
            invokevirtual com.oracle.truffle.api.utilities.TriState.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.api.utilities.TriState.TRUE:Lcom/oracle/truffle/api/utilities/TriState;
            invokevirtual com.oracle.truffle.api.utilities.TriState.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.api.utilities.TriState.UNDEFINED:Lcom/oracle/truffle/api/utilities/TriState;
            invokevirtual com.oracle.truffle.api.utilities.TriState.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.svm.truffle.api.SubstrateTruffleRuntime.$SWITCH_TABLE$com$oracle$truffle$api$utilities$TriState:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "SubstrateTruffleRuntime.java"
InnerClasses:
  public Options = com.oracle.svm.core.deopt.Deoptimizer$Options of com.oracle.svm.core.deopt.Deoptimizer
  public Support = com.oracle.svm.truffle.TruffleFeature$Support of com.oracle.svm.truffle.TruffleFeature
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final PrintGraphTarget = org.graalvm.compiler.debug.DebugOptions$PrintGraphTarget of org.graalvm.compiler.debug.DebugOptions
  protected final CallMethods = org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$CallMethods of org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime