public class com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor extends com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor
  super_class: com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
{
  private static final int BASIC_LEVEL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

  private final com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions;
    descriptor: Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.hosted.substitute.ComputedValueField> fieldSubstitutions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;

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

  private static jdk.vm.ci.meta.ResolvedJavaType resolvedUnsafeClass;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private jdk.vm.ci.meta.ResolvedJavaMethod unsafeObjectFieldOffsetFieldMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private jdk.vm.ci.meta.ResolvedJavaMethod unsafeObjectFieldOffsetClassStringMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private jdk.vm.ci.meta.ResolvedJavaMethod unsafeArrayBaseOffsetMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private jdk.vm.ci.meta.ResolvedJavaMethod unsafeArrayIndexScaleMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private jdk.vm.ci.meta.ResolvedJavaMethod integerNumberOfLeadingZerosMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashSet<jdk.vm.ci.meta.ResolvedJavaMethod> neverInlineSet;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private java.util.HashSet<jdk.vm.ci.meta.ResolvedJavaMethod> noCheckedExceptionsSet;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins;
    descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
    descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  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 113
            ldc Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
         3: .line 130
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
    descriptor: (Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        start local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
         0: .line 145
            aload 0 /* this */
            invokespecial com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor.<init>:()V
         1: .line 138
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
         2: .line 139
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
         3: .line 146
            aload 0 /* this */
            aload 2 /* snippetReflection */
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
         4: .line 147
            aload 0 /* this */
            aload 1 /* annotationSubstitutions */
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
         5: .line 148
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
         6: .line 149
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.suppressWarnings:Ljava/util/List;
         7: .line 150
            return
        end local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 1 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    8     1  annotationSubstitutions  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    8     2        snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    MethodParameters:
                         Name  Flags
      annotationSubstitutions  
      snippetReflection        

  public void init(com.oracle.svm.hosted.ImageClassLoader, jdk.vm.ci.meta.MetaAccessProvider, com.oracle.svm.hosted.SVMHost);
    descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/SVMHost;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=19, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // com.oracle.svm.hosted.ImageClassLoader loader
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider originalMetaAccess
        start local 3 // com.oracle.svm.hosted.SVMHost hostVM
         0: .line 162
            ldc Ljava/lang/reflect/Field;
            ldc "setAccessible"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* fieldSetAccessible */
        start local 9 // java.lang.reflect.Method fieldSetAccessible
         1: .line 163
            aload 2 /* originalMetaAccess */
            aload 9 /* fieldSetAccessible */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 7 /* fieldSetAccessibleMethod */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod fieldSetAccessibleMethod
         2: .line 164
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 7 /* fieldSetAccessibleMethod */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 166
            ldc Ljava/lang/reflect/Field;
            ldc "get"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 10 /* fieldGet */
        start local 10 // java.lang.reflect.Method fieldGet
         4: .line 167
            aload 2 /* originalMetaAccess */
            aload 10 /* fieldGet */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* fieldGetMethod */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod fieldGetMethod
         5: .line 168
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 8 /* fieldGetMethod */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         6: .line 170
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmple 12
         7: .line 177
            aload 1 /* loader */
            ldc "java.lang.invoke.VarHandles"
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClassOrFail:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 11
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.SVMHost top top top jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.reflect.Method java.lang.reflect.Method top int int java.lang.reflect.Method[]
      StackMap stack:
         8: aload 14
            iload 12
            aaload
            astore 11 /* method */
        start local 11 // java.lang.reflect.Method method
         9: .line 178
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 2 /* originalMetaAccess */
            aload 11 /* method */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.reflect.Method method
        10: .line 177
            iinc 12 1
      StackMap locals:
      StackMap stack:
        11: iload 12
            iload 13
            if_icmplt 8
        12: .line 185
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.SVMHost top top top jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack:
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmpgt 15
        13: .line 186
            ldc "sun.misc.Unsafe"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 11 /* unsafeClass */
        start local 11 // java.lang.Class unsafeClass
        14: .line 187
            goto 19
        end local 11 // java.lang.Class unsafeClass
        15: .line 188
      StackMap locals:
      StackMap stack:
            ldc "jdk.internal.misc.Unsafe"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 11 /* unsafeClass */
        start local 11 // java.lang.Class unsafeClass
        16: .line 190
            goto 19
        end local 11 // java.lang.Class unsafeClass
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        17: astore 12 /* cnfe */
        start local 12 // java.lang.ClassNotFoundException cnfe
        18: .line 191
            aload 12 /* cnfe */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 12 // java.lang.ClassNotFoundException cnfe
        start local 11 // java.lang.Class unsafeClass
        19: .line 194
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* originalMetaAccess */
            aload 11 /* unsafeClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.resolvedUnsafeClass:Ljdk/vm/ci/meta/ResolvedJavaType;
        20: .line 196
            aload 11 /* unsafeClass */
            ldc "objectFieldOffset"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/reflect/Field;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 12 /* unsafeObjectFieldOffset */
        start local 12 // java.lang.reflect.Method unsafeObjectFieldOffset
        21: .line 197
            aload 0 /* this */
            aload 2 /* originalMetaAccess */
            aload 12 /* unsafeObjectFieldOffset */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetFieldMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        22: .line 198
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetFieldMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        23: .line 199
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetFieldMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        24: .line 201
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 11
            if_icmplt 29
        25: .line 203
            aload 11 /* unsafeClass */
            ldc "objectFieldOffset"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 13 /* unsafeObjectClassStringOffset */
        start local 13 // java.lang.reflect.Method unsafeObjectClassStringOffset
        26: .line 204
            aload 0 /* this */
            aload 2 /* originalMetaAccess */
            aload 13 /* unsafeObjectClassStringOffset */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetClassStringMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        27: .line 205
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetClassStringMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        28: .line 206
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetClassStringMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.reflect.Method unsafeObjectClassStringOffset
        29: .line 209
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 11 /* unsafeClass */
            ldc "arrayBaseOffset"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 13 /* unsafeArrayBaseOffset */
        start local 13 // java.lang.reflect.Method unsafeArrayBaseOffset
        30: .line 210
            aload 0 /* this */
            aload 2 /* originalMetaAccess */
            aload 13 /* unsafeArrayBaseOffset */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayBaseOffsetMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        31: .line 211
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayBaseOffsetMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        32: .line 212
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayBaseOffsetMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        33: .line 214
            aload 11 /* unsafeClass */
            ldc "arrayIndexScale"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 14 /* unsafeArrayIndexScale */
        start local 14 // java.lang.reflect.Method unsafeArrayIndexScale
        34: .line 215
            aload 0 /* this */
            aload 2 /* originalMetaAccess */
            aload 14 /* unsafeArrayIndexScale */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayIndexScaleMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        35: .line 216
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayIndexScaleMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        36: .line 217
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayIndexScaleMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        37: .line 219
            ldc Ljava/lang/Integer;
            ldc "numberOfLeadingZeros"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 15 /* integerNumberOfLeadingZeros */
        start local 15 // java.lang.reflect.Method integerNumberOfLeadingZeros
        38: .line 220
            aload 0 /* this */
            aload 2 /* originalMetaAccess */
            aload 15 /* integerNumberOfLeadingZeros */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.integerNumberOfLeadingZerosMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        39: .line 221
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.integerNumberOfLeadingZerosMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        40: .line 223
            ldc Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            ldc "newUpdater"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 16 /* atomicIntegerFieldUpdaterNewUpdater */
        start local 16 // java.lang.reflect.Method atomicIntegerFieldUpdaterNewUpdater
        41: .line 224
            aload 2 /* originalMetaAccess */
            aload 16 /* atomicIntegerFieldUpdaterNewUpdater */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* atomicIntegerFieldUpdaterNewUpdaterMethod */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod atomicIntegerFieldUpdaterNewUpdaterMethod
        42: .line 225
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 4 /* atomicIntegerFieldUpdaterNewUpdaterMethod */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        43: .line 227
            ldc Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            ldc "newUpdater"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 17 /* atomicLongFieldUpdaterNewUpdater */
        start local 17 // java.lang.reflect.Method atomicLongFieldUpdaterNewUpdater
        44: .line 228
            aload 2 /* originalMetaAccess */
            aload 17 /* atomicLongFieldUpdaterNewUpdater */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 5 /* atomicLongFieldUpdaterNewUpdaterMethod */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaMethod atomicLongFieldUpdaterNewUpdaterMethod
        45: .line 229
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 5 /* atomicLongFieldUpdaterNewUpdaterMethod */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        46: .line 231
            ldc Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            ldc "newUpdater"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_2
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 18 /* atomicReferenceFieldUpdaterNewUpdater */
        start local 18 // java.lang.reflect.Method atomicReferenceFieldUpdaterNewUpdater
        47: .line 232
            aload 2 /* originalMetaAccess */
            aload 18 /* atomicReferenceFieldUpdaterNewUpdater */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 6 /* atomicReferenceFieldUpdaterNewUpdaterMethod */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod atomicReferenceFieldUpdaterNewUpdaterMethod
        48: .line 233
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            aload 6 /* atomicReferenceFieldUpdaterNewUpdaterMethod */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 18 // java.lang.reflect.Method atomicReferenceFieldUpdaterNewUpdater
        end local 17 // java.lang.reflect.Method atomicLongFieldUpdaterNewUpdater
        end local 16 // java.lang.reflect.Method atomicIntegerFieldUpdaterNewUpdater
        end local 15 // java.lang.reflect.Method integerNumberOfLeadingZeros
        end local 14 // java.lang.reflect.Method unsafeArrayIndexScale
        end local 13 // java.lang.reflect.Method unsafeArrayBaseOffset
        end local 12 // java.lang.reflect.Method unsafeObjectFieldOffset
        end local 11 // java.lang.Class unsafeClass
        end local 10 // java.lang.reflect.Method fieldGet
        end local 9 // java.lang.reflect.Method fieldSetAccessible
        49: .line 235
            goto 52
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod fieldGetMethod
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod fieldSetAccessibleMethod
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod atomicReferenceFieldUpdaterNewUpdaterMethod
        end local 5 // jdk.vm.ci.meta.ResolvedJavaMethod atomicLongFieldUpdaterNewUpdaterMethod
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod atomicIntegerFieldUpdaterNewUpdaterMethod
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.SVMHost
      StackMap stack: java.lang.NoSuchMethodException
        50: astore 9 /* e */
        start local 9 // java.lang.NoSuchMethodException e
        51: .line 236
            aload 9 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.NoSuchMethodException e
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod atomicIntegerFieldUpdaterNewUpdaterMethod
        start local 5 // jdk.vm.ci.meta.ResolvedJavaMethod atomicLongFieldUpdaterNewUpdaterMethod
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod atomicReferenceFieldUpdaterNewUpdaterMethod
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod fieldSetAccessibleMethod
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod fieldGetMethod
        52: .line 252
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            new com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin
            dup
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.neverInlineSet:Ljava/util/HashSet;
            invokespecial com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin.<init>:(Ljava/util/HashSet;)V
            astore 9 /* inlineInvokePlugin */
        start local 9 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin inlineInvokePlugin
        53: .line 254
            aload 0 /* this */
            new org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
            dup
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
            dup
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.<init>:()V
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
            putfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.plugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
        54: .line 255
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.plugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            aload 9 /* inlineInvokePlugin */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendInlineInvokePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin;)V
        55: .line 256
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.plugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            new com.oracle.svm.hosted.phases.NoClassInitializationPlugin
            dup
            invokespecial com.oracle.svm.hosted.phases.NoClassInitializationPlugin.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.setClassInitializationPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;)V
        56: .line 258
            aload 1 /* loader */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.plugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            aload 3 /* hostVM */
            iconst_0
            iconst_0
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.registerInvocationPlugins:(Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
        57: .line 265
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.suppressWarnings:Ljava/util/List;
            aload 2 /* originalMetaAccess */
            ldc "sun.security.provider.ByteArrayAccess"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 266
            goto 61
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin
      StackMap stack: java.lang.ClassNotFoundException
        59: astore 10 /* e */
        start local 10 // java.lang.ClassNotFoundException e
        60: .line 267
            aload 10 /* e */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 10 // java.lang.ClassNotFoundException e
        61: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 9 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin inlineInvokePlugin
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod fieldGetMethod
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod fieldSetAccessibleMethod
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod atomicReferenceFieldUpdaterNewUpdaterMethod
        end local 5 // jdk.vm.ci.meta.ResolvedJavaMethod atomicLongFieldUpdaterNewUpdaterMethod
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod atomicIntegerFieldUpdaterNewUpdaterMethod
        end local 3 // com.oracle.svm.hosted.SVMHost hostVM
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider originalMetaAccess
        end local 1 // com.oracle.svm.hosted.ImageClassLoader loader
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                                         Name  Signature
            0   62     0                                         this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   62     1                                       loader  Lcom/oracle/svm/hosted/ImageClassLoader;
            0   62     2                           originalMetaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   62     3                                       hostVM  Lcom/oracle/svm/hosted/SVMHost;
           42   50     4    atomicIntegerFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           52   62     4    atomicIntegerFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           45   50     5       atomicLongFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           52   62     5       atomicLongFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           48   50     6  atomicReferenceFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           52   62     6  atomicReferenceFieldUpdaterNewUpdaterMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2   50     7                     fieldSetAccessibleMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           52   62     7                     fieldSetAccessibleMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            5   50     8                               fieldGetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           52   62     8                               fieldGetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            1   49     9                           fieldSetAccessible  Ljava/lang/reflect/Method;
            4   49    10                                     fieldGet  Ljava/lang/reflect/Method;
            9   10    11                                       method  Ljava/lang/reflect/Method;
           14   15    11                                  unsafeClass  Ljava/lang/Class<*>;
           16   17    11                                  unsafeClass  Ljava/lang/Class<*>;
           19   49    11                                  unsafeClass  Ljava/lang/Class<*>;
           18   19    12                                         cnfe  Ljava/lang/ClassNotFoundException;
           21   49    12                      unsafeObjectFieldOffset  Ljava/lang/reflect/Method;
           26   29    13                unsafeObjectClassStringOffset  Ljava/lang/reflect/Method;
           30   49    13                        unsafeArrayBaseOffset  Ljava/lang/reflect/Method;
           34   49    14                        unsafeArrayIndexScale  Ljava/lang/reflect/Method;
           38   49    15                  integerNumberOfLeadingZeros  Ljava/lang/reflect/Method;
           41   49    16          atomicIntegerFieldUpdaterNewUpdater  Ljava/lang/reflect/Method;
           44   49    17             atomicLongFieldUpdaterNewUpdater  Ljava/lang/reflect/Method;
           47   49    18        atomicReferenceFieldUpdaterNewUpdater  Ljava/lang/reflect/Method;
           51   52     9                                            e  Ljava/lang/NoSuchMethodException;
           53   62     9                           inlineInvokePlugin  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin;
           60   61    10                                            e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
          12    16      17  Class java.lang.ClassNotFoundException
           0    49      50  Class java.lang.NoSuchMethodException
          57    58      59  Class java.lang.ClassNotFoundException
    MethodParameters:
                    Name  Flags
      loader              
      originalMetaAccess  
      hostVM              

  void processComputedValueFields(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
         0: .line 284
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            astore 2 /* field */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         2: .line 285
            aload 2 /* field */
            instanceof com.oracle.svm.hosted.substitute.ComputedValue
            ifeq 9
         3: .line 286
            aload 2 /* field */
            checkcast com.oracle.svm.hosted.substitute.ComputedValue
            astore 4 /* cvField */
        start local 4 // com.oracle.svm.hosted.substitute.ComputedValue cvField
         4: .line 288
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:()[I
            aload 4 /* cvField */
            invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iaload
            tableswitch { // 5 - 5
                    5: 5
              default: 9
          }
         5: .line 290
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl jdk.vm.ci.meta.ResolvedJavaField java.util.Iterator com.oracle.svm.hosted.substitute.ComputedValue
      StackMap stack:
            aload 4 /* cvField */
            invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getTargetField:()Ljava/lang/reflect/Field;
            astore 5 /* targetField */
        start local 5 // java.lang.reflect.Field targetField
         6: .line 291
            aload 1 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 5 /* targetField */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         7: .line 292
            aload 1 /* access */
            aload 1 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 5 /* targetField */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.registerAsUnsafeAccessed:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)Z
            ifeq 9
         8: .line 293
            aload 1 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.requireAnalysisIteration:()V
        end local 5 // java.lang.reflect.Field targetField
        end local 4 // com.oracle.svm.hosted.substitute.ComputedValue cvField
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         9: .line 284
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 299
            return
        end local 1 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   11     1       access  Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
            2    9     2        field  Ljdk/vm/ci/meta/ResolvedJavaField;
            4    9     4      cvField  Lcom/oracle/svm/hosted/substitute/ComputedValue;
            6    9     5  targetField  Ljava/lang/reflect/Field;
    MethodParameters:
        Name  Flags
      access  

  private void addSubstitutionField(jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.hosted.substitute.ComputedValueField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField original
        start local 2 // com.oracle.svm.hosted.substitute.ComputedValueField substitution
         0: .line 302
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
            ifne 1
            aload 2 /* substitution */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 303
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* original */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* original */
            aload 2 /* substitution */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 305
            return
        end local 2 // com.oracle.svm.hosted.substitute.ComputedValueField substitution
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField original
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    4     1      original  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    4     2  substitution  Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    MethodParameters:
              Name  Flags
      original      
      substitution  

  public jdk.vm.ci.meta.ResolvedJavaField lookup(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 309
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 310
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            areturn
         2: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    3     1  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
       Name  Flags
      field  

  public void computeSubstitutions(com.oracle.svm.hosted.SVMHost, jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.options.OptionValues);
    descriptor: (Lcom/oracle/svm/hosted/SVMHost;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/options/OptionValues;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // com.oracle.svm.hosted.SVMHost hostVM
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType hostType
        start local 3 // org.graalvm.compiler.options.OptionValues options
         0: .line 317
            aload 2 /* hostType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifeq 2
         1: .line 318
            return
         2: .line 320
      StackMap locals:
      StackMap stack:
            aload 1 /* hostVM */
            invokevirtual com.oracle.svm.hosted.SVMHost.getClassInitializationSupport:()Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
            aload 2 /* hostType */
            invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.shouldInitializeAtRuntime:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 4
         3: .line 333
            return
         4: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 2 /* hostType */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 7
         5: .line 338
            aload 2 /* hostType */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportSkippedSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
         6: .line 339
            return
         7: .line 343
      StackMap locals:
      StackMap stack:
            aload 2 /* hostType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getClassInitializer:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* clinit */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
         8: .line 345
            aload 4 /* clinit */
            ifnull 36
            aload 4 /* clinit */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.hasBytecodes:()Z
            ifeq 36
         9: .line 350
            new org.graalvm.compiler.debug.DebugContext$Builder
            dup
            aload 3 /* options */
            invokespecial org.graalvm.compiler.debug.DebugContext$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;)V
            invokevirtual org.graalvm.compiler.debug.DebugContext$Builder.build:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 5 /* debug */
        start local 5 // org.graalvm.compiler.debug.DebugContext debug
        10: .line 351
            aconst_null
            astore 6
            aconst_null
            astore 7
        11: aload 5 /* debug */
            ldc "Field offset computation"
            aload 4 /* clinit */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 8 /* s */
        start local 8 // org.graalvm.compiler.debug.DebugContext$Scope s
        12: .line 352
            aload 0 /* this */
            aload 4 /* clinit */
            aload 3 /* options */
            aload 5 /* debug */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.getStaticInitializerGraph:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 9 /* clinitGraph */
        start local 9 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
        13: .line 354
            aload 9 /* clinitGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInvokes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 11
            goto 27
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
        14: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.Invoke
            astore 10 /* invoke */
        start local 10 // org.graalvm.compiler.nodes.Invoke invoke
        15: .line 355
            aload 10 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            instanceof org.graalvm.compiler.nodes.java.MethodCallTargetNode
            ifeq 27
        16: .line 356
            aload 10 /* invoke */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetFieldMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isInvokeTo:(Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 19
        17: .line 357
            aload 0 /* this */
            aload 2 /* hostType */
            aload 10 /* invoke */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeObjectFieldOffsetFieldInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
        18: .line 358
            goto 27
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.Invoke java.util.Iterator
      StackMap stack:
        19: aload 10 /* invoke */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeObjectFieldOffsetClassStringMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isInvokeTo:(Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 22
        20: .line 359
            aload 0 /* this */
            aload 2 /* hostType */
            aload 10 /* invoke */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeObjectFieldOffsetClassStringInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
        21: .line 360
            goto 27
      StackMap locals:
      StackMap stack:
        22: aload 10 /* invoke */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayBaseOffsetMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isInvokeTo:(Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 25
        23: .line 361
            aload 0 /* this */
            aload 2 /* hostType */
            aload 10 /* invoke */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeArrayBaseOffsetInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
        24: .line 362
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 10 /* invoke */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.unsafeArrayIndexScaleMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isInvokeTo:(Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 27
        26: .line 363
            aload 0 /* this */
            aload 2 /* hostType */
            aload 10 /* invoke */
            aload 9 /* clinitGraph */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeArrayIndexScaleInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        end local 10 // org.graalvm.compiler.nodes.Invoke invoke
        27: .line 354
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 9 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
        28: .line 368
            aload 8 /* s */
            ifnull 36
            aload 8 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 36
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        29: astore 6
            aload 8 /* s */
            ifnull 30
            aload 8 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 8 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        30: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 7
            aload 6
            ifnonnull 32
            aload 7
            astore 6
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 6
            aload 7
            if_acmpeq 33
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 6
            athrow
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.debug.DebugContext
      StackMap stack: java.lang.Throwable
        34: astore 6 /* e */
        start local 6 // java.lang.Throwable e
        35: .line 369
            aload 5 /* debug */
            aload 6 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.Throwable e
        end local 5 // org.graalvm.compiler.debug.DebugContext debug
        36: .line 373
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType hostType
        end local 1 // com.oracle.svm.hosted.SVMHost hostVM
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   37     1       hostVM  Lcom/oracle/svm/hosted/SVMHost;
            0   37     2     hostType  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   37     3      options  Lorg/graalvm/compiler/options/OptionValues;
            8   37     4       clinit  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           10   36     5        debug  Lorg/graalvm/compiler/debug/DebugContext;
           12   30     8            s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           13   28     9  clinitGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           15   27    10       invoke  Lorg/graalvm/compiler/nodes/Invoke;
           35   36     6            e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          12    28      29  any
          11    31      31  any
          10    34      34  Class java.lang.Throwable
    MethodParameters:
          Name  Flags
      hostVM    
      hostType  
      options   

  private void processUnsafeObjectFieldOffsetFieldInvoke(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
         0: .line 382
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* unsuccessfulReasons */
        start local 3 // java.util.List unsuccessfulReasons
         1: .line 384
            aconst_null
            astore 4 /* targetFieldHolder */
        start local 4 // java.lang.Class targetFieldHolder
         2: .line 385
            aconst_null
            astore 5 /* targetFieldName */
        start local 5 // java.lang.String targetFieldName
         3: .line 387
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iconst_1
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* fieldArgument */
        start local 6 // org.graalvm.compiler.nodes.ValueNode fieldArgument
         4: .line 388
            aload 6 /* fieldArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 12
         5: .line 389
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            ldc Ljava/lang/reflect/Field;
            aload 6 /* fieldArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.reflect.Field
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
         6: .line 390
            aload 7 /* field */
            ifnonnull 9
         7: .line 391
            aload 3 /* unsuccessfulReasons */
            ldc "The argument of Unsafe.objectFieldOffset() is a null constant."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 392
            goto 13
         9: .line 393
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.Invoke java.util.List java.lang.Class java.lang.String org.graalvm.compiler.nodes.ValueNode java.lang.reflect.Field
      StackMap stack:
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            astore 4 /* targetFieldHolder */
        10: .line 394
            aload 7 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            astore 5 /* targetFieldName */
        end local 7 // java.lang.reflect.Field field
        11: .line 396
            goto 13
        12: .line 397
      StackMap locals:
      StackMap stack:
            aload 3 /* unsuccessfulReasons */
            ldc "The argument of Unsafe.objectFieldOffset(Field) is not a constant field."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            aload 3 /* unsuccessfulReasons */
            aload 4 /* targetFieldHolder */
            aload 5 /* targetFieldName */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeObjectFieldOffsetInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/util/List;Ljava/lang/Class;Ljava/lang/String;)V
        14: .line 400
            return
        end local 6 // org.graalvm.compiler.nodes.ValueNode fieldArgument
        end local 5 // java.lang.String targetFieldName
        end local 4 // java.lang.Class targetFieldHolder
        end local 3 // java.util.List unsuccessfulReasons
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   15     0                           this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   15     1                           type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   15     2  unsafeObjectFieldOffsetInvoke  Lorg/graalvm/compiler/nodes/Invoke;
            1   15     3            unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            2   15     4              targetFieldHolder  Ljava/lang/Class<*>;
            3   15     5                targetFieldName  Ljava/lang/String;
            4   15     6                  fieldArgument  Lorg/graalvm/compiler/nodes/ValueNode;
            6   11     7                          field  Ljava/lang/reflect/Field;
    MethodParameters:
                               Name  Flags
      type                           
      unsafeObjectFieldOffsetInvoke  

  private void processUnsafeObjectFieldOffsetClassStringInvoke(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
         0: .line 409
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* unsuccessfulReasons */
        start local 3 // java.util.List unsuccessfulReasons
         1: .line 411
            aconst_null
            astore 4 /* targetFieldHolder */
        start local 4 // java.lang.Class targetFieldHolder
         2: .line 412
            aconst_null
            astore 5 /* targetFieldName */
        start local 5 // java.lang.String targetFieldName
         3: .line 414
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iconst_1
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* classArgument */
        start local 6 // org.graalvm.compiler.nodes.ValueNode classArgument
         4: .line 415
            aload 6 /* classArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 11
         5: .line 416
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            ldc Ljava/lang/Class;
            aload 6 /* classArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* clazz */
        start local 7 // java.lang.Class clazz
         6: .line 417
            aload 7 /* clazz */
            ifnonnull 9
         7: .line 418
            aload 3 /* unsuccessfulReasons */
            ldc "The Class argument of Unsafe.objectFieldOffset(Class, String) is a null constant."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 419
            goto 12
         9: .line 420
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.Invoke java.util.List java.lang.Class java.lang.String org.graalvm.compiler.nodes.ValueNode java.lang.Class
      StackMap stack:
            aload 7 /* clazz */
            astore 4 /* targetFieldHolder */
        end local 7 // java.lang.Class clazz
        10: .line 422
            goto 12
        11: .line 423
      StackMap locals:
      StackMap stack:
            aload 3 /* unsuccessfulReasons */
            ldc "The Class argument of Unsafe.objectFieldOffset(Class, String) is not a constant class."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 426
      StackMap locals:
      StackMap stack:
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iconst_2
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* nameArgument */
        start local 7 // org.graalvm.compiler.nodes.ValueNode nameArgument
        13: .line 427
            aload 7 /* nameArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 20
        14: .line 428
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            ldc Ljava/lang/String;
            aload 7 /* nameArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* fieldName */
        start local 8 // java.lang.String fieldName
        15: .line 429
            aload 8 /* fieldName */
            ifnonnull 18
        16: .line 430
            aload 3 /* unsuccessfulReasons */
            ldc "The String argument of Unsafe.objectFieldOffset(Class, String) is a null String."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 431
            goto 21
        18: .line 432
      StackMap locals: org.graalvm.compiler.nodes.ValueNode java.lang.String
      StackMap stack:
            aload 8 /* fieldName */
            astore 5 /* targetFieldName */
        end local 8 // java.lang.String fieldName
        19: .line 434
            goto 21
        20: .line 435
      StackMap locals:
      StackMap stack:
            aload 3 /* unsuccessfulReasons */
            ldc "The name argument of Unsafe.objectFieldOffset(Class, String) is not a constant String."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            aload 3 /* unsuccessfulReasons */
            aload 4 /* targetFieldHolder */
            aload 5 /* targetFieldName */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processUnsafeObjectFieldOffsetInvoke:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/util/List;Ljava/lang/Class;Ljava/lang/String;)V
        22: .line 438
            return
        end local 7 // org.graalvm.compiler.nodes.ValueNode nameArgument
        end local 6 // org.graalvm.compiler.nodes.ValueNode classArgument
        end local 5 // java.lang.String targetFieldName
        end local 4 // java.lang.Class targetFieldHolder
        end local 3 // java.util.List unsuccessfulReasons
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   23     0                           this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   23     1                           type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   23     2  unsafeObjectFieldOffsetInvoke  Lorg/graalvm/compiler/nodes/Invoke;
            1   23     3            unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            2   23     4              targetFieldHolder  Ljava/lang/Class<*>;
            3   23     5                targetFieldName  Ljava/lang/String;
            4   23     6                  classArgument  Lorg/graalvm/compiler/nodes/ValueNode;
            6   10     7                          clazz  Ljava/lang/Class<*>;
           13   23     7                   nameArgument  Lorg/graalvm/compiler/nodes/ValueNode;
           15   19     8                      fieldName  Ljava/lang/String;
    MethodParameters:
                               Name  Flags
      type                           
      unsafeObjectFieldOffsetInvoke  

  private void processUnsafeObjectFieldOffsetInvoke(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke, java.util.List<java.lang.String>, java.lang.Class<?>, java.lang.String);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/util/List;Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
        start local 3 // java.util.List unsuccessfulReasons
        start local 4 // java.lang.Class targetFieldHolder
        start local 5 // java.lang.String targetFieldName
         0: .line 451
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 3 /* unsuccessfulReasons */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.extractValueStoreField:(Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            astore 6 /* result */
        start local 6 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
         1: .line 454
            aload 6 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.valueStoreField:Ljdk/vm/ci/meta/ResolvedJavaField;
            ifnonnull 3
            aload 6 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.illegalUseFound:Z
            ifne 3
         2: .line 455
            return
         3: .line 458
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult
      StackMap stack:
            aload 6 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.valueStoreField:Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 7 /* offsetField */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaField offsetField
         4: .line 463
            aload 4 /* targetFieldHolder */
            ifnull 11
            aload 5 /* targetFieldName */
            ifnull 11
            aload 7 /* offsetField */
            ifnull 11
         5: .line 464
            aload 4 /* targetFieldHolder */
            astore 8 /* finalTargetFieldHolder */
        start local 8 // java.lang.Class finalTargetFieldHolder
         6: .line 465
            aload 5 /* targetFieldName */
            astore 9 /* finalTargetFieldName */
        start local 9 // java.lang.String finalTargetFieldName
         7: .line 466
            aload 7 /* offsetField */
            aload 8 /* finalTargetFieldHolder */
            aload 9 /* finalTargetFieldName */
            invokedynamic get(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/function/Supplier;
              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;
                  com/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor.lambda$0(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;Ljava/lang/String;)Lcom/oracle/svm/hosted/substitute/ComputedValueField; (6)
                  ()Lcom/oracle/svm/hosted/substitute/ComputedValueField;
            astore 10 /* supplier */
        start local 10 // java.util.function.Supplier supplier
         8: .line 467
            aload 0 /* this */
            aload 7 /* offsetField */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 10 /* supplier */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.tryAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier;)Z
            ifeq 12
         9: .line 468
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 7 /* offsetField */
            new java.lang.StringBuilder
            dup
            aload 4 /* targetFieldHolder */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* targetFieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportSuccessfulAutomaticRecomputation:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/String;)V
        end local 10 // java.util.function.Supplier supplier
        end local 9 // java.lang.String finalTargetFieldName
        end local 8 // java.lang.Class finalTargetFieldHolder
        10: .line 470
            goto 12
        11: .line 471
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 7 /* offsetField */
            aload 2 /* unsafeObjectFieldOffsetInvoke */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 3 /* unsuccessfulReasons */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportUnsuccessfulAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)V
        12: .line 473
      StackMap locals:
      StackMap stack:
            return
        end local 7 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        end local 6 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
        end local 5 // java.lang.String targetFieldName
        end local 4 // java.lang.Class targetFieldHolder
        end local 3 // java.util.List unsuccessfulReasons
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeObjectFieldOffsetInvoke
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   13     0                           this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   13     1                           type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   13     2  unsafeObjectFieldOffsetInvoke  Lorg/graalvm/compiler/nodes/Invoke;
            0   13     3            unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            0   13     4              targetFieldHolder  Ljava/lang/Class<*>;
            0   13     5                targetFieldName  Ljava/lang/String;
            1   13     6                         result  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            4   13     7                    offsetField  Ljdk/vm/ci/meta/ResolvedJavaField;
            6   10     8         finalTargetFieldHolder  Ljava/lang/Class<*>;
            7   10     9           finalTargetFieldName  Ljava/lang/String;
            8   10    10                       supplier  Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
                               Name  Flags
      type                           
      unsafeObjectFieldOffsetInvoke  
      unsuccessfulReasons            
      targetFieldHolder              
      targetFieldName                

  private void processUnsafeArrayBaseOffsetInvoke(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayBaseOffsetInvoke
         0: .line 482
            invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            astore 3 /* snippetReflectionProvider */
        start local 3 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflectionProvider
         1: .line 484
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* unsuccessfulReasons */
        start local 4 // java.util.List unsuccessfulReasons
         2: .line 486
            aconst_null
            astore 5 /* arrayClass */
        start local 5 // java.lang.Class arrayClass
         3: .line 488
            aload 2 /* unsafeArrayBaseOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iconst_1
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* arrayClassArgument */
        start local 6 // org.graalvm.compiler.nodes.ValueNode arrayClassArgument
         4: .line 489
            aload 6 /* arrayClassArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 7
         5: .line 490
            aload 3 /* snippetReflectionProvider */
            ldc Ljava/lang/Class;
            aload 6 /* arrayClassArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* arrayClass */
         6: .line 491
            goto 8
         7: .line 492
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.Invoke org.graalvm.compiler.api.replacements.SnippetReflectionProvider java.util.List java.lang.Class org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 4 /* unsuccessfulReasons */
            ldc "The argument of the call to Unsafe.arrayBaseOffset() is not a constant."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 499
      StackMap locals:
      StackMap stack:
            aload 2 /* unsafeArrayBaseOffsetInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 4 /* unsuccessfulReasons */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.extractValueStoreField:(Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            astore 7 /* result */
        start local 7 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
         9: .line 501
            aload 7 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.valueStoreField:Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 8 /* offsetField */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        10: .line 502
            aload 5 /* arrayClass */
            ifnull 16
            aload 8 /* offsetField */
            ifnull 16
        11: .line 503
            aload 5 /* arrayClass */
            astore 9 /* finalArrayClass */
        start local 9 // java.lang.Class finalArrayClass
        12: .line 504
            aload 8 /* offsetField */
            aload 9 /* finalArrayClass */
            invokedynamic get(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Ljava/util/function/Supplier;
              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;
                  com/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor.lambda$1(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField; (6)
                  ()Lcom/oracle/svm/hosted/substitute/ComputedValueField;
            astore 10 /* supplier */
        start local 10 // java.util.function.Supplier supplier
        13: .line 505
            aload 0 /* this */
            aload 8 /* offsetField */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 10 /* supplier */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.tryAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier;)Z
            ifeq 18
        14: .line 506
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 8 /* offsetField */
            aload 5 /* arrayClass */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportSuccessfulAutomaticRecomputation:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/String;)V
        end local 10 // java.util.function.Supplier supplier
        end local 9 // java.lang.Class finalArrayClass
        15: .line 508
            goto 18
        16: .line 510
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 7 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.illegalUseFound:Z
            ifeq 18
        17: .line 511
            aload 0 /* this */
            aload 1 /* type */
            aload 8 /* offsetField */
            aload 2 /* unsafeArrayBaseOffsetInvoke */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 4 /* unsuccessfulReasons */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportUnsuccessfulAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)V
        18: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 8 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        end local 7 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
        end local 6 // org.graalvm.compiler.nodes.ValueNode arrayClassArgument
        end local 5 // java.lang.Class arrayClass
        end local 4 // java.util.List unsuccessfulReasons
        end local 3 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflectionProvider
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayBaseOffsetInvoke
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   19     0                         this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   19     1                         type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   19     2  unsafeArrayBaseOffsetInvoke  Lorg/graalvm/compiler/nodes/Invoke;
            1   19     3    snippetReflectionProvider  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            2   19     4          unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            3   19     5                   arrayClass  Ljava/lang/Class<*>;
            4   19     6           arrayClassArgument  Lorg/graalvm/compiler/nodes/ValueNode;
            9   19     7                       result  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
           10   19     8                  offsetField  Ljdk/vm/ci/meta/ResolvedJavaField;
           12   15     9              finalArrayClass  Ljava/lang/Class<*>;
           13   15    10                     supplier  Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;
    MethodParameters:
                             Name  Flags
      type                         
      unsafeArrayBaseOffsetInvoke  

  private void processUnsafeArrayIndexScaleInvoke(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayIndexScale
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
         0: .line 523
            invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            astore 4 /* snippetReflectionProvider */
        start local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflectionProvider
         1: .line 525
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* unsuccessfulReasons */
        start local 5 // java.util.List unsuccessfulReasons
         2: .line 527
            aconst_null
            astore 6 /* arrayClass */
        start local 6 // java.lang.Class arrayClass
         3: .line 529
            aload 2 /* unsafeArrayIndexScale */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iconst_1
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* arrayClassArgument */
        start local 7 // org.graalvm.compiler.nodes.ValueNode arrayClassArgument
         4: .line 530
            aload 7 /* arrayClassArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 7
         5: .line 531
            aload 4 /* snippetReflectionProvider */
            ldc Ljava/lang/Class;
            aload 7 /* arrayClassArgument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 6 /* arrayClass */
         6: .line 532
            goto 8
         7: .line 533
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.Invoke org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.api.replacements.SnippetReflectionProvider java.util.List java.lang.Class org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* unsuccessfulReasons */
            ldc "The argument of the call to Unsafe.arrayIndexScale() is not a constant."
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 540
      StackMap locals:
      StackMap stack:
            aload 2 /* unsafeArrayIndexScale */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 5 /* unsuccessfulReasons */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.extractValueStoreField:(Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            astore 8 /* result */
        start local 8 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
         9: .line 542
            aload 8 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.valueStoreField:Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 9 /* indexScaleField */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaField indexScaleField
        10: .line 543
            iconst_0
            istore 10 /* indexScaleComputed */
        start local 10 // boolean indexScaleComputed
        11: .line 544
            iconst_0
            istore 11 /* indexShiftComputed */
        start local 11 // boolean indexShiftComputed
        12: .line 546
            aload 6 /* arrayClass */
            ifnull 22
        13: .line 547
            aload 9 /* indexScaleField */
            ifnull 21
        14: .line 548
            aload 6 /* arrayClass */
            astore 12 /* finalArrayClass */
        start local 12 // java.lang.Class finalArrayClass
        15: .line 549
            aload 9 /* indexScaleField */
            aload 12 /* finalArrayClass */
            invokedynamic get(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Ljava/util/function/Supplier;
              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;
                  com/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor.lambda$2(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField; (6)
                  ()Lcom/oracle/svm/hosted/substitute/ComputedValueField;
            astore 13 /* supplier */
        start local 13 // java.util.function.Supplier supplier
        16: .line 550
            aload 0 /* this */
            aload 9 /* indexScaleField */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 13 /* supplier */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.tryAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier;)Z
            ifeq 22
        17: .line 551
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 9 /* indexScaleField */
            aload 6 /* arrayClass */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportSuccessfulAutomaticRecomputation:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/String;)V
        18: .line 552
            iconst_1
            istore 10 /* indexScaleComputed */
        19: .line 554
            aload 0 /* this */
            aload 1 /* type */
            aload 9 /* indexScaleField */
            aload 6 /* arrayClass */
            aload 3 /* clinitGraph */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processArrayIndexShiftFromField:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
            istore 11 /* indexShiftComputed */
        end local 13 // java.util.function.Supplier supplier
        end local 12 // java.lang.Class finalArrayClass
        20: .line 556
            goto 22
        21: .line 561
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.Invoke org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.api.replacements.SnippetReflectionProvider java.util.List java.lang.Class org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult jdk.vm.ci.meta.ResolvedJavaField int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* unsafeArrayIndexScale */
            aload 6 /* arrayClass */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processArrayIndexShiftFromLocal:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/lang/Class;)Z
            istore 11 /* indexShiftComputed */
        22: .line 564
      StackMap locals:
      StackMap stack:
            iload 10 /* indexScaleComputed */
            ifne 25
            iload 11 /* indexShiftComputed */
            ifne 25
        23: .line 566
            aload 8 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.illegalUseFound:Z
            ifeq 25
        24: .line 567
            aload 0 /* this */
            aload 1 /* type */
            aload 9 /* indexScaleField */
            aload 2 /* unsafeArrayIndexScale */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 5 /* unsuccessfulReasons */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportUnsuccessfulAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)V
        25: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 11 // boolean indexShiftComputed
        end local 10 // boolean indexScaleComputed
        end local 9 // jdk.vm.ci.meta.ResolvedJavaField indexScaleField
        end local 8 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
        end local 7 // org.graalvm.compiler.nodes.ValueNode arrayClassArgument
        end local 6 // java.lang.Class arrayClass
        end local 5 // java.util.List unsuccessfulReasons
        end local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflectionProvider
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayIndexScale
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   26     0                       this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   26     1                       type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   26     2      unsafeArrayIndexScale  Lorg/graalvm/compiler/nodes/Invoke;
            0   26     3                clinitGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   26     4  snippetReflectionProvider  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            2   26     5        unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            3   26     6                 arrayClass  Ljava/lang/Class<*>;
            4   26     7         arrayClassArgument  Lorg/graalvm/compiler/nodes/ValueNode;
            9   26     8                     result  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
           10   26     9            indexScaleField  Ljdk/vm/ci/meta/ResolvedJavaField;
           11   26    10         indexScaleComputed  Z
           12   26    11         indexShiftComputed  Z
           15   20    12            finalArrayClass  Ljava/lang/Class<*>;
           16   20    13                   supplier  Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;
    MethodParameters:
                       Name  Flags
      type                   
      unsafeArrayIndexScale  
      clinitGraph            

  private boolean processArrayIndexShiftFromField(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaField, java.lang.Class<?>, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField indexScaleField
        start local 3 // java.lang.Class arrayClass
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
         0: .line 589
            aload 4 /* clinitGraph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField java.lang.Class org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.LoadFieldNode
            astore 5 /* load */
        start local 5 // org.graalvm.compiler.nodes.java.LoadFieldNode load
         2: .line 590
            aload 5 /* load */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 2 /* indexScaleField */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 596
            aload 0 /* this */
            aload 1 /* type */
            aload 3 /* arrayClass */
            aload 5 /* load */
            iconst_1
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processArrayIndexShift:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Class;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
            ifeq 5
         4: .line 602
            iconst_1
            ireturn
        end local 5 // org.graalvm.compiler.nodes.java.LoadFieldNode load
         5: .line 589
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 606
            iconst_0
            ireturn
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph clinitGraph
        end local 3 // java.lang.Class arrayClass
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField indexScaleField
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    7     1             type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    7     2  indexScaleField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    7     3       arrayClass  Ljava/lang/Class<*>;
            0    7     4      clinitGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    5     5             load  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class<*>;Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    MethodParameters:
                 Name  Flags
      type             
      indexScaleField  
      arrayClass       
      clinitGraph      

  private boolean processArrayIndexShiftFromLocal(jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.Invoke, java.lang.Class<?>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayIndexScale
        start local 3 // java.lang.Class arrayClass
         0: .line 627
            aload 0 /* this */
            aload 1 /* type */
            aload 3 /* arrayClass */
            aload 2 /* unsafeArrayIndexScale */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            iconst_0
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.processArrayIndexShift:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Class;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
            ireturn
        end local 3 // java.lang.Class arrayClass
        end local 2 // org.graalvm.compiler.nodes.Invoke unsafeArrayIndexScale
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0                   this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    1     1                   type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    1     2  unsafeArrayIndexScale  Lorg/graalvm/compiler/nodes/Invoke;
            0    1     3             arrayClass  Ljava/lang/Class<*>;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/Invoke;Ljava/lang/Class<*>;)Z
    MethodParameters:
                       Name  Flags
      type                   
      unsafeArrayIndexScale  
      arrayClass             

  private boolean processArrayIndexShift(jdk.vm.ci.meta.ResolvedJavaType, java.lang.Class<?>, org.graalvm.compiler.nodes.ValueNode, );
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Class;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=5
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // java.lang.Class arrayClass
        start local 3 // org.graalvm.compiler.nodes.ValueNode indexScaleValue
        start local 4 // boolean silentFailure
         0: .line 632
            aload 3 /* indexScaleValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            astore 5 /* loadMethodCallTargetUsages */
        start local 5 // org.graalvm.compiler.graph.iterators.NodeIterable loadMethodCallTargetUsages
         1: .line 633
            aload 5 /* loadMethodCallTargetUsages */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 28
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType java.lang.Class org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 6 /* methodCallTarget */
        start local 6 // org.graalvm.compiler.nodes.java.MethodCallTargetNode methodCallTarget
         3: .line 635
            aload 6 /* methodCallTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.integerNumberOfLeadingZerosMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isInvokeTo:(Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifeq 28
         4: .line 642
            aconst_null
            astore 8 /* result */
        start local 8 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
         5: .line 643
            aconst_null
            astore 9 /* indexShiftField */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaField indexShiftField
         6: .line 644
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* unsuccessfulReasons */
        start local 10 // java.util.List unsuccessfulReasons
         7: .line 645
            aload 6 /* methodCallTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            astore 11 /* numberOfLeadingZerosInvoke */
        start local 11 // org.graalvm.compiler.nodes.Invoke numberOfLeadingZerosInvoke
         8: .line 646
            aload 11 /* numberOfLeadingZerosInvoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual org.graalvm.compiler.nodes.FixedNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/calc/SubNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            astore 12 /* numberOfLeadingZerosInvokeSubUsages */
        start local 12 // org.graalvm.compiler.graph.iterators.NodeIterable numberOfLeadingZerosInvokeSubUsages
         9: .line 647
            aload 12 /* numberOfLeadingZerosInvokeSubUsages */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            iconst_1
            if_icmpne 17
        10: .line 652
            aload 12 /* numberOfLeadingZerosInvokeSubUsages */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.SubNode
            astore 13 /* subNode */
        start local 13 // org.graalvm.compiler.nodes.calc.SubNode subNode
        11: .line 653
            aload 13 /* subNode */
            aload 11 /* numberOfLeadingZerosInvoke */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.subNodeComputesLog2:(Lorg/graalvm/compiler/nodes/calc/SubNode;Lorg/graalvm/compiler/nodes/Invoke;)Z
            ifeq 15
        12: .line 654
            aload 13 /* subNode */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 10 /* unsuccessfulReasons */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.extractValueStoreField:(Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            astore 8 /* result */
        13: .line 655
            aload 8 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.valueStoreField:Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 9 /* indexShiftField */
        14: .line 656
            goto 18
        15: .line 657
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType java.lang.Class org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult jdk.vm.ci.meta.ResolvedJavaField java.util.List org.graalvm.compiler.nodes.Invoke org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.nodes.calc.SubNode
      StackMap stack:
            aload 10 /* unsuccessfulReasons */
            new java.lang.StringBuilder
            dup
            ldc "The index array scale value provided by "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* indexScaleValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not used to calculate the array index shift."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.graalvm.compiler.nodes.calc.SubNode subNode
        16: .line 659
            goto 18
        17: .line 660
      StackMap locals:
      StackMap stack:
            aload 10 /* unsuccessfulReasons */
            new java.lang.StringBuilder
            dup
            ldc "The call to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* methodCallTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has multiple uses."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 663
      StackMap locals:
      StackMap stack:
            aload 9 /* indexShiftField */
            ifnull 24
        19: .line 664
            aload 9 /* indexShiftField */
            astore 13 /* finalIndexShiftField */
        start local 13 // jdk.vm.ci.meta.ResolvedJavaField finalIndexShiftField
        20: .line 665
            aload 13 /* finalIndexShiftField */
            aload 2 /* arrayClass */
            invokedynamic get(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Ljava/util/function/Supplier;
              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;
                  com/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor.lambda$3(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField; (6)
                  ()Lcom/oracle/svm/hosted/substitute/ComputedValueField;
            astore 14 /* supplier */
        start local 14 // java.util.function.Supplier supplier
        21: .line 666
            aload 0 /* this */
            aload 9 /* indexShiftField */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 14 /* supplier */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.tryAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier;)Z
            ifeq 28
        22: .line 667
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 9 /* indexShiftField */
            aload 2 /* arrayClass */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportSuccessfulAutomaticRecomputation:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/String;)V
        23: .line 668
            iconst_1
            ireturn
        end local 14 // java.util.function.Supplier supplier
        end local 13 // jdk.vm.ci.meta.ResolvedJavaField finalIndexShiftField
        24: .line 671
      StackMap locals:
      StackMap stack:
            iload 4 /* silentFailure */
            ifne 28
        25: .line 677
            aload 8 /* result */
            ifnull 26
            aload 8 /* result */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.illegalUseFound:Z
            ifne 27
      StackMap locals:
      StackMap stack:
        26: aload 10 /* unsuccessfulReasons */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 28
        27: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aconst_null
            aload 11 /* numberOfLeadingZerosInvoke */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 10 /* unsuccessfulReasons */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportUnsuccessfulAutomaticRecomputation:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)V
        end local 12 // org.graalvm.compiler.graph.iterators.NodeIterable numberOfLeadingZerosInvokeSubUsages
        end local 11 // org.graalvm.compiler.nodes.Invoke numberOfLeadingZerosInvoke
        end local 10 // java.util.List unsuccessfulReasons
        end local 9 // jdk.vm.ci.meta.ResolvedJavaField indexShiftField
        end local 8 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult result
        end local 6 // org.graalvm.compiler.nodes.java.MethodCallTargetNode methodCallTarget
        28: .line 633
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaType java.lang.Class org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        29: .line 684
            iconst_0
            ireturn
        end local 5 // org.graalvm.compiler.graph.iterators.NodeIterable loadMethodCallTargetUsages
        end local 4 // boolean silentFailure
        end local 3 // org.graalvm.compiler.nodes.ValueNode indexScaleValue
        end local 2 // java.lang.Class arrayClass
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0   30     0                                 this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   30     1                                 type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   30     2                           arrayClass  Ljava/lang/Class<*>;
            0   30     3                      indexScaleValue  Lorg/graalvm/compiler/nodes/ValueNode;
            0   30     4                        silentFailure  Z
            1   30     5           loadMethodCallTargetUsages  Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;>;
            3   28     6                     methodCallTarget  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            5   28     8                               result  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            6   28     9                      indexShiftField  Ljdk/vm/ci/meta/ResolvedJavaField;
            7   28    10                  unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            8   28    11           numberOfLeadingZerosInvoke  Lorg/graalvm/compiler/nodes/Invoke;
            9   28    12  numberOfLeadingZerosInvokeSubUsages  Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/calc/SubNode;>;
           11   16    13                              subNode  Lorg/graalvm/compiler/nodes/calc/SubNode;
           20   24    13                 finalIndexShiftField  Ljdk/vm/ci/meta/ResolvedJavaField;
           21   24    14                             supplier  Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Class<*>;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
    MethodParameters:
                 Name  Flags
      type             
      arrayClass       
      indexScaleValue  
      silentFailure    

  private static boolean subNodeComputesLog2(org.graalvm.compiler.nodes.calc.SubNode, org.graalvm.compiler.nodes.Invoke);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/SubNode;Lorg/graalvm/compiler/nodes/Invoke;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.nodes.calc.SubNode subNode
        start local 1 // org.graalvm.compiler.nodes.Invoke numberOfLeadingZerosInvokeNode
         0: .line 692
            aload 0 /* subNode */
            invokevirtual org.graalvm.compiler.nodes.calc.SubNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* xValueNode */
        start local 2 // org.graalvm.compiler.nodes.ValueNode xValueNode
         1: .line 693
            aload 0 /* subNode */
            invokevirtual org.graalvm.compiler.nodes.calc.SubNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 3 /* yValueNode */
        start local 3 // org.graalvm.compiler.nodes.ValueNode yValueNode
         2: .line 695
            aload 2 /* xValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 7
            aload 2 /* xValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 7
         3: .line 696
            aload 2 /* xValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 4 /* xValueConstant */
        start local 4 // jdk.vm.ci.meta.PrimitiveConstant xValueConstant
         4: .line 697
            aload 4 /* xValueConstant */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asInt:()I
            bipush 31
            if_icmpne 7
         5: .line 698
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
            ifne 6
            aload 3 /* yValueNode */
            aload 1 /* numberOfLeadingZerosInvokeNode */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 699
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.PrimitiveConstant
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // jdk.vm.ci.meta.PrimitiveConstant xValueConstant
         7: .line 703
      StackMap locals:
      StackMap stack:
            aload 3 /* yValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 12
            aload 3 /* yValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 12
         8: .line 704
            aload 3 /* yValueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 4 /* yValueConstant */
        start local 4 // jdk.vm.ci.meta.PrimitiveConstant yValueConstant
         9: .line 705
            aload 4 /* yValueConstant */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asInt:()I
            bipush 31
            if_icmpne 12
        10: .line 706
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
            ifne 11
            aload 2 /* xValueNode */
            aload 1 /* numberOfLeadingZerosInvokeNode */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 707
      StackMap locals: jdk.vm.ci.meta.PrimitiveConstant
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // jdk.vm.ci.meta.PrimitiveConstant yValueConstant
        12: .line 711
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode yValueNode
        end local 2 // org.graalvm.compiler.nodes.ValueNode xValueNode
        end local 1 // org.graalvm.compiler.nodes.Invoke numberOfLeadingZerosInvokeNode
        end local 0 // org.graalvm.compiler.nodes.calc.SubNode subNode
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   13     0                         subNode  Lorg/graalvm/compiler/nodes/calc/SubNode;
            0   13     1  numberOfLeadingZerosInvokeNode  Lorg/graalvm/compiler/nodes/Invoke;
            1   13     2                      xValueNode  Lorg/graalvm/compiler/nodes/ValueNode;
            2   13     3                      yValueNode  Lorg/graalvm/compiler/nodes/ValueNode;
            4    7     4                  xValueConstant  Ljdk/vm/ci/meta/PrimitiveConstant;
            9   12     4                  yValueConstant  Ljdk/vm/ci/meta/PrimitiveConstant;
    MethodParameters:
                                Name  Flags
      subNode                         
      numberOfLeadingZerosInvokeNode  

  private static com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult extractValueStoreField(org.graalvm.compiler.nodes.ValueNode, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, java.util.List<java.lang.String>);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode valueNode
        start local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        start local 2 // java.util.List unsuccessfulReasons
         0: .line 751
            aconst_null
            astore 3 /* offsetField */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField offsetField
         1: .line 752
            iconst_0
            istore 4 /* illegalUseFound */
        start local 4 // boolean illegalUseFound
         2: .line 758
            aload 0 /* valueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 5 /* valueNodeUsage */
        start local 5 // org.graalvm.compiler.graph.Node valueNodeUsage
         4: .line 759
            aload 5 /* valueNodeUsage */
            instanceof org.graalvm.compiler.nodes.java.StoreFieldNode
            ifeq 7
            aload 3 /* offsetField */
            ifnonnull 7
         5: .line 760
            aload 5 /* valueNodeUsage */
            checkcast org.graalvm.compiler.nodes.java.StoreFieldNode
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 3 /* offsetField */
         6: .line 761
            goto 24
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
         7: aload 5 /* valueNodeUsage */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 20
            aload 3 /* offsetField */
            ifnonnull 20
         8: .line 762
            aload 5 /* valueNodeUsage */
            checkcast org.graalvm.compiler.nodes.calc.SignExtendNode
            astore 7 /* signExtendNode */
        start local 7 // org.graalvm.compiler.nodes.calc.SignExtendNode signExtendNode
         9: .line 763
            aload 7 /* signExtendNode */
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 18
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.calc.SignExtendNode top java.util.Iterator
      StackMap stack:
        10: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 8 /* signExtendNodeUsage */
        start local 8 // org.graalvm.compiler.graph.Node signExtendNodeUsage
        11: .line 764
            aload 8 /* signExtendNodeUsage */
            instanceof org.graalvm.compiler.nodes.java.StoreFieldNode
            ifeq 14
            aload 3 /* offsetField */
            ifnonnull 14
        12: .line 765
            aload 8 /* signExtendNodeUsage */
            checkcast org.graalvm.compiler.nodes.java.StoreFieldNode
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 3 /* offsetField */
        13: .line 766
            goto 18
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.calc.SignExtendNode org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
        14: aload 8 /* signExtendNodeUsage */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isAllowedUnsafeValueSink:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 16
        15: .line 767
            goto 18
        16: .line 769
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* illegalUseFound */
        17: .line 770
            goto 25
        end local 8 // org.graalvm.compiler.graph.Node signExtendNodeUsage
        18: .line 763
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.calc.SignExtendNode top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 7 // org.graalvm.compiler.nodes.calc.SignExtendNode signExtendNode
        19: .line 773
            goto 24
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
        20: aload 5 /* valueNodeUsage */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isAllowedUnsafeValueSink:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 22
        21: .line 774
            goto 24
        22: .line 776
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* illegalUseFound */
        23: .line 777
            goto 25
        end local 5 // org.graalvm.compiler.graph.Node valueNodeUsage
        24: .line 758
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        25: .line 781
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int
      StackMap stack:
            aload 3 /* offsetField */
            ifnull 37
            iload 4 /* illegalUseFound */
            ifne 37
        26: .line 782
            aload 3 /* offsetField */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifeq 28
            aload 3 /* offsetField */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 28
        27: .line 784
            aload 3 /* offsetField */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.foundField:(Ljdk/vm/ci/meta/ResolvedJavaField;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            areturn
        28: .line 786
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "The field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* offsetField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", where the value produced by the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* substitutionKind */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.kindAsString:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 787
            ldc " computation is stored, is not"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* offsetField */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifne 30
            ldc " static"
            goto 31
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        30: ldc ""
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int
      StackMap stack: java.lang.StringBuilder java.lang.String
        31: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* offsetField */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifne 32
            ldc " final"
            goto 33
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        32: ldc ""
      StackMap locals: org.graalvm.compiler.nodes.ValueNode com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.util.List jdk.vm.ci.meta.ResolvedJavaField int
      StackMap stack: java.lang.StringBuilder java.lang.String
        33: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 786
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
        35: .line 788
            aload 2 /* unsuccessfulReasons */
            aload 5 /* message */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 790
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.foundIllegalUse:()Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            areturn
        end local 5 // java.lang.String message
        37: .line 794
      StackMap locals:
      StackMap stack:
            iload 4 /* illegalUseFound */
            ifeq 54
        38: .line 798
            aload 0 /* valueNode */
            instanceof org.graalvm.compiler.nodes.Invoke
            ifeq 43
        39: .line 799
            aload 0 /* valueNode */
            checkcast org.graalvm.compiler.nodes.Invoke
            astore 7 /* invokeNode */
        start local 7 // org.graalvm.compiler.nodes.Invoke invokeNode
        40: .line 800
            new java.lang.StringBuilder
            dup
            ldc "call to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* invokeNode */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.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;
            astore 5 /* producer */
        start local 5 // java.lang.String producer
        41: .line 801
            ldc "call"
            astore 6 /* operation */
        end local 7 // org.graalvm.compiler.nodes.Invoke invokeNode
        start local 6 // java.lang.String operation
        42: .line 802
            goto 48
        end local 6 // java.lang.String operation
        end local 5 // java.lang.String producer
      StackMap locals:
      StackMap stack:
        43: aload 0 /* valueNode */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 47
        44: .line 803
            new java.lang.StringBuilder
            dup
            ldc "subtraction operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* valueNode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* producer */
        start local 5 // java.lang.String producer
        45: .line 804
            ldc "subtraction"
            astore 6 /* operation */
        start local 6 // java.lang.String operation
        46: .line 805
            goto 48
        end local 6 // java.lang.String operation
        end local 5 // java.lang.String producer
        47: .line 806
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 5 // java.lang.String producer
        start local 6 // java.lang.String operation
        48: .line 808
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Could not determine the field where the value produced by the "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* producer */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 809
            ldc " for the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* substitutionKind */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.kindAsString:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " computation is stored. The "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* operation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 810
            ldc " is not directly followed by a field store or by a sign extend node followed directly by a field store. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        51: .line 808
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* message */
        start local 7 // java.lang.String message
        52: .line 811
            aload 2 /* unsuccessfulReasons */
            aload 7 /* message */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        53: .line 812
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.foundIllegalUse:()Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            areturn
        end local 7 // java.lang.String message
        end local 6 // java.lang.String operation
        end local 5 // java.lang.String producer
        54: .line 816
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult.didNotFindIllegalUse:()Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
            areturn
        end local 4 // boolean illegalUseFound
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        end local 2 // java.util.List unsuccessfulReasons
        end local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        end local 0 // org.graalvm.compiler.nodes.ValueNode valueNode
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   55     0            valueNode  Lorg/graalvm/compiler/nodes/ValueNode;
            0   55     1     substitutionKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0   55     2  unsuccessfulReasons  Ljava/util/List<Ljava/lang/String;>;
            1   55     3          offsetField  Ljdk/vm/ci/meta/ResolvedJavaField;
            2   55     4      illegalUseFound  Z
            4   24     5       valueNodeUsage  Lorg/graalvm/compiler/graph/Node;
            9   19     7       signExtendNode  Lorg/graalvm/compiler/nodes/calc/SignExtendNode;
           11   18     8  signExtendNodeUsage  Lorg/graalvm/compiler/graph/Node;
           35   37     5              message  Ljava/lang/String;
           41   43     5             producer  Ljava/lang/String;
           45   47     5             producer  Ljava/lang/String;
           48   54     5             producer  Ljava/lang/String;
           42   43     6            operation  Ljava/lang/String;
           46   47     6            operation  Ljava/lang/String;
           48   54     6            operation  Ljava/lang/String;
           40   42     7           invokeNode  Lorg/graalvm/compiler/nodes/Invoke;
           52   54     7              message  Ljava/lang/String;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List<Ljava/lang/String;>;)Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor$SearchResult;
    MethodParameters:
                     Name  Flags
      valueNode            
      substitutionKind     
      unsuccessfulReasons  

  private static boolean isAllowedUnsafeValueSink(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.graph.Node valueNodeUsage
         0: .line 824
            aload 0 /* valueNodeUsage */
            instanceof org.graalvm.compiler.nodes.FrameState
            ifeq 2
         1: .line 830
            iconst_1
            ireturn
         2: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* valueNodeUsage */
            instanceof org.graalvm.compiler.nodes.java.MethodCallTargetNode
            ifeq 7
         3: .line 839
            aload 0 /* valueNodeUsage */
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 1 /* methodCallTarget */
        start local 1 // org.graalvm.compiler.nodes.java.MethodCallTargetNode methodCallTarget
         4: .line 840
            aload 1 /* methodCallTarget */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 2 /* targetMethod */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         5: .line 841
            aload 2 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.resolvedUnsafeClass:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 842
            iconst_1
            ireturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 1 // org.graalvm.compiler.nodes.java.MethodCallTargetNode methodCallTarget
         7: .line 845
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.graph.Node valueNodeUsage
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0    valueNodeUsage  Lorg/graalvm/compiler/graph/Node;
            4    7     1  methodCallTarget  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            5    7     2      targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                Name  Flags
      valueNodeUsage  

  private boolean tryAutomaticRecomputation(jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, java.util.function.Supplier<com.oracle.svm.hosted.substitute.ComputedValueField>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 2 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
        start local 3 // java.util.function.Supplier substitutionSupplier
         0: .line 853
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;)Z
            ifeq 4
         1: .line 854
            new java.lang.StringBuilder
            dup
            ldc "The field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* field */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is marked as deleted. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* conflictingSubstitution */
        start local 4 // java.lang.String conflictingSubstitution
         2: .line 855
            aload 1 /* field */
            aload 2 /* kind */
            aload 4 /* conflictingSubstitution */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportConflictingSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/String;)V
         3: .line 856
            iconst_0
            ireturn
        end local 4 // java.lang.String conflictingSubstitution
         4: .line 858
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/Optional;
            astore 4 /* annotationSubstitution */
        start local 4 // java.util.Optional annotationSubstitution
         5: .line 859
            aload 4 /* annotationSubstitution */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 24
         6: .line 861
            aload 4 /* annotationSubstitution */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            astore 5 /* substitutionField */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField substitutionField
         7: .line 862
            aload 5 /* substitutionField */
            instanceof com.oracle.svm.hosted.substitute.ComputedValueField
            ifeq 21
         8: .line 863
            aload 5 /* substitutionField */
            checkcast com.oracle.svm.hosted.substitute.ComputedValueField
            astore 6 /* computedSubstitutionField */
        start local 6 // com.oracle.svm.hosted.substitute.ComputedValueField computedSubstitutionField
         9: .line 864
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 2 /* kind */
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 865
            aload 5 /* substitutionField */
            aload 6 /* computedSubstitutionField */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportUnnecessarySubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;)V
        11: .line 866
            iconst_0
            ireturn
        12: .line 867
      StackMap locals: java.util.Optional jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.hosted.substitute.ComputedValueField
      StackMap stack:
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.equals:(Ljava/lang/Object;)Z
            ifeq 16
        13: .line 879
            aload 0 /* this */
            aload 6 /* computedSubstitutionField */
            aload 3 /* substitutionSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.substitute.ComputedValueField
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.addSubstitutionField:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;)V
        14: .line 880
            aload 5 /* substitutionField */
            aload 2 /* kind */
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getAnnotated:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportOvewrittenSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)V
        15: .line 881
            iconst_1
            ireturn
        16: .line 883
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Detected RecomputeFieldValue."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        17: .line 884
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getAnnotated:()Ljdk/vm/ci/meta/ResolvedJavaField;
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution field. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 883
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* conflictingSubstitution */
        start local 7 // java.lang.String conflictingSubstitution
        19: .line 885
            aload 5 /* substitutionField */
            aload 2 /* kind */
            aload 7 /* conflictingSubstitution */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportConflictingSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/String;)V
        20: .line 886
            iconst_0
            ireturn
        end local 7 // java.lang.String conflictingSubstitution
        end local 6 // com.oracle.svm.hosted.substitute.ComputedValueField computedSubstitutionField
        21: .line 889
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Detected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* substitutionField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution field. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* conflictingSubstitution */
        start local 6 // java.lang.String conflictingSubstitution
        22: .line 890
            aload 5 /* substitutionField */
            aload 2 /* kind */
            aload 6 /* conflictingSubstitution */
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.reportConflictingSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/String;)V
        23: .line 891
            iconst_0
            ireturn
        end local 6 // java.lang.String conflictingSubstitution
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField substitutionField
        24: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* field */
            aload 3 /* substitutionSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.substitute.ComputedValueField
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.addSubstitutionField:(Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;)V
        25: .line 896
            iconst_1
            ireturn
        end local 4 // java.util.Optional annotationSubstitution
        end local 3 // java.util.function.Supplier substitutionSupplier
        end local 2 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   26     0                       this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   26     1                      field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   26     2                       kind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0   26     3       substitutionSupplier  Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;
            2    4     4    conflictingSubstitution  Ljava/lang/String;
            5   26     4     annotationSubstitution  Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaField;>;
            7   24     5          substitutionField  Ljdk/vm/ci/meta/ResolvedJavaField;
            9   21     6  computedSubstitutionField  Lcom/oracle/svm/hosted/substitute/ComputedValueField;
           19   21     7    conflictingSubstitution  Ljava/lang/String;
           22   24     6    conflictingSubstitution  Ljava/lang/String;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/function/Supplier<Lcom/oracle/svm/hosted/substitute/ComputedValueField;>;)Z
    MethodParameters:
                      Name  Flags
      field                 
      kind                  
      substitutionSupplier  

  private static void reportSkippedSubstitution(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 902
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_3
            if_icmplt 5
         1: .line 903
            new java.lang.StringBuilder
            dup
            ldc "Warning: Skipped automatic unsafe substitutions analysis for type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 904
            ldc ". The entire type is substituted, therefore its class initializer is eliminated."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 903
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         4: .line 905
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 1 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 1 // java.lang.String msg
         5: .line 907
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.vm.ci.meta.ResolvedJavaType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  type  Ljdk/vm/ci/meta/ResolvedJavaType;
            4    5     1   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void reportUnnecessarySubstitution(jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.hosted.substitute.ComputedValueField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/hosted/substitute/ComputedValueField;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        start local 1 // com.oracle.svm.hosted.substitute.ComputedValueField computedSubstitutionField
         0: .line 910
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmplt 9
         1: .line 911
            aload 1 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            astore 2 /* kind */
        start local 2 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
         2: .line 912
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* kindStr */
        start local 3 // java.lang.String kindStr
         3: .line 913
            aload 1 /* computedSubstitutionField */
            invokevirtual com.oracle.svm.hosted.substitute.ComputedValueField.getAnnotated:()Ljdk/vm/ci/meta/ResolvedJavaField;
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* annotatedFieldStr */
        start local 4 // java.lang.String annotatedFieldStr
         4: .line 914
            aload 0 /* offsetField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* offsetFieldStr */
        start local 5 // java.lang.String offsetFieldStr
         5: .line 916
            new java.lang.StringBuilder
            dup
            ldc "Warning: Detected unnecessary "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* annotatedFieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution field for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* offsetFieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         6: .line 917
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "The annotated field can be removed. This "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " computation can be detected automatically. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
         7: .line 918
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Use option -H:+"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iconst_2
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " to print all automatically detected substitutions. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
         8: .line 920
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 6 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // java.lang.String msg
        end local 5 // java.lang.String offsetFieldStr
        end local 4 // java.lang.String annotatedFieldStr
        end local 3 // java.lang.String kindStr
        end local 2 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
         9: .line 922
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.svm.hosted.substitute.ComputedValueField computedSubstitutionField
        end local 0 // jdk.vm.ci.meta.ResolvedJavaField offsetField
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   10     0                offsetField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   10     1  computedSubstitutionField  Lcom/oracle/svm/hosted/substitute/ComputedValueField;
            2    9     2                       kind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            3    9     3                    kindStr  Ljava/lang/String;
            4    9     4          annotatedFieldStr  Ljava/lang/String;
            5    9     5             offsetFieldStr  Ljava/lang/String;
            6    9     6                        msg  Ljava/lang/String;
    MethodParameters:
                           Name  Flags
      offsetField                
      computedSubstitutionField  

  private static void reportSuccessfulAutomaticRecomputation(com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, jdk.vm.ci.meta.ResolvedJavaField, java.lang.String);
    descriptor: (Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField substitutedField
        start local 2 // java.lang.String target
         0: .line 925
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmplt 5
         1: .line 926
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* substitutionKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* substitutionKindStr */
        start local 3 // java.lang.String substitutionKindStr
         2: .line 927
            aload 1 /* substitutedField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* substitutedFieldStr */
        start local 4 // java.lang.String substitutedFieldStr
         3: .line 929
            new java.lang.StringBuilder
            dup
            ldc "Info:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* substitutionKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution automatically registered for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* substitutedFieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", target element "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         4: .line 930
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 5 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String msg
        end local 4 // java.lang.String substitutedFieldStr
        end local 3 // java.lang.String substitutionKindStr
         5: .line 932
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String target
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField substitutedField
        end local 0 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0     substitutionKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0    6     1     substitutedField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    6     2               target  Ljava/lang/String;
            2    5     3  substitutionKindStr  Ljava/lang/String;
            3    5     4  substitutedFieldStr  Ljava/lang/String;
            4    5     5                  msg  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      substitutionKind  
      substitutedField  
      target            

  private static void reportOvewrittenSubstitution(jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // jdk.vm.ci.meta.ResolvedJavaField offsetField
        start local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind newKind
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField overwrittenField
        start local 3 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind overwrittenKind
         0: .line 935
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_2
            if_icmplt 8
         1: .line 936
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* newKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* newKindStr */
        start local 4 // java.lang.String newKindStr
         2: .line 937
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* overwrittenKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* overwrittenKindStr */
        start local 5 // java.lang.String overwrittenKindStr
         3: .line 938
            aload 0 /* offsetField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* offsetFieldStr */
        start local 6 // java.lang.String offsetFieldStr
         4: .line 939
            aload 2 /* overwrittenField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* overwrittenFieldStr */
        start local 7 // java.lang.String overwrittenFieldStr
         5: .line 941
            new java.lang.StringBuilder
            dup
            ldc "Info: The "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* overwrittenKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* overwrittenFieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution was overwritten. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
         6: .line 942
            new java.lang.StringBuilder
            dup
            aload 8 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "A "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* newKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* offsetFieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was automatically registered."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* msg */
         7: .line 944
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 8 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String msg
        end local 7 // java.lang.String overwrittenFieldStr
        end local 6 // java.lang.String offsetFieldStr
        end local 5 // java.lang.String overwrittenKindStr
        end local 4 // java.lang.String newKindStr
         8: .line 946
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind overwrittenKind
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField overwrittenField
        end local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind newKind
        end local 0 // jdk.vm.ci.meta.ResolvedJavaField offsetField
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0          offsetField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    9     1              newKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0    9     2     overwrittenField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    9     3      overwrittenKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            2    8     4           newKindStr  Ljava/lang/String;
            3    8     5   overwrittenKindStr  Ljava/lang/String;
            4    8     6       offsetFieldStr  Ljava/lang/String;
            5    8     7  overwrittenFieldStr  Ljava/lang/String;
            6    8     8                  msg  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      offsetField       
      newKind           
      overwrittenField  
      overwrittenKind   

  private static void reportConflictingSubstitution(jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, java.lang.String);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        start local 2 // java.lang.String conflictingSubstitution
         0: .line 949
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmplt 7
         1: .line 950
            aload 0 /* field */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* fieldStr */
        start local 3 // java.lang.String fieldStr
         2: .line 951
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* substitutionKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* substitutionKindStr */
        start local 4 // java.lang.String substitutionKindStr
         3: .line 953
            new java.lang.StringBuilder
            dup
            ldc "Warning: The "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* substitutionKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " substitution for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* fieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " could not be recomputed automatically because a conflicting substitution was detected. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         4: .line 954
            new java.lang.StringBuilder
            dup
            aload 5 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Conflicting substitution: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* conflictingSubstitution */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
         5: .line 955
            new java.lang.StringBuilder
            dup
            aload 5 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Add a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* substitutionKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " manual substitution for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* fieldStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
         6: .line 957
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 5 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String msg
        end local 4 // java.lang.String substitutionKindStr
        end local 3 // java.lang.String fieldStr
         7: .line 959
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String conflictingSubstitution
        end local 1 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        end local 0 // jdk.vm.ci.meta.ResolvedJavaField field
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                    field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    8     1         substitutionKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0    8     2  conflictingSubstitution  Ljava/lang/String;
            2    7     3                 fieldStr  Ljava/lang/String;
            3    7     4      substitutionKindStr  Ljava/lang/String;
            4    7     5                      msg  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      field                    
      substitutionKind         
      conflictingSubstitution  

  private void reportUnsuccessfulAutomaticRecomputation(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaField, org.graalvm.compiler.nodes.Invoke, com.oracle.svm.core.annotate.RecomputeFieldValue$Kind, java.util.List<java.lang.String>);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField computedField
        start local 3 // org.graalvm.compiler.nodes.Invoke invoke
        start local 4 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        start local 5 // java.util.List reasons
         0: .line 962
            ldc ""
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         1: .line 963
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmplt 15
         2: .line 964
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.suppressWarningsFor:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 3
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_3
            if_icmplt 15
         3: .line 965
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* substitutionKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* substitutionKindStr */
        start local 7 // java.lang.String substitutionKindStr
         4: .line 966
            aload 3 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* invokeStr */
        start local 8 // java.lang.String invokeStr
         5: .line 968
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* substitutionKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " automatic substitution failed. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
         6: .line 969
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "The automatic substitution registration was attempted because "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
         7: .line 970
            aload 4 /* substitutionKind */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            if_acmpne 10
         8: .line 971
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "an "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " computation followed by a call to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* invokeStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
         9: .line 972
            goto 11
        10: .line 973
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "a call to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* invokeStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        11: .line 975
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "was detected in the static initializer of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        12: .line 976
            aload 2 /* computedField */
            ifnull 14
        13: .line 978
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Add a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* substitutionKindStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " manual substitution for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* computedField */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        14: .line 980
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Detailed failure reason(s): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* reasons */
            invokeinterface java.util.List.stream:()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;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        end local 8 // java.lang.String invokeStr
        end local 7 // java.lang.String substitutionKindStr
        15: .line 984
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options.UnsafeAutomaticSubstitutionsLogLevel:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_3
            if_icmplt 27
        16: .line 985
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.suppressWarningsFor:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 27
        17: .line 986
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "(This warning is suppressed by default because this type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        18: .line 987
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.warningsAreWhiteListed:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 21
        19: .line 988
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "is manually added to a white list"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        20: .line 989
            goto 26
      StackMap locals:
      StackMap stack:
        21: aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isAliased:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 24
        22: .line 990
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "is aliased"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        23: .line 991
            goto 26
        24: .line 992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.findSubstitutionType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 7 /* substitutionType */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType substitutionType
        25: .line 993
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "is substituted by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* substitutionType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType substitutionType
        26: .line 995
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        27: .line 999
      StackMap locals:
      StackMap stack:
            aload 6 /* msg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 29
        28: .line 1000
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Warning: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* msg */
            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
        29: .line 1002
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.lang.String msg
        end local 5 // java.util.List reasons
        end local 4 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
        end local 3 // org.graalvm.compiler.nodes.Invoke invoke
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField computedField
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   30     0                 this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   30     1                 type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   30     2        computedField  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   30     3               invoke  Lorg/graalvm/compiler/nodes/Invoke;
            0   30     4     substitutionKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            0   30     5              reasons  Ljava/util/List<Ljava/lang/String;>;
            1   30     6                  msg  Ljava/lang/String;
            4   15     7  substitutionKindStr  Ljava/lang/String;
            5   15     8            invokeStr  Ljava/lang/String;
           25   26     7     substitutionType  Ljdk/vm/ci/meta/ResolvedJavaType;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/nodes/Invoke;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                  Name  Flags
      type              
      computedField     
      invoke            
      substitutionKind  
      reasons           

  private static java.lang.String kindAsString(com.oracle.svm.core.annotate.RecomputeFieldValue$Kind);
    descriptor: (Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
         0: .line 1005
            invokestatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:()[I
            aload 0 /* substitutionKind */
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iaload
            tableswitch { // 5 - 8
                    5: 1
                    6: 2
                    7: 3
                    8: 4
              default: 5
          }
         1: .line 1007
      StackMap locals:
      StackMap stack:
            ldc "field offset"
            areturn
         2: .line 1009
      StackMap locals:
      StackMap stack:
            ldc "array base offset"
            areturn
         3: .line 1011
      StackMap locals:
      StackMap stack:
            ldc "array index scale"
            areturn
         4: .line 1013
      StackMap locals:
      StackMap stack:
            ldc "array index shift"
            areturn
         5: .line 1015
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unexpected substitution kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* substitutionKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 0 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind substitutionKind
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0  substitutionKind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
    MethodParameters:
                  Name  Flags
      substitutionKind  

  private boolean suppressWarningsFor(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 1020
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.warningsAreWhiteListed:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifne 1
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.isAliased:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifne 1
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.findSubstitutionType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    2     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  private boolean warningsAreWhiteListed(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 1024
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.suppressWarnings:Ljava/util/List;
            aload 1 /* type */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    1     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  private jdk.vm.ci.meta.ResolvedJavaType findSubstitutionType(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 1028
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional;
            astore 2 /* substTypeOptional */
        start local 2 // java.util.Optional substTypeOptional
         1: .line 1029
            aload 2 /* substTypeOptional */
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            areturn
        end local 2 // java.util.Optional substTypeOptional
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    2     1               type  Ljdk/vm/ci/meta/ResolvedJavaType;
            1    2     2  substTypeOptional  Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaType;>;
    MethodParameters:
      Name  Flags
      type  

  private boolean isAliased(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 1033
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.annotationSubstitutions:Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            aload 1 /* type */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isAliased:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0    1     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  private org.graalvm.compiler.nodes.StructuredGraph getStaticInitializerGraph(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.debug.DebugContext);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
        start local 2 // org.graalvm.compiler.options.OptionValues options
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         0: .line 1037
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$assertionsDisabled:Z
            ifne 1
            aload 1 /* clinit */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.hasBytecodes:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1039
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.nodes.StructuredGraph$Builder
            dup
            aload 2 /* options */
            aload 3 /* debug */
            invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)V
            aload 1 /* clinit */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 1040
            new org.graalvm.compiler.phases.tiers.HighTierContext
            dup
            invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            aconst_null
            getstatic org.graalvm.compiler.phases.OptimisticOptimizations.NONE:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
            invokespecial org.graalvm.compiler.phases.tiers.HighTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/PhaseSuite;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
            astore 5 /* context */
        start local 5 // org.graalvm.compiler.phases.tiers.HighTierContext context
         3: .line 1041
            aload 4 /* graph */
            getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.FIXED_DEOPTS:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
         4: .line 1043
            new com.oracle.svm.hosted.classinitialization.ClassInitializerGraphBuilderPhase
            dup
            aload 5 /* context */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.plugins:Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withEagerResolving:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
         5: .line 1044
            aload 5 /* context */
            invokevirtual org.graalvm.compiler.phases.tiers.HighTierContext.getOptimisticOptimizations:()Lorg/graalvm/compiler/phases/OptimisticOptimizations;
         6: .line 1043
            invokespecial com.oracle.svm.hosted.classinitialization.ClassInitializerGraphBuilderPhase.<init>:(Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
            astore 6 /* builderPhase */
        start local 6 // org.graalvm.compiler.java.GraphBuilderPhase$Instance builderPhase
         7: .line 1045
            aload 6 /* builderPhase */
            aload 4 /* graph */
            aload 5 /* context */
            invokevirtual org.graalvm.compiler.java.GraphBuilderPhase$Instance.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
         8: .line 1051
            aload 4 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/InvokeWithExceptionNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.HighTierContext org.graalvm.compiler.java.GraphBuilderPhase$Instance top java.util.Iterator
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.InvokeWithExceptionNode
            astore 7 /* invoke */
        start local 7 // org.graalvm.compiler.nodes.InvokeWithExceptionNode invoke
        10: .line 1052
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.noCheckedExceptionsSet:Ljava/util/HashSet;
            aload 7 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.InvokeWithExceptionNode.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1053
            aload 7 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.InvokeWithExceptionNode.replaceWithInvoke:()Lorg/graalvm/compiler/nodes/InvokeNode;
            pop
        end local 7 // org.graalvm.compiler.nodes.InvokeWithExceptionNode invoke
        12: .line 1051
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 1057
            invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.createWithoutReadCanonicalization:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            aload 4 /* graph */
            aload 5 /* context */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
        14: .line 1059
            aload 4 /* graph */
            areturn
        end local 6 // org.graalvm.compiler.java.GraphBuilderPhase$Instance builderPhase
        end local 5 // org.graalvm.compiler.phases.tiers.HighTierContext context
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // org.graalvm.compiler.options.OptionValues options
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
        end local 0 // com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lcom/oracle/svm/hosted/substitute/UnsafeAutomaticSubstitutionProcessor;
            0   15     1        clinit  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   15     2       options  Lorg/graalvm/compiler/options/OptionValues;
            0   15     3         debug  Lorg/graalvm/compiler/debug/DebugContext;
            2   15     4         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3   15     5       context  Lorg/graalvm/compiler/phases/tiers/HighTierContext;
            7   15     6  builderPhase  Lorg/graalvm/compiler/java/GraphBuilderPhase$Instance;
           10   12     7        invoke  Lorg/graalvm/compiler/nodes/InvokeWithExceptionNode;
    MethodParameters:
         Name  Flags
      clinit   
      options  
      debug    

  private static boolean isInvokeTo(org.graalvm.compiler.nodes.Invoke, jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Lorg/graalvm/compiler/nodes/Invoke;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.Invoke invoke
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 1063
            aload 1 /* method */
            ifnonnull 2
         1: .line 1064
            iconst_0
            ireturn
         2: .line 1066
      StackMap locals:
      StackMap stack:
            aload 0 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 2 /* targetMethod */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         3: .line 1067
            aload 1 /* method */
            aload 2 /* targetMethod */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.nodes.Invoke invoke
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0        invoke  Lorg/graalvm/compiler/nodes/Invoke;
            0    4     1        method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            3    4     2  targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
        Name  Flags
      invoke  
      method  

  static int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 113
            getstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.values:()[Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 7
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.AtomicFieldUpdaterOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Custom:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FromAlias:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Manual:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 11
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.NewInstance:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_1
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Reset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_2
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.TranslateFieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 10
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            dup
            putstatic com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError

  private static com.oracle.svm.hosted.substitute.ComputedValueField lambda$0(jdk.vm.ci.meta.ResolvedJavaField, java.lang.Class, java.lang.String);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;Ljava/lang/String;)Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=3, args_size=3
         0: .line 466
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 0
            aconst_null
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 1
            aload 2
            iconst_0
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.oracle.svm.hosted.substitute.ComputedValueField lambda$1(jdk.vm.ci.meta.ResolvedJavaField, java.lang.Class);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=2, args_size=2
         0: .line 504
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 0
            aconst_null
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 1
            aconst_null
            iconst_1
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.oracle.svm.hosted.substitute.ComputedValueField lambda$2(jdk.vm.ci.meta.ResolvedJavaField, java.lang.Class);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=2, args_size=2
         0: .line 549
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 0
            aconst_null
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 1
            aconst_null
            iconst_1
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.oracle.svm.hosted.substitute.ComputedValueField lambda$3(jdk.vm.ci.meta.ResolvedJavaField, java.lang.Class);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/Class;)Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=8, locals=2, args_size=2
         0: .line 665
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 0
            aconst_null
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 1
            aconst_null
            iconst_1
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "UnsafeAutomaticSubstitutionProcessor.java"
NestMembers:
  com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options  com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult  com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin
InnerClasses:
  public final Kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind of com.oracle.svm.core.annotate.RecomputeFieldValue
  public DuringAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  Options = com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$Options of com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor
  final SearchResult = com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$SearchResult of com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor
  StaticInitializerInlineInvokePlugin = com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor$StaticInitializerInlineInvokePlugin of com.oracle.svm.hosted.substitute.UnsafeAutomaticSubstitutionProcessor
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Builder = org.graalvm.compiler.debug.DebugContext$Builder of org.graalvm.compiler.debug.DebugContext
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Instance = org.graalvm.compiler.java.GraphBuilderPhase$Instance of org.graalvm.compiler.java.GraphBuilderPhase
  public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration