public final class com.oracle.svm.truffle.TruffleFeature implements com.oracle.svm.core.graal.GraalFeature
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.truffle.TruffleFeature
  super_class: java.lang.Object
{
  private boolean firstAnalysisRun;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.truffle.TruffleFeature$Support support;
    descriptor: Lcom/oracle/svm/truffle/TruffleFeature$Support;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.ClassLoader imageClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Set<jdk.vm.ci.meta.ResolvedJavaMethod> blacklistMethods;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private final java.util.Set<com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode> blacklistViolations;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;>;

  private final java.util.Set<jdk.vm.ci.meta.ResolvedJavaMethod> warnMethods;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private final java.util.Set<com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode> warnViolations;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;>;

  private final java.util.Set<com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode> neverPartOfCompilationViolations;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;>;

  private java.lang.Boolean profilingEnabled;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Set<java.lang.Class<?>> dynamicObjectClasses;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
         0: .line 314
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 697
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.svm.truffle.TruffleFeature.dynamicObjectClasses:Ljava/util/Set;
         2: .line 315
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
         3: .line 316
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokedynamic compare()Ljava/util/Comparator;
              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:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  com/oracle/svm/truffle/TruffleFeature.blacklistViolationComparator(Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I (6)
                  (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            putfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
         4: .line 317
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.svm.truffle.TruffleFeature.warnMethods:Ljava/util/Set;
         5: .line 318
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokedynamic compare()Ljava/util/Comparator;
              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:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  com/oracle/svm/truffle/TruffleFeature.blacklistViolationComparator(Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I (6)
                  (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            putfield com.oracle.svm.truffle.TruffleFeature.warnViolations:Ljava/util/Set;
         6: .line 319
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokedynamic compare()Ljava/util/Comparator;
              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:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  com/oracle/svm/truffle/TruffleFeature.blacklistViolationComparator(Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I (6)
                  (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            putfield com.oracle.svm.truffle.TruffleFeature.neverPartOfCompilationViolations:Ljava/util/Set;
         7: .line 320
            return
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/svm/truffle/TruffleFeature;

  public static com.oracle.svm.truffle.TruffleFeature getSingleton();
    descriptor: ()Lcom/oracle/svm/truffle/TruffleFeature;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 323
            ldc Lcom/oracle/svm/truffle/TruffleFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.truffle.TruffleFeature
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setSupport(com.oracle.svm.truffle.TruffleFeature$Support);
    descriptor: (Lcom/oracle/svm/truffle/TruffleFeature$Support;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.TruffleFeature$Support support
         0: .line 327
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSingleton:()Lcom/oracle/svm/truffle/TruffleFeature;
            aload 0 /* support */
            putfield com.oracle.svm.truffle.TruffleFeature.support:Lcom/oracle/svm/truffle/TruffleFeature$Support;
         1: .line 328
            return
        end local 0 // com.oracle.svm.truffle.TruffleFeature$Support support
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  support  Lcom/oracle/svm/truffle/TruffleFeature$Support;
    MethodParameters:
         Name  Flags
      support  

  public static com.oracle.svm.truffle.TruffleFeature$Support getSupport();
    descriptor: ()Lcom/oracle/svm/truffle/TruffleFeature$Support;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 331
            invokestatic com.oracle.svm.truffle.TruffleFeature.getSingleton:()Lcom/oracle/svm/truffle/TruffleFeature;
            getfield com.oracle.svm.truffle.TruffleFeature.support:Lcom/oracle/svm/truffle/TruffleFeature$Support;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List<java.lang.Class<? extends org.graalvm.nativeimage.hosted.Feature>> getRequiredFeatures();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
         0: .line 336
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/svm/graal/hosted/GraalFeature;
            aastore
            dup
            iconst_1
            ldc Lcom/oracle/svm/truffle/NodeClassFeature;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/TruffleFeature;
    Signature: ()Ljava/util/List<Ljava/lang/Class<+Lorg/graalvm/nativeimage/hosted/Feature;>;>;

  private static void initializeTruffleReflectively(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.lang.ClassLoader imageClassLoader
         0: .line 340
            ldc "com.oracle.truffle.api.impl.Accessor"
            ldc "getTVMCI"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 341
            ldc "com.oracle.truffle.polyglot.LanguageCache"
            ldc "initializeNativeImageState"
            ldc Ljava/lang/ClassLoader;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* imageClassLoader */
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 342
            ldc "com.oracle.truffle.polyglot.InstrumentCache"
            ldc "initializeNativeImageState"
            ldc Ljava/lang/ClassLoader;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* imageClassLoader */
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 343
            ldc "com.oracle.truffle.api.impl.TruffleLocator"
            ldc "initializeNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 344
            return
        end local 0 // java.lang.ClassLoader imageClassLoader
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0  imageClassLoader  Ljava/lang/ClassLoader;
    MethodParameters:
                  Name  Flags
      imageClassLoader  

  public static void removeTruffleLanguage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.lang.String mimeType
         0: .line 347
            ldc "com.oracle.truffle.polyglot.LanguageCache"
            ldc "removeLanguageFromNativeImage"
            ldc Ljava/lang/String;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* mimeType */
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 348
            return
        end local 0 // java.lang.String mimeType
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  mimeType  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      mimeType  

  private static java.util.Collection<java.lang.Class<?>> getLanguageClasses();
    descriptor: ()Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 351
            ldc "com.oracle.truffle.polyglot.LanguageCache"
            ldc "getLanguageClasses"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Collection<Ljava/lang/Class<*>;>;

  private static <T> T invokeStaticMethod(java.lang.String, java.lang.String, java.util.Collection<java.lang.Class<?>>, []);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.util.Collection parameterTypes
        start local 3 // java.lang.Object[] args
         0: .line 358
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         1: .line 360
            aload 4 /* clazz */
            aload 1 /* methodName */
            aload 2 /* parameterTypes */
            iconst_0
            anewarray java.lang.Class
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         2: .line 361
            aload 5 /* method */
            aconst_null
            aload 3 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
        end local 5 // java.lang.reflect.Method method
        end local 4 // java.lang.Class clazz
         4: .line 362
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 4 /* e */
        start local 4 // java.lang.ReflectiveOperationException e
         5: .line 363
            aload 4 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.ReflectiveOperationException e
        end local 3 // java.lang.Object[] args
        end local 2 // java.util.Collection parameterTypes
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0       className  Ljava/lang/String;
            0    6     1      methodName  Ljava/lang/String;
            0    6     2  parameterTypes  Ljava/util/Collection<Ljava/lang/Class<*>;>;
            0    6     3            args  [Ljava/lang/Object;
            1    4     4           clazz  Ljava/lang/Class<*>;
            2    4     5          method  Ljava/lang/reflect/Method;
            5    6     4               e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ReflectiveOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection<Ljava/lang/Class<*>;>;[Ljava/lang/Object;)TT;
    MethodParameters:
                Name  Flags
      className       
      methodName      
      parameterTypes  
      args            

  public void afterRegistration(org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess a
         0: .line 369
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.support:Lcom/oracle/svm/truffle/TruffleFeature$Support;
            ifnonnull 2
         1: .line 370
            aload 0 /* this */
            new com.oracle.svm.truffle.TruffleFeature$Support
            dup
            invokespecial com.oracle.svm.truffle.TruffleFeature$Support.<init>:()V
            putfield com.oracle.svm.truffle.TruffleFeature.support:Lcom/oracle/svm/truffle/TruffleFeature$Support;
         2: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* a */
            invokeinterface org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess.getApplicationClassLoader:()Ljava/lang/ClassLoader;
            putfield com.oracle.svm.truffle.TruffleFeature.imageClassLoader:Ljava/lang/ClassLoader;
         3: .line 375
            ldc Lcom/oracle/svm/hosted/phases/ExperimentalNativeImageInlineDuringParsingSupport;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.phases.ExperimentalNativeImageInlineDuringParsingSupport
            invokevirtual com.oracle.svm.hosted.phases.ExperimentalNativeImageInlineDuringParsingSupport.disableNativeImageInlineDuringParsing:()V
         4: .line 377
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            astore 2 /* runtime */
        start local 2 // com.oracle.truffle.api.TruffleRuntime runtime
         5: .line 378
            aload 2 /* runtime */
            ifnull 6
            iconst_1
            goto 7
      StackMap locals: com.oracle.truffle.api.TruffleRuntime
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ldc "TruffleRuntime not available via Truffle.getRuntime()"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         8: .line 379
            aload 2 /* runtime */
            instanceof com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            ifne 9
            aload 2 /* runtime */
            instanceof com.oracle.truffle.api.impl.DefaultTruffleRuntime
            ifne 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
        10: .line 380
      StackMap locals:
      StackMap stack: int
            ldc "Unsupported TruffleRuntime %s (only SubstrateTruffleRuntime or DefaultTruffleRuntime allowed)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        11: .line 381
            aload 2 /* runtime */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        12: .line 379
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        13: .line 383
            ldc "com.oracle.graalvm.locator"
            aastore
            dup
            iconst_1
            ldc "Truffle classes are always initialized at build time"
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeClassInitialization.initializeAtBuildTime:([Ljava/lang/String;)V
        14: .line 385
            invokestatic com.oracle.svm.truffle.TruffleFeature.useTruffleCompiler:()Z
            ifeq 17
        15: .line 386
            aload 2 /* runtime */
            checkcast com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            astore 3 /* truffleRuntime */
        start local 3 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime truffleRuntime
        16: .line 387
            aload 3 /* truffleRuntime */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.resetHosted:()V
        end local 3 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime truffleRuntime
        17: .line 389
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 4
            goto 21
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess com.oracle.truffle.api.TruffleRuntime top java.util.Iterator
      StackMap stack:
        18: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLanguage$Provider
            astore 3 /* provider */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Provider provider
        19: iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
        20: .line 390
            aload 3 /* provider */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeClassInitialization.initializeAtBuildTime:([Ljava/lang/Class;)V
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Provider provider
        21: .line 389
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        22: .line 392
            ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Provider;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 4
            goto 26
      StackMap locals:
      StackMap stack:
        23: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider
            astore 3 /* provider */
        start local 3 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider provider
        24: iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
        25: .line 393
            aload 3 /* provider */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeClassInitialization.initializeAtBuildTime:([Ljava/lang/Class;)V
        end local 3 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider provider
        26: .line 392
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        27: .line 395
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.imageClassLoader:Ljava/lang/ClassLoader;
            invokestatic com.oracle.svm.truffle.TruffleFeature.initializeTruffleReflectively:(Ljava/lang/ClassLoader;)V
        28: .line 398
            ldc "com.oracle.truffle.api.library.LibraryFactory"
            ldc "reinitializeNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 399
            return
        end local 2 // com.oracle.truffle.api.TruffleRuntime runtime
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess a
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0            this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   30     1               a  Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;
            5   30     2         runtime  Lcom/oracle/truffle/api/TruffleRuntime;
           16   17     3  truffleRuntime  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
           19   21     3        provider  Lcom/oracle/truffle/api/TruffleLanguage$Provider;
           24   26     3        provider  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Provider;
    MethodParameters:
      Name  Flags
      a     

  public void cleanup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
         0: .line 404
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            astore 1 /* runtime */
        start local 1 // com.oracle.truffle.api.TruffleRuntime runtime
         1: .line 405
            aload 1 /* runtime */
            instanceof com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            ifeq 4
         2: .line 406
            aload 1 /* runtime */
            checkcast com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.resetNativeImageState:()V
         3: .line 407
            goto 6
      StackMap locals: com.oracle.truffle.api.TruffleRuntime
      StackMap stack:
         4: aload 1 /* runtime */
            instanceof com.oracle.truffle.api.impl.DefaultTruffleRuntime
            ifne 6
         5: .line 408
            ldc "Only SubstrateTruffleRuntime and DefaultTruffleRuntime supported"
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         6: .line 412
      StackMap locals:
      StackMap stack:
            ldc "com.oracle.truffle.polyglot.LanguageCache"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 413
            ldc "com.oracle.truffle.polyglot.InstrumentCache"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 414
            ldc "org.graalvm.polyglot.Engine$ImplHolder"
            ldc "resetPreInitializedEngine"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 415
            ldc "com.oracle.truffle.api.impl.TruffleLocator"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 416
            ldc "com.oracle.truffle.api.library.LibraryFactory"
            ldc "resetNativeImageState"
            ldc Ljava/lang/ClassLoader;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.imageClassLoader:Ljava/lang/ClassLoader;
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 417
            ldc "com.oracle.truffle.api.nodes.Node"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 418
            ldc "com.oracle.truffle.api.source.Source"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 420
            ldc "com.oracle.truffle.object.LayoutImpl"
            ldc "resetNativeImageState"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 421
            return
        end local 1 // com.oracle.truffle.api.TruffleRuntime runtime
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lcom/oracle/svm/truffle/TruffleFeature;
            1   15     1  runtime  Lcom/oracle/truffle/api/TruffleRuntime;

  public static boolean useTruffleCompiler();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 424
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            instanceof com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void registerInvocationPlugins(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.compiler.phases.util.Providers providers
        start local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        start local 4 // boolean analysis
        start local 5 // boolean hosted
         0: .line 433
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 3 /* invocationPlugins */
            ldc Lcom/oracle/truffle/api/profiles/Profile;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            astore 6 /* r */
        start local 6 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         1: .line 434
            aload 6 /* r */
            ldc "isProfilingEnabled"
            new com.oracle.svm.truffle.TruffleFeature$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.truffle.TruffleFeature$1.<init>:(Lcom/oracle/svm/truffle/TruffleFeature;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register0:(Ljava/lang/String;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         2: .line 448
            iload 4 /* analysis */
            ifne 3
            iload 5 /* hosted */
            ifeq 5
         3: .line 454
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
      StackMap stack:
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 3 /* invocationPlugins */
            ldc Lcom/oracle/truffle/api/CompilerDirectives;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            astore 6 /* r */
         4: .line 455
            aload 6 /* r */
            invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.registerCastExact:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;)V
         5: .line 457
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 5 // boolean hosted
        end local 4 // boolean analysis
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        end local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 1 // org.graalvm.compiler.phases.util.Providers providers
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    6     1          providers  Lorg/graalvm/compiler/phases/util/Providers;
            0    6     2  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0    6     3  invocationPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    6     4           analysis  Z
            0    6     5             hosted  Z
            1    6     6                  r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                   Name  Flags
      providers          
      snippetReflection  
      invocationPlugins  
      analysis           
      hosted             

  private void registerNeverPartOfCompilation(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
         0: .line 460
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 1 /* plugins */
            ldc Lcom/oracle/truffle/api/CompilerAsserts;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            astore 2 /* r */
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         1: .line 461
            aload 2 /* r */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.setAllowOverwrite:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            pop
         2: .line 462
            aload 2 /* r */
            ldc "neverPartOfCompilation"
            new com.oracle.svm.truffle.TruffleFeature$2
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.truffle.TruffleFeature$2.<init>:(Lcom/oracle/svm/truffle/TruffleFeature;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register0:(Ljava/lang/String;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         3: .line 468
            aload 2 /* r */
            ldc "neverPartOfCompilation"
            ldc Ljava/lang/String;
            new com.oracle.svm.truffle.TruffleFeature$3
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.truffle.TruffleFeature$3.<init>:(Lcom/oracle/svm/truffle/TruffleFeature;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         4: .line 474
            return
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1  plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            1    5     2        r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
         Name  Flags
      plugins  

  private boolean handleNeverPartOfCompilation(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 3 // org.graalvm.compiler.nodes.ValueNode messageNode
         0: .line 477
            ldc "CompilerAsserts.neverPartOfCompilation()"
            astore 4 /* message */
        start local 4 // java.lang.String message
         1: .line 478
            aload 3 /* messageNode */
            ifnull 3
            aload 3 /* messageNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 3
         2: .line 479
            aload 3 /* messageNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.toValueString:()Ljava/lang/String;
            astore 4 /* message */
         3: .line 481
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* b */
            new org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode
            dup
            aload 4 /* message */
            invokespecial org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode.<init>:(Ljava/lang/String;)V
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode
            astore 5 /* neverPartOfCompilation */
        start local 5 // org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode neverPartOfCompilation
         4: .line 483
            getstatic com.oracle.svm.truffle.TruffleFeature$Options.TruffleCheckNeverPartOfCompilation: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 9
         5: .line 484
            aload 5 /* neverPartOfCompilation */
            invokevirtual org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.FrameState.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 2 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         6: .line 487
            aload 1 /* b */
            checkcast com.oracle.svm.graal.hosted.GraalFeature$RuntimeBytecodeParser
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$RuntimeBytecodeParser.getCallTreeNode:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            astore 6 /* callerNode */
        start local 6 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode callerNode
         7: .line 488
            new com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
            dup
            aload 2 /* targetMethod */
            aload 2 /* targetMethod */
            aload 6 /* callerNode */
            aload 6 /* callerNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getLevel:()I
            iconst_1
            iadd
            aload 5 /* neverPartOfCompilation */
            invokevirtual org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokestatic com.oracle.svm.graal.hosted.GraalFeature.buildSourceReference:(Lorg/graalvm/compiler/nodes/FrameState;)Ljava/lang/String;
            invokespecial com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;ILjava/lang/String;)V
            astore 7 /* calleeNode */
        start local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
         8: .line 489
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.neverPartOfCompilationViolations:Ljava/util/Set;
            aload 7 /* calleeNode */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
        end local 6 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode callerNode
         9: .line 493
      StackMap locals: org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // org.graalvm.compiler.truffle.compiler.nodes.asserts.NeverPartOfCompilationNode neverPartOfCompilation
        end local 4 // java.lang.String message
        end local 3 // org.graalvm.compiler.nodes.ValueNode messageNode
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0                    this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   10     1                       b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   10     2            targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   10     3             messageNode  Lorg/graalvm/compiler/nodes/ValueNode;
            1   10     4                 message  Ljava/lang/String;
            4   10     5  neverPartOfCompilation  Lorg/graalvm/compiler/truffle/compiler/nodes/asserts/NeverPartOfCompilationNode;
            7    9     6              callerNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            8    9     7              calleeNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
    MethodParameters:
              Name  Flags
      b             
      targetMethod  
      messageNode   

  public void beforeAnalysis(org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=14, locals=16, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess access
         0: .line 501
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl
            astore 2 /* config */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
         1: .line 503
            invokestatic com.oracle.svm.truffle.TruffleFeature.getLanguageClasses:()Ljava/util/Collection;
            invokedynamic accept()Ljava/util/function/Consumer;
              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:
                  (Ljava/lang/Object;)V
                  com/oracle/svm/truffle/TruffleFeature.lambda$10(Ljava/lang/Class;)V (6)
                  (Ljava/lang/Class;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         2: .line 505
            aload 2 /* config */
            ldc Lcom/oracle/truffle/api/library/DefaultExportProvider;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerHierarchyForReflectiveInstantiation:(Ljava/lang/Class;)V
         3: .line 506
            aload 2 /* config */
            ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerHierarchyForReflectiveInstantiation:(Ljava/lang/Class;)V
         4: .line 508
            aload 2 /* config */
            invokestatic com.oracle.svm.truffle.TruffleFeature.registerDynamicObjectFields:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;)V
         5: .line 510
            aload 2 /* config */
            invokedynamic accept()Ljava/util/function/BiConsumer;
              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:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/svm/truffle/TruffleFeature.registerTruffleLibrariesAsInHeap(Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class;)V (6)
                  (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class;)V
            ldc Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerSubtypeReachabilityHandler:(Ljava/util/function/BiConsumer;Ljava/lang/Class;)V
         6: .line 511
            aload 2 /* config */
            invokedynamic accept()Ljava/util/function/BiConsumer;
              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:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/svm/truffle/TruffleFeature.registerTruffleLibrariesAsInHeap(Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class;)V (6)
                  (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class;)V
            ldc Lcom/oracle/truffle/api/library/LibraryExport;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerSubtypeReachabilityHandler:(Ljava/util/function/BiConsumer;Ljava/lang/Class;)V
         7: .line 513
            invokestatic com.oracle.svm.truffle.TruffleFeature.useTruffleCompiler:()Z
            ifeq 55
         8: .line 514
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            checkcast com.oracle.svm.truffle.api.SubstrateTruffleRuntime
            astore 3 /* truffleRuntime */
        start local 3 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime truffleRuntime
         9: .line 515
            ldc Lcom/oracle/svm/graal/hosted/GraalFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.graal.hosted.GraalFeature
            astore 4 /* graalFeature */
        start local 4 // com.oracle.svm.graal.hosted.GraalFeature graalFeature
        10: .line 516
            aload 4 /* graalFeature */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.getHostedProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            astore 5 /* snippetReflection */
        start local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        11: .line 517
            aload 3 /* truffleRuntime */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.initTruffleCompiler:()Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
            astore 6 /* truffleCompiler */
        start local 6 // com.oracle.svm.truffle.api.SubstrateTruffleCompiler truffleCompiler
        12: .line 518
            aload 3 /* truffleRuntime */
            aload 2 /* config */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.lookupCallMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
        13: .line 520
            aload 6 /* truffleCompiler */
            invokeinterface com.oracle.svm.truffle.api.SubstrateTruffleCompiler.getPartialEvaluator:()Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            astore 7 /* partialEvaluator */
        start local 7 // org.graalvm.compiler.truffle.compiler.PartialEvaluator partialEvaluator
        14: .line 521
            aload 2 /* config */
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getKnownTruffleTypes:()Lorg/graalvm/compiler/truffle/compiler/substitutions/KnownTruffleTypes;
            invokestatic com.oracle.svm.truffle.TruffleFeature.registerKnownTruffleFields:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lorg/graalvm/compiler/truffle/compiler/substitutions/KnownTruffleTypes;)V
        15: .line 522
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.support:Lcom/oracle/svm/truffle/TruffleFeature$Support;
            aload 7 /* partialEvaluator */
            aload 1 /* access */
            invokevirtual com.oracle.svm.truffle.TruffleFeature$Support.registerInterpreterEntryMethodsAsCompiled:(Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)V
        16: .line 524
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getConfigPrototype:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            astore 8 /* graphBuilderConfig */
        start local 8 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration graphBuilderConfig
        17: .line 526
            getstatic com.oracle.svm.truffle.TruffleFeature$Options.TruffleInlineDuringParsing: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 23
        18: .line 527
            aload 8 /* graphBuilderConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
        19: .line 528
            new com.oracle.svm.truffle.TruffleFeature$TruffleParsingInlineInvokePlugin
            dup
            aload 2 /* config */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getHostVM:()Lcom/oracle/svm/hosted/SVMHost;
            aload 4 /* graalFeature */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.getHostedProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            aload 8 /* graphBuilderConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
        20: .line 529
            aload 7 /* partialEvaluator */
            aload 0 /* this */
            invokedynamic test(Lcom/oracle/svm/truffle/TruffleFeature;)Ljava/util/function/Predicate;
              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:
                  (Ljava/lang/Object;)Z
                  com/oracle/svm/truffle/TruffleFeature.lambda$6(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z (7)
                  (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
        21: .line 528
            invokespecial com.oracle.svm.truffle.TruffleFeature$TruffleParsingInlineInvokePlugin.<init>:(Lcom/oracle/svm/hosted/SVMHost;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;Ljava/util/function/Predicate;)V
        22: .line 527
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendInlineInvokePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin;)V
        23: .line 532
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl com.oracle.svm.truffle.api.SubstrateTruffleRuntime com.oracle.svm.graal.hosted.GraalFeature org.graalvm.compiler.api.replacements.SnippetReflectionProvider com.oracle.svm.truffle.api.SubstrateTruffleCompiler org.graalvm.compiler.truffle.compiler.PartialEvaluator org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
      StackMap stack:
            aload 0 /* this */
            aload 8 /* graphBuilderConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.registerNeverPartOfCompilation:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
        24: .line 533
            aload 8 /* graphBuilderConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.closeRegistration:()V
        25: .line 535
            new com.oracle.graal.pointsto.meta.HostedProviders
            dup
        26: .line 536
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
        27: .line 537
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
        28: .line 538
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
        29: .line 539
            new com.oracle.svm.truffle.HostedTruffleConstantFieldProvider
            dup
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            invokespecial com.oracle.svm.truffle.HostedTruffleConstantFieldProvider.<init>:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;)V
        30: .line 540
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getForeignCalls:()Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
        31: .line 541
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
        32: .line 542
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
        33: .line 543
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getStampProvider:()Lorg/graalvm/compiler/nodes/spi/StampProvider;
        34: .line 544
            aload 5 /* snippetReflection */
        35: .line 545
            aload 4 /* graalFeature */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.getHostedProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getWordTypes:()Lorg/graalvm/compiler/word/WordTypes;
        36: .line 546
            aload 4 /* graalFeature */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.getHostedProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getPlatformConfigurationProvider:()Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;
        37: .line 547
            aload 4 /* graalFeature */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.getHostedProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
        38: .line 535
            invokespecial com.oracle.graal.pointsto.meta.HostedProviders.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)V
            astore 9 /* newHostedProviders */
        start local 9 // com.oracle.graal.pointsto.meta.HostedProviders newHostedProviders
        39: .line 548
            aload 9 /* newHostedProviders */
            aload 8 /* graphBuilderConfig */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.setGraphBuilderPlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)V
        40: .line 550
            aload 4 /* graalFeature */
            aload 9 /* newHostedProviders */
            aload 8 /* graphBuilderConfig */
            aload 0 /* this */
            invokedynamic includeCallee(Lcom/oracle/svm/truffle/TruffleFeature;)Lcom/oracle/svm/graal/hosted/GraalFeature$IncludeCalleePredicate;
              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:
                  (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
                  com/oracle/svm/truffle/TruffleFeature.includeCallee(Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z (7)
                  (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
            aload 0 /* this */
            invokedynamic test(Lcom/oracle/svm/truffle/TruffleFeature;)Ljava/util/function/Predicate;
              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:
                  (Ljava/lang/Object;)Z
                  com/oracle/svm/truffle/TruffleFeature.deoptimizeOnException(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z (7)
                  (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.initializeRuntimeCompilationConfiguration:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;Lcom/oracle/svm/graal/hosted/GraalFeature$IncludeCalleePredicate;Ljava/util/function/Predicate;)V
        41: .line 551
            aload 7 /* partialEvaluator */
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getCompilationRootMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 45
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl com.oracle.svm.truffle.api.SubstrateTruffleRuntime com.oracle.svm.graal.hosted.GraalFeature org.graalvm.compiler.api.replacements.SnippetReflectionProvider com.oracle.svm.truffle.api.SubstrateTruffleCompiler org.graalvm.compiler.truffle.compiler.PartialEvaluator org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration com.oracle.graal.pointsto.meta.HostedProviders top top top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
        42: aload 15
            iload 13
            aaload
            astore 12 /* method */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        43: .line 552
            aload 4 /* graalFeature */
            aload 12 /* method */
            aload 2 /* config */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.prepareMethodForRuntimeCompilation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;)Lcom/oracle/svm/graal/meta/SubstrateMethod;
            pop
        end local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        44: .line 551
            iinc 13 1
      StackMap locals:
      StackMap stack:
        45: iload 13
            iload 14
            if_icmplt 42
        46: .line 555
            aload 0 /* this */
            aload 2 /* config */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.initializeMethodBlacklist:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
        47: .line 561
            aload 3 /* truffleRuntime */
            invokevirtual com.oracle.svm.truffle.api.SubstrateTruffleRuntime.getAnyFrameMethod:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 52
      StackMap locals:
      StackMap stack:
        48: aload 15
            iload 13
            aaload
            astore 12 /* method */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        49: .line 562
            aload 4 /* graalFeature */
            aload 12 /* method */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature.requireFrameInformationForMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lcom/oracle/svm/graal/meta/SubstrateMethod;
            pop
        50: .line 568
            aload 2 /* config */
            aload 12 /* method */
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerAsCompiled:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)V
        end local 12 // jdk.vm.ci.meta.ResolvedJavaMethod method
        51: .line 561
            iinc 13 1
      StackMap locals:
      StackMap stack:
        52: iload 13
            iload 14
            if_icmplt 48
        53: .line 577
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.isProfilingEnabled:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield com.oracle.svm.truffle.TruffleFeature.profilingEnabled:Ljava/lang/Boolean;
        54: .line 578
            ldc "com.oracle.truffle.polyglot.PolyglotEngineImpl"
            ldc "resetFallbackEngine"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // com.oracle.graal.pointsto.meta.HostedProviders newHostedProviders
        end local 8 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration graphBuilderConfig
        end local 7 // org.graalvm.compiler.truffle.compiler.PartialEvaluator partialEvaluator
        end local 6 // com.oracle.svm.truffle.api.SubstrateTruffleCompiler truffleCompiler
        end local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 4 // com.oracle.svm.graal.hosted.GraalFeature graalFeature
        end local 3 // com.oracle.svm.truffle.api.SubstrateTruffleRuntime truffleRuntime
        55: .line 581
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.svm.truffle.TruffleFeature.firstAnalysisRun:Z
        56: .line 582
            return
        end local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess access
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   57     0                this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   57     1              access  Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;
            1   57     2              config  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            9   55     3      truffleRuntime  Lcom/oracle/svm/truffle/api/SubstrateTruffleRuntime;
           10   55     4        graalFeature  Lcom/oracle/svm/graal/hosted/GraalFeature;
           11   55     5   snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
           12   55     6     truffleCompiler  Lcom/oracle/svm/truffle/api/SubstrateTruffleCompiler;
           14   55     7    partialEvaluator  Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
           17   55     8  graphBuilderConfig  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
           39   55     9  newHostedProviders  Lcom/oracle/graal/pointsto/meta/HostedProviders;
           43   44    12              method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           49   51    12              method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
        Name  Flags
      access  

  private static void registerTruffleLibrariesAsInHeap(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess, java.lang.Class<?>);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess access
        start local 1 // java.lang.Class clazz
         0: .line 590
            getstatic com.oracle.svm.truffle.TruffleFeature.$assertionsDisabled:Z
            ifne 1
            aload 0 /* access */
            aload 1 /* clazz */
            invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess.isReachable:(Ljava/lang/Class;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            aload 1 /* clazz */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 591
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.truffle.TruffleFeature.$assertionsDisabled:Z
            ifne 2
            ldc Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
            ldc Lcom/oracle/truffle/api/library/LibraryExport;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            aload 1 /* clazz */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 592
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 4
         3: .line 593
            aload 0 /* access */
            aload 1 /* clazz */
            invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess.registerAsInHeap:(Ljava/lang/Class;)V
         4: .line 595
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class clazz
        end local 0 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess access
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  access  Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
            0    5     1   clazz  Ljava/lang/Class<*>;
    Signature: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;Ljava/lang/Class<*>;)V
    MethodParameters:
        Name  Flags
      access  
      clazz   

  public void duringAnalysis(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess access
         0: .line 663
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.firstAnalysisRun:Z
            ifeq 6
         1: .line 664
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.truffle.TruffleFeature.firstAnalysisRun:Z
         2: .line 665
            ldc "com.oracle.truffle.polyglot.PolyglotContextImpl"
            ldc "resetSingleContextState"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* keep */
        start local 2 // java.lang.Object keep
         3: .line 666
            ldc "org.graalvm.polyglot.Engine$ImplHolder"
            ldc "preInitializeEngine"
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 667
            ldc "com.oracle.truffle.polyglot.PolyglotContextImpl"
            ldc "restoreSingleContextState"
            ldc Ljava/lang/Object;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* keep */
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 668
            aload 1 /* access */
            invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess.requireAnalysisIteration:()V
        end local 2 // java.lang.Object keep
         6: .line 671
      StackMap locals:
      StackMap stack:
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisType
            astore 2 /* type */
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
         8: .line 672
            aload 1 /* access */
            aload 2 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess.isReachable:(Ljava/lang/Class;)Z
            ifne 10
         9: .line 673
            goto 12
        10: .line 675
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisType java.util.Iterator
      StackMap stack:
            aload 2 /* type */
            invokestatic com.oracle.svm.truffle.TruffleFeature.initializeTruffleLibrariesAtBuildTime:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)V
        11: .line 676
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual com.oracle.svm.truffle.TruffleFeature.initializeDynamicObjectLayouts:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)V
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType type
        12: .line 671
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 678
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess access
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   14     1  access  Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
            3    6     2    keep  Ljava/lang/Object;
            8   12     2    type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
        Name  Flags
      access  

  private static void initializeTruffleLibrariesAtBuildTime(com.oracle.graal.pointsto.meta.AnalysisType);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisType type
         0: .line 687
            aload 0 /* type */
            ldc Lcom/oracle/truffle/api/library/GenerateLibrary;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 689
            aload 0 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/library/Library;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.library.LibraryFactory.resolve:(Ljava/lang/Class;)Lcom/oracle/truffle/api/library/LibraryFactory;
            pop
         2: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            ldc Lcom/oracle/truffle/api/library/ExportLibrary;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getDeclaredAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.library.ExportLibrary[]
            arraylength
            ifeq 4
         3: .line 693
            ldc "com.oracle.truffle.api.library.LibraryFactory$ResolvedDispatch"
            ldc "lookup"
            ldc Ljava/lang/Class;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            aastore
            invokestatic com.oracle.svm.truffle.TruffleFeature.invokeStaticMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 695
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
      Name  Flags
      type  

  private void initializeDynamicObjectLayouts(com.oracle.graal.pointsto.meta.AnalysisType);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisType type
         0: .line 700
            aload 1 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isInstantiated:()Z
            ifeq 4
         1: .line 701
            aload 1 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            astore 2 /* javaClass */
        start local 2 // java.lang.Class javaClass
         2: .line 702
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            aload 2 /* javaClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.dynamicObjectClasses:Ljava/util/Set;
            aload 2 /* javaClass */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 704
            invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
            aload 2 /* javaClass */
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.type:(Ljava/lang/Class;)Lcom/oracle/truffle/api/object/Layout$Builder;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.build:()Lcom/oracle/truffle/api/object/Layout;
            pop
        end local 2 // java.lang.Class javaClass
         4: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisType type
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1       type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            2    4     2  javaClass  Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      type  

  private static void registerKnownTruffleFields(com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl, org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lorg/graalvm/compiler/truffle/compiler/substitutions/KnownTruffleTypes;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
        start local 1 // org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes knownTruffleFields
         0: .line 710
            aload 1 /* knownTruffleFields */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* klass */
        start local 2 // java.lang.Class klass
         1: goto 14
         2: .line 711
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* klass */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes java.lang.Class top int int java.lang.reflect.Field[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.reflect.Field field
         4: .line 712
            aload 3 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 11
         5: .line 714
            aload 3 /* field */
            aload 1 /* knownTruffleFields */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* value */
        start local 7 // java.lang.Object value
         6: .line 715
            aload 7 /* value */
            ifnull 11
            aload 7 /* value */
            instanceof jdk.vm.ci.meta.ResolvedJavaField
            ifeq 11
         7: .line 716
            aload 0 /* config */
            aload 7 /* value */
            checkcast com.oracle.graal.pointsto.meta.AnalysisField
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerAsAccessed:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
        end local 7 // java.lang.Object value
         8: .line 718
            goto 11
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes java.lang.Class java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack: java.lang.IllegalAccessException
         9: astore 7 /* ex */
        start local 7 // java.lang.IllegalAccessException ex
        10: .line 719
            aload 7 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.IllegalAccessException ex
        end local 3 // java.lang.reflect.Field field
        11: .line 711
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes java.lang.Class top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 3
        13: .line 710
            aload 2 /* klass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* klass */
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes java.lang.Class
      StackMap stack:
        14: aload 2 /* klass */
            ldc Ljava/lang/Object;
            if_acmpne 2
        end local 2 // java.lang.Class klass
        15: .line 724
            return
        end local 1 // org.graalvm.compiler.truffle.compiler.substitutions.KnownTruffleTypes knownTruffleFields
        end local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0              config  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            0   16     1  knownTruffleFields  Lorg/graalvm/compiler/truffle/compiler/substitutions/KnownTruffleTypes;
            1   15     2               klass  Ljava/lang/Class<*>;
            4   11     3               field  Ljava/lang/reflect/Field;
            6    8     7               value  Ljava/lang/Object;
           10   11     7                  ex  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           5     8       9  Class java.lang.IllegalAccessException
    MethodParameters:
                    Name  Flags
      config              
      knownTruffleFields  

  private static void registerDynamicObjectFields(com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
         0: .line 727
            aload 0 /* config */
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "$DynamicField"
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.findClassByName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 1 /* dynamicFieldClass */
        start local 1 // java.lang.Class dynamicFieldClass
         1: .line 728
            aload 1 /* dynamicFieldClass */
            ifnonnull 3
         2: .line 729
            ldc "DynamicObject.DynamicField annotation not found."
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 731
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* config */
            aload 1 /* dynamicFieldClass */
            ldc Ljava/lang/annotation/Annotation;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.findAnnotatedFields:(Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl java.lang.Class top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Field
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         5: .line 732
            aload 0 /* config */
            aload 2 /* field */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerAsUnsafeAccessed:(Ljava/lang/reflect/Field;)V
        end local 2 // java.lang.reflect.Field field
         6: .line 731
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 734
            return
        end local 1 // java.lang.Class dynamicFieldClass
        end local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl config
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0             config  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            1    8     1  dynamicFieldClass  Ljava/lang/Class<*>;
            5    6     2              field  Ljava/lang/reflect/Field;
    MethodParameters:
        Name  Flags
      config  

  private boolean includeCallee(com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode, java.util.List<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
        start local 2 // java.util.List implementationMethods
         0: .line 737
            aload 0 /* this */
            aload 1 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getImplementationMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 1 /* calleeNode */
            aload 2 /* implementationMethods */
            invokevirtual com.oracle.svm.truffle.TruffleFeature.includeCallee:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
            ireturn
        end local 2 // java.util.List implementationMethods
        end local 1 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0                   this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    1     1             calleeNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            0    1     2  implementationMethods  Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    Signature: (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Z
    MethodParameters:
                       Name  Flags
      calleeNode             
      implementationMethods  

  private boolean includeCallee(jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode, java.util.List<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod implementationMethod
        start local 2 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
        start local 3 // java.util.List implementationMethods
         0: .line 741
            aload 1 /* implementationMethod */
            ldc Lcom/oracle/svm/core/annotate/Uninterruptible;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Uninterruptible
            astore 4 /* uninterruptibleAnnotation */
        start local 4 // com.oracle.svm.core.annotate.Uninterruptible uninterruptibleAnnotation
         1: .line 742
            aload 1 /* implementationMethod */
            ldc Lcom/oracle/truffle/api/CompilerDirectives$TruffleBoundary;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 3
         2: .line 743
            iconst_0
            ireturn
         3: .line 744
      StackMap locals: com.oracle.svm.core.annotate.Uninterruptible
      StackMap stack:
            aload 1 /* implementationMethod */
            invokestatic com.oracle.svm.core.SubstrateUtil$NativeImageLoadingShield.isNeverInline:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 5
         4: .line 746
            iconst_0
            ireturn
         5: .line 747
      StackMap locals:
      StackMap stack:
            aload 4 /* uninterruptibleAnnotation */
            ifnull 7
            aload 4 /* uninterruptibleAnnotation */
            invokeinterface com.oracle.svm.core.annotate.Uninterruptible.mayBeInlined:()Z
            ifne 7
         6: .line 749
            iconst_0
            ireturn
         7: .line 750
      StackMap locals:
      StackMap stack:
            aload 1 /* implementationMethod */
            ldc Lorg/graalvm/compiler/truffle/runtime/TruffleCallBoundary;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 9
         8: .line 751
            iconst_0
            ireturn
         9: .line 752
      StackMap locals:
      StackMap stack:
            aload 2 /* calleeNode */
            ifnull 14
            aload 3 /* implementationMethods */
            invokeinterface java.util.List.size:()I
            iconst_4
            if_icmple 14
            aload 0 /* this */
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getTargetMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.isBlacklisted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 14
        10: .line 753
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
            new com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
            dup
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getTargetMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getTargetMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getParent:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getLevel:()I
        11: .line 754
            aload 2 /* calleeNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            invokespecial com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;ILjava/lang/String;)V
        12: .line 753
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 755
            iconst_0
            ireturn
        14: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* implementationMethod */
            invokevirtual com.oracle.svm.truffle.TruffleFeature.isBlacklisted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 18
        15: .line 757
            aload 2 /* calleeNode */
            ifnull 17
        16: .line 758
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
            aload 2 /* calleeNode */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 760
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        18: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnMethods:Ljava/util/Set;
            aload 1 /* implementationMethod */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 763
            aload 2 /* calleeNode */
            ifnull 21
        20: .line 764
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnViolations:Ljava/util/Set;
            aload 2 /* calleeNode */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 768
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // com.oracle.svm.core.annotate.Uninterruptible uninterruptibleAnnotation
        end local 3 // java.util.List implementationMethods
        end local 2 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode calleeNode
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod implementationMethod
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   22     0                       this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   22     1       implementationMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   22     2                 calleeNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            0   22     3      implementationMethods  Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            1   22     4  uninterruptibleAnnotation  Lcom/oracle/svm/core/annotate/Uninterruptible;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Z
    MethodParameters:
                       Name  Flags
      implementationMethod   
      calleeNode             
      implementationMethods  

  private boolean isBlacklisted(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 772
            aload 1 /* method */
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.allowRuntimeCompilation:()Z
            ifne 2
         1: .line 773
            iconst_1
            ireturn
         2: .line 776
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isSynchronized:()Z
            ifeq 4
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "fillInStackTrace"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 782
            iconst_1
            ireturn
         4: .line 784
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
            aload 1 /* method */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
        Name  Flags
      method  

  private boolean deoptimizeOnException(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 789
            aload 1 /* method */
            ifnonnull 2
         1: .line 790
            iconst_0
            ireturn
         2: .line 792
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            ldc Lcom/oracle/truffle/api/CompilerDirectives$TruffleBoundary;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.CompilerDirectives$TruffleBoundary
            astore 2 /* truffleBoundary */
        start local 2 // com.oracle.truffle.api.CompilerDirectives$TruffleBoundary truffleBoundary
         3: .line 793
            aload 2 /* truffleBoundary */
            ifnull 4
            aload 2 /* truffleBoundary */
            invokeinterface com.oracle.truffle.api.CompilerDirectives$TruffleBoundary.transferToInterpreterOnException:()Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.api.CompilerDirectives$TruffleBoundary
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.CompilerDirectives$TruffleBoundary truffleBoundary
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1           method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            3    5     2  truffleBoundary  Lcom/oracle/truffle/api/CompilerDirectives$TruffleBoundary;
    MethodParameters:
        Name  Flags
      method  

  private void initializeMethodBlacklist(jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 797
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Object;
            ldc "clone"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         1: .line 798
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Object;
            ldc "equals"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         2: .line 799
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Object;
            ldc "hashCode"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         3: .line 800
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Object;
            ldc "toString"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         4: .line 801
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/String;
            ldc "valueOf"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         5: .line 802
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/String;
            ldc "getBytes"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         6: .line 803
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Throwable;
            ldc "initCause"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Throwable;
            aastore
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         7: .line 804
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Throwable;
            ldc "addSuppressed"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Throwable;
            aastore
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         8: .line 805
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/System;
            ldc "getProperty"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
         9: .line 807
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/AssertionError;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        10: .line 808
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/math/BigInteger;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        11: .line 809
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/math/BigDecimal;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        12: .line 810
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Comparable;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        13: .line 811
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Comparator;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        14: .line 812
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Collection;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        15: .line 813
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/List;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        16: .line 814
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Set;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        17: .line 815
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Map;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        18: .line 816
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Map$Entry;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        19: .line 817
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/TreeMap;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        20: .line 818
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/HashMap;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        21: .line 819
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        22: .line 820
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/WeakHashMap;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        23: .line 821
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/IdentityHashMap;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        24: .line 822
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/Iterable;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        25: .line 823
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Iterator;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        26: .line 824
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/ListIterator;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        27: .line 825
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        28: .line 827
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/math/BigInteger;
            ldc "signum"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.whitelistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
        29: .line 828
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/concurrent/locks/ReentrantLock;
            ldc "isLocked"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.whitelistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
        30: .line 829
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/concurrent/locks/ReentrantLock;
            ldc "isHeldByCurrentThread"
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.svm.truffle.TruffleFeature.whitelistMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
        31: .line 832
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/lang/StringBuffer;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        32: .line 833
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Vector;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        33: .line 834
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Ljava/util/Hashtable;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.blacklistAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        34: .line 840
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lcom/oracle/svm/core/stack/JavaStackWalker;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.warnAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        35: .line 841
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lcom/oracle/svm/core/deopt/Deoptimizer;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.warnAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        36: .line 842
            aload 0 /* this */
            aload 1 /* metaAccess */
            invokestatic com.oracle.svm.core.heap.Heap.getHeap:()Lcom/oracle/svm/core/heap/Heap;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.svm.truffle.TruffleFeature.warnAllMethods:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
        37: .line 843
            return
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   38     0        this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   38     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
    MethodParameters:
            Name  Flags
      metaAccess  

  private void blacklistAllMethods(jdk.vm.ci.meta.MetaAccessProvider, java.lang.Class<?>);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // java.lang.Class clazz
         0: .line 846
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 4
      StackMap locals: com.oracle.svm.truffle.TruffleFeature jdk.vm.ci.meta.MetaAccessProvider java.lang.Class top int int java.lang.reflect.Executable[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         2: .line 847
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.reflect.Executable m
         3: .line 846
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 849
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals:
      StackMap stack:
         6: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         7: .line 850
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.reflect.Executable m
         8: .line 849
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 852
            return
        end local 2 // java.lang.Class clazz
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   11     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   11     2       clazz  Ljava/lang/Class<*>;
            2    3     3           m  Ljava/lang/reflect/Executable;
            7    8     3           m  Ljava/lang/reflect/Executable;
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      metaAccess  
      clazz       

  private void blacklistMethod(jdk.vm.ci.meta.MetaAccessProvider, java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.String name
        start local 4 // java.lang.Class[] parameterTypes
         0: .line 856
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 2 /* clazz */
            aload 3 /* name */
            aload 4 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 857
            goto 4
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
         2: astore 5 /* ex */
        start local 5 // java.lang.NoSuchMethodException ex
         3: .line 858
            aload 5 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.NoSuchMethodException ex
         4: .line 860
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class[] parameterTypes
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class clazz
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1      metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    5     2           clazz  Ljava/lang/Class<*>;
            0    5     3            name  Ljava/lang/String;
            0    5     4  parameterTypes  [Ljava/lang/Class;
            3    4     5              ex  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      metaAccess      
      clazz           
      name            
      parameterTypes  

  private void whitelistMethod(jdk.vm.ci.meta.MetaAccessProvider, java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.String name
        start local 4 // java.lang.Class[] parameterTypes
         0: .line 867
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 2 /* clazz */
            aload 3 /* name */
            aload 4 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 868
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
         2: .line 870
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 5 /* ex */
        start local 5 // java.lang.NoSuchMethodException ex
         3: .line 871
            aload 5 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.NoSuchMethodException ex
         4: .line 873
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class[] parameterTypes
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class clazz
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    5     1      metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    5     2           clazz  Ljava/lang/Class<*>;
            0    5     3            name  Ljava/lang/String;
            0    5     4  parameterTypes  [Ljava/lang/Class;
            3    4     5              ex  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           0     2       2  Class java.lang.NoSuchMethodException
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      metaAccess      
      clazz           
      name            
      parameterTypes  

  private void warnAllMethods(jdk.vm.ci.meta.MetaAccessProvider, java.lang.Class<?>);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // java.lang.Class clazz
         0: .line 876
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: com.oracle.svm.truffle.TruffleFeature jdk.vm.ci.meta.MetaAccessProvider java.lang.Class top int int java.lang.reflect.Executable[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         2: .line 882
            aload 3 /* m */
            invokevirtual java.lang.reflect.Executable.getAnnotations:()[Ljava/lang/annotation/Annotation;
            arraylength
            ifne 4
            aload 3 /* m */
            invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
            ldc "get"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
            aload 3 /* m */
            invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 883
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.reflect.Executable m
         4: .line 876
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 1
         6: .line 886
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals:
      StackMap stack:
         7: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         8: .line 887
            aload 3 /* m */
            invokevirtual java.lang.reflect.Executable.getAnnotations:()[Ljava/lang/annotation/Annotation;
            arraylength
            ifne 10
         9: .line 888
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnMethods:Ljava/util/Set;
            aload 1 /* metaAccess */
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.reflect.Executable m
        10: .line 886
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 7
        12: .line 891
            return
        end local 2 // java.lang.Class clazz
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   13     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   13     2       clazz  Ljava/lang/Class<*>;
            2    4     3           m  Ljava/lang/reflect/Executable;
            8   10     3           m  Ljava/lang/reflect/Executable;
    Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      metaAccess  
      clazz       

  private static int blacklistViolationComparator(com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode, com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode);
    descriptor: (Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode n1
        start local 1 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode n2
         0: .line 894
            aload 0 /* n1 */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getTargetMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getQualifiedName:()Ljava/lang/String;
            aload 1 /* n2 */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getTargetMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getQualifiedName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 2 /* result */
        start local 2 // int result
         1: .line 895
            iload 2 /* result */
            ifne 3
         2: .line 896
            aload 0 /* n1 */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            aload 1 /* n2 */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 2 /* result */
         3: .line 898
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode n2
        end local 0 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode n1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      n1  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            0    4     1      n2  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            1    4     2  result  I
    MethodParameters:
      Name  Flags
      n1    
      n2    

  public void beforeCompilation(org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess config
         0: .line 903
            aload 1 /* config */
            checkcast com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl access
         1: .line 905
            getstatic com.oracle.svm.truffle.TruffleFeature$Options.TruffleCheckBlackListedMethods: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
            istore 3 /* failBlackListViolations */
        start local 3 // boolean failBlackListViolations
         2: .line 906
            getstatic com.oracle.svm.graal.hosted.GraalFeature$Options.PrintRuntimeCompileMethods: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 3
            iload 3 /* failBlackListViolations */
            ifne 3
            iconst_0
            goto 4
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* printBlackListViolations */
        start local 4 // boolean printBlackListViolations
         5: .line 907
            iload 4 /* printBlackListViolations */
            ifeq 22
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifle 22
         6: .line 908
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         7: .line 909
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "=== Found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " compilation blacklist violations ==="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 910
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         9: .line 911
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.blacklistViolations:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 19
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
            astore 5 /* node */
        start local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode node
        11: .line 912
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Blacklisted method"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 913
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 5 /* node */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getImplementationMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            ldc "  %H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 914
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "called from"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 915
            aload 5 /* node */
            astore 7 /* cur */
        start local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        15: goto 18
        16: .line 916
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode java.util.Iterator com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 915
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getParent:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            astore 7 /* cur */
      StackMap locals:
      StackMap stack:
        18: aload 7 /* cur */
            ifnonnull 16
        end local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        end local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode node
        19: .line 911
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        20: .line 919
            iload 3 /* failBlackListViolations */
            ifeq 22
        21: .line 920
            ldc "Blacklisted methods are reachable for runtime compilation"
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        22: .line 924
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnViolations:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifle 45
        23: .line 929
            aconst_null
            astore 5 /* printNode */
        start local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode printNode
        24: .line 930
            ldc 2147483647
            istore 6 /* printLength */
        start local 6 // int printLength
        25: .line 931
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.warnViolations:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 36
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode int top java.util.Iterator
      StackMap stack:
        26: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
            astore 7 /* warnNode */
        start local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode warnNode
        27: .line 932
            iconst_0
            istore 9 /* warnLength */
        start local 9 // int warnLength
        28: .line 933
            aload 7 /* warnNode */
            astore 10 /* cur */
        start local 10 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        29: goto 32
        30: .line 934
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode java.util.Iterator int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
      StackMap stack:
            iinc 9 /* warnLength */ 1
        31: .line 933
            aload 10 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getParent:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            astore 10 /* cur */
      StackMap locals:
      StackMap stack:
        32: aload 10 /* cur */
            ifnonnull 30
        end local 10 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        33: .line 936
            iload 9 /* warnLength */
            iload 6 /* printLength */
            if_icmpge 36
        34: .line 937
            aload 7 /* warnNode */
            astore 5 /* printNode */
        35: .line 938
            iload 9 /* warnLength */
            istore 6 /* printLength */
        end local 9 // int warnLength
        end local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode warnNode
        36: .line 931
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        37: .line 942
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: suspicious method reachable for runtime compilation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* printNode */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getImplementationMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            ldc "%H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        38: .line 943
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Check the complete tree of reachable methods using the option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.oracle.svm.graal.hosted.GraalFeature$Options.PrintRuntimeCompileMethods:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getDescriptor:()Lorg/graalvm/compiler/options/OptionDescriptor;
            invokevirtual org.graalvm.compiler.options.OptionDescriptor.getFieldName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        39: .line 944
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Suspicious method is called from"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        40: .line 945
            aload 5 /* printNode */
            astore 7 /* cur */
        start local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        41: goto 44
        42: .line 946
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        43: .line 945
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getParent:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            astore 7 /* cur */
      StackMap locals:
      StackMap stack:
        44: aload 7 /* cur */
            ifnonnull 42
        end local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        end local 6 // int printLength
        end local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode printNode
        45: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.neverPartOfCompilationViolations:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifle 57
        46: .line 951
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ERROR: CompilerAsserts.neverPartOfCompilation reachable for runtime compilation from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.neverPartOfCompilationViolations:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " places:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        47: .line 952
            aload 0 /* this */
            getfield com.oracle.svm.truffle.TruffleFeature.neverPartOfCompilationViolations:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 55
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int top java.util.Iterator
      StackMap stack:
        48: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
            astore 5 /* neverPartOfCompilationNode */
        start local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode neverPartOfCompilationNode
        49: .line 953
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "called from"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        50: .line 954
            aload 5 /* neverPartOfCompilationNode */
            astore 7 /* cur */
        start local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        51: goto 54
        52: .line 955
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode java.util.Iterator com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getSourceReference:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        53: .line 954
            aload 7 /* cur */
            invokevirtual com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode.getParent:()Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
            astore 7 /* cur */
      StackMap locals:
      StackMap stack:
        54: aload 7 /* cur */
            ifnonnull 52
        end local 7 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode cur
        end local 5 // com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode neverPartOfCompilationNode
        55: .line 952
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        56: .line 958
            ldc "CompilerAsserts.neverPartOfCompilation reachable for runtime compilation"
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        57: .line 961
      StackMap locals: com.oracle.svm.truffle.TruffleFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl int int
      StackMap stack:
            getstatic com.oracle.svm.truffle.TruffleFeature$Options.TruffleCheckFrameImplementation: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 69
            invokestatic com.oracle.svm.truffle.TruffleFeature.useTruffleCompiler:()Z
            ifeq 69
        58: .line 971
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl.getMetaAccess:()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            ldc Lcom/oracle/truffle/api/frame/Frame;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.optionalLookupJavaType:(Ljava/lang/Class;)Ljava/util/Optional;
            astore 5 /* optionalFrameType */
        start local 5 // java.util.Optional optionalFrameType
        59: .line 972
            aload 5 /* optionalFrameType */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 69
        60: .line 973
            aload 5 /* optionalFrameType */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.meta.HostedType
            astore 6 /* frameType */
        start local 6 // com.oracle.svm.hosted.meta.HostedType frameType
        61: .line 974
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* implementations */
        start local 7 // java.util.Set implementations
        62: .line 975
            aload 6 /* frameType */
            aload 7 /* implementations */
            invokestatic com.oracle.svm.truffle.TruffleFeature.collectImplementations:(Lcom/oracle/svm/hosted/meta/HostedType;Ljava/util/Set;)V
        63: .line 977
            aload 7 /* implementations */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmple 68
        64: .line 978
            ldc "More than one implementation of %s found. For performance reasons, Truffle languages must not provide new implementations, and instead only use the single implementation provided by the Truffle runtime. To disable this check, add %s to the native-image command line. Found classes: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        65: .line 980
            ldc Lcom/oracle/truffle/api/frame/Frame;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            getstatic com.oracle.svm.truffle.TruffleFeature$Options.TruffleCheckFrameImplementation:Lcom/oracle/svm/core/option/HostedOptionKey;
            ldc "-"
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        66: .line 981
            aload 7 /* implementations */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/truffle/TruffleFeature.lambda$9(Lcom/oracle/svm/hosted/meta/HostedType;)Ljava/lang/String; (6)
                  (Lcom/oracle/svm/hosted/meta/HostedType;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            aastore
        67: .line 978
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        68: .line 983
      StackMap locals: java.util.Optional com.oracle.svm.hosted.meta.HostedType java.util.Set
      StackMap stack:
            getstatic com.oracle.svm.truffle.TruffleFeature.$assertionsDisabled:Z
            ifne 69
            aload 7 /* implementations */
            invokeinterface java.util.Set.size:()I
            ifeq 69
            aload 7 /* implementations */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 6 /* frameType */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getSingleImplementor:()Lcom/oracle/svm/hosted/meta/HostedType;
            if_acmpeq 69
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // java.util.Set implementations
        end local 6 // com.oracle.svm.hosted.meta.HostedType frameType
        end local 5 // java.util.Optional optionalFrameType
        69: .line 987
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean printBlackListViolations
        end local 3 // boolean failBlackListViolations
        end local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess config
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   70     0                        this  Lcom/oracle/svm/truffle/TruffleFeature;
            0   70     1                      config  Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;
            1   70     2                      access  Lcom/oracle/svm/hosted/FeatureImpl$BeforeCompilationAccessImpl;
            2   70     3     failBlackListViolations  Z
            5   70     4    printBlackListViolations  Z
           11   19     5                        node  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           15   19     7                         cur  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           24   45     5                   printNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           25   45     6                 printLength  I
           27   36     7                    warnNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           28   36     9                  warnLength  I
           29   33    10                         cur  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           41   45     7                         cur  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           49   55     5  neverPartOfCompilationNode  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           51   55     7                         cur  Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;
           59   69     5           optionalFrameType  Ljava/util/Optional<+Ljdk/vm/ci/meta/ResolvedJavaType;>;
           61   69     6                   frameType  Lcom/oracle/svm/hosted/meta/HostedType;
           62   69     7             implementations  Ljava/util/Set<Lcom/oracle/svm/hosted/meta/HostedType;>;
    MethodParameters:
        Name  Flags
      config  

  private static void collectImplementations(com.oracle.svm.hosted.meta.HostedType, java.util.Set<com.oracle.svm.hosted.meta.HostedType>);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedType;Ljava/util/Set;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.svm.hosted.meta.HostedType type
        start local 1 // java.util.Set implementations
         0: .line 990
            aload 0 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getSubTypes:()[Lcom/oracle/svm/hosted/meta/HostedType;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: com.oracle.svm.hosted.meta.HostedType java.util.Set top int int com.oracle.svm.hosted.meta.HostedType[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* subType */
        start local 2 // com.oracle.svm.hosted.meta.HostedType subType
         2: .line 991
            aload 2 /* subType */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isAbstract:()Z
            ifne 4
         3: .line 992
            aload 1 /* implementations */
            aload 2 /* subType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 994
      StackMap locals: com.oracle.svm.hosted.meta.HostedType java.util.Set com.oracle.svm.hosted.meta.HostedType int int com.oracle.svm.hosted.meta.HostedType[]
      StackMap stack:
            aload 2 /* subType */
            aload 1 /* implementations */
            invokestatic com.oracle.svm.truffle.TruffleFeature.collectImplementations:(Lcom/oracle/svm/hosted/meta/HostedType;Ljava/util/Set;)V
        end local 2 // com.oracle.svm.hosted.meta.HostedType subType
         5: .line 990
            iinc 3 1
      StackMap locals: com.oracle.svm.hosted.meta.HostedType java.util.Set top int int com.oracle.svm.hosted.meta.HostedType[]
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 1
         7: .line 996
            return
        end local 1 // java.util.Set implementations
        end local 0 // com.oracle.svm.hosted.meta.HostedType type
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             type  Lcom/oracle/svm/hosted/meta/HostedType;
            0    8     1  implementations  Ljava/util/Set<Lcom/oracle/svm/hosted/meta/HostedType;>;
            2    5     2          subType  Lcom/oracle/svm/hosted/meta/HostedType;
    Signature: (Lcom/oracle/svm/hosted/meta/HostedType;Ljava/util/Set<Lcom/oracle/svm/hosted/meta/HostedType;>;)V
    MethodParameters:
                 Name  Flags
      type             
      implementations  

  private static void lambda$10(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class  arg0
         0: iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /*  arg0 */
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeReflection.registerForReflectiveInstantiation:([Ljava/lang/Class;)V
            return
        end local 0 // java.lang.Class  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V

  private boolean lambda$6(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.TruffleFeature this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 529
            aload 0 /* this */
            aload 1 /* method */
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.truffle.TruffleFeature.includeCallee:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/graal/hosted/GraalFeature$CallTreeNode;Ljava/util/List;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // com.oracle.svm.truffle.TruffleFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/truffle/TruffleFeature;
            0    1     1  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;

  private static java.lang.String lambda$9(com.oracle.svm.hosted.meta.HostedType);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedType;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.meta.HostedType m
         0: .line 981
            aload 0 /* m */
            iconst_1
            invokevirtual com.oracle.svm.hosted.meta.HostedType.toJavaName:(Z)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.svm.hosted.meta.HostedType m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Lcom/oracle/svm/hosted/meta/HostedType;
}
SourceFile: "TruffleFeature.java"
NestMembers:
  com.oracle.svm.truffle.TruffleFeature$1  com.oracle.svm.truffle.TruffleFeature$2  com.oracle.svm.truffle.TruffleFeature$3  com.oracle.svm.truffle.TruffleFeature$IsCreateProcessDisabled  com.oracle.svm.truffle.TruffleFeature$IsEnabled  com.oracle.svm.truffle.TruffleFeature$Options  com.oracle.svm.truffle.TruffleFeature$Support  com.oracle.svm.truffle.TruffleFeature$TruffleParsingInlineInvokePlugin
InnerClasses:
  public NativeImageLoadingShield = com.oracle.svm.core.SubstrateUtil$NativeImageLoadingShield of com.oracle.svm.core.SubstrateUtil
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public final CallTreeNode = com.oracle.svm.graal.hosted.GraalFeature$CallTreeNode of com.oracle.svm.graal.hosted.GraalFeature
  public abstract IncludeCalleePredicate = com.oracle.svm.graal.hosted.GraalFeature$IncludeCalleePredicate of com.oracle.svm.graal.hosted.GraalFeature
  public Options = com.oracle.svm.graal.hosted.GraalFeature$Options of com.oracle.svm.graal.hosted.GraalFeature
  public RuntimeBytecodeParser = com.oracle.svm.graal.hosted.GraalFeature$RuntimeBytecodeParser of com.oracle.svm.graal.hosted.GraalFeature
  public BeforeAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public BeforeCompilationAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeCompilationAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public DuringAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  com.oracle.svm.truffle.TruffleFeature$1
  com.oracle.svm.truffle.TruffleFeature$2
  com.oracle.svm.truffle.TruffleFeature$3
  public final IsCreateProcessDisabled = com.oracle.svm.truffle.TruffleFeature$IsCreateProcessDisabled of com.oracle.svm.truffle.TruffleFeature
  public final IsEnabled = com.oracle.svm.truffle.TruffleFeature$IsEnabled of com.oracle.svm.truffle.TruffleFeature
  public Options = com.oracle.svm.truffle.TruffleFeature$Options of com.oracle.svm.truffle.TruffleFeature
  public Support = com.oracle.svm.truffle.TruffleFeature$Support of com.oracle.svm.truffle.TruffleFeature
  TruffleParsingInlineInvokePlugin = com.oracle.svm.truffle.TruffleFeature$TruffleParsingInlineInvokePlugin of com.oracle.svm.truffle.TruffleFeature
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Provider = com.oracle.truffle.api.TruffleLanguage$Provider of com.oracle.truffle.api.TruffleLanguage
  public abstract Provider = com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider of com.oracle.truffle.api.instrumentation.TruffleInstrument
  public final Builder = com.oracle.truffle.api.object.Layout$Builder of com.oracle.truffle.api.object.Layout
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  public abstract AfterRegistrationAccess = org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract BeforeAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract BeforeCompilationAccess = org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract DuringAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess of org.graalvm.nativeimage.hosted.Feature