public final class org.graalvm.compiler.nodes.java.LoadFieldNode extends org.graalvm.compiler.nodes.java.AccessFieldNode implements org.graalvm.compiler.graph.spi.Canonicalizable$Unary<org.graalvm.compiler.nodes.ValueNode>, org.graalvm.compiler.nodes.spi.Virtualizable, org.graalvm.compiler.nodes.spi.UncheckedInterfaceProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.nodes.java.LoadFieldNode
  super_class: org.graalvm.compiler.nodes.java.AccessFieldNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.java.LoadFieldNode> TYPE;
    descriptor: Lorg/graalvm/compiler/graph/NodeClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/java/LoadFieldNode;>;

  private final org.graalvm.compiler.core.common.type.Stamp uncheckedStamp;
    descriptor: Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 67
            ldc Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            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 org.graalvm.compiler.nodes.java.LoadFieldNode.$assertionsDisabled:Z
         3: .line 69
            ldc Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.nodes.java.LoadFieldNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        start local 2 // org.graalvm.compiler.nodes.ValueNode object
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 74
            aload 0 /* this */
            aload 1 /* stamp */
            aload 2 /* object */
            aload 3 /* field */
            aload 3 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isVolatile:()Z
            invokespecial org.graalvm.compiler.nodes.java.LoadFieldNode.<init>:(Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
         1: .line 75
            return
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 2 // org.graalvm.compiler.nodes.ValueNode object
        end local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    2     1   stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    2     2  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3   field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
        Name  Flags
      stamp   
      object  
      field   

  protected void <init>(org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, boolean);
    descriptor: (Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        start local 2 // org.graalvm.compiler.nodes.ValueNode object
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 4 // boolean volatileAccess
         0: .line 78
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.java.LoadFieldNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 2 /* object */
            aload 3 /* field */
            iload 4 /* volatileAccess */
            invokespecial org.graalvm.compiler.nodes.java.AccessFieldNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
         1: .line 79
            aload 0 /* this */
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getUncheckedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            putfield org.graalvm.compiler.nodes.java.LoadFieldNode.uncheckedStamp:Lorg/graalvm/compiler/core/common/type/Stamp;
         2: .line 80
            return
        end local 4 // boolean volatileAccess
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 2 // org.graalvm.compiler.nodes.ValueNode object
        end local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    3     1           stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    3     2          object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3           field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    3     4  volatileAccess  Z
    MethodParameters:
                Name  Flags
      stamp           
      object          
      field           
      volatileAccess  

  public static org.graalvm.compiler.nodes.java.LoadFieldNode create(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 83
            aload 0 /* assumptions */
            aload 1 /* object */
            aload 2 /* field */
            aload 2 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isVolatile:()Z
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.create:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            areturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    1     1       object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2        field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
             Name  Flags
      assumptions  
      object       
      field        

  public static org.graalvm.compiler.nodes.java.LoadFieldNode create(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, boolean);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 3 // boolean volatileAccess
         0: .line 87
            new org.graalvm.compiler.nodes.java.LoadFieldNode
            dup
            aload 0 /* assumptions */
            aload 2 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            iconst_0
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forDeclaredType:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/JavaType;Z)Lorg/graalvm/compiler/core/common/type/StampPair;
            aload 1 /* object */
            aload 2 /* field */
            iload 3 /* volatileAccess */
            invokespecial org.graalvm.compiler.nodes.java.LoadFieldNode.<init>:(Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
            areturn
        end local 3 // boolean volatileAccess
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0     assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    1     1          object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2           field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    1     3  volatileAccess  Z
    MethodParameters:
                Name  Flags
      assumptions     
      object          
      field           
      volatileAccess  

  public static org.graalvm.compiler.nodes.ValueNode create(org.graalvm.compiler.core.common.spi.ConstantFieldProvider, jdk.vm.ci.meta.ConstantReflectionProvider, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.options.OptionValues, jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=9, args_size=9
        start local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        start local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // org.graalvm.compiler.options.OptionValues options
        start local 4 // jdk.vm.ci.meta.Assumptions assumptions
        start local 5 // org.graalvm.compiler.nodes.ValueNode object
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 7 // boolean canonicalizeReads
        start local 8 // boolean allUsagesAvailable
         0: .line 92
            aconst_null
            aload 4 /* assumptions */
            aload 6 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            iconst_0
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forDeclaredType:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/JavaType;Z)Lorg/graalvm/compiler/core/common/type/StampPair;
            aload 5 /* object */
         1: .line 93
            aload 6 /* field */
            aload 0 /* constantFields */
            aload 1 /* constantReflection */
            aload 3 /* options */
            aload 2 /* metaAccess */
            iload 7 /* canonicalizeReads */
            iload 8 /* allUsagesAvailable */
         2: .line 92
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.canonical:(Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/meta/MetaAccessProvider;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 8 // boolean allUsagesAvailable
        end local 7 // boolean canonicalizeReads
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 5 // org.graalvm.compiler.nodes.ValueNode object
        end local 4 // jdk.vm.ci.meta.Assumptions assumptions
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0      constantFields  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0    3     1  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0    3     2          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    3     3             options  Lorg/graalvm/compiler/options/OptionValues;
            0    3     4         assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    3     5              object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     6               field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    3     7   canonicalizeReads  Z
            0    3     8  allUsagesAvailable  Z
    MethodParameters:
                    Name  Flags
      constantFields      
      constantReflection  
      metaAccess          
      options             
      assumptions         
      object              
      field               
      canonicalizeReads   
      allUsagesAvailable  

  public static org.graalvm.compiler.nodes.java.LoadFieldNode createOverrideStamp(org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.core.common.type.StampPair stamp
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 97
            new org.graalvm.compiler.nodes.java.LoadFieldNode
            dup
            aload 0 /* stamp */
            aload 1 /* object */
            aload 2 /* field */
            invokespecial org.graalvm.compiler.nodes.java.LoadFieldNode.<init>:(Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)V
            areturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // org.graalvm.compiler.core.common.type.StampPair stamp
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    1     1  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2   field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
        Name  Flags
      stamp   
      object  
      field   

  public static org.graalvm.compiler.nodes.ValueNode createOverrideStamp(org.graalvm.compiler.core.common.spi.ConstantFieldProvider, jdk.vm.ci.meta.ConstantReflectionProvider, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=9, args_size=9
        start local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        start local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // org.graalvm.compiler.options.OptionValues options
        start local 4 // org.graalvm.compiler.core.common.type.StampPair stamp
        start local 5 // org.graalvm.compiler.nodes.ValueNode object
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 7 // boolean canonicalizeReads
        start local 8 // boolean allUsagesAvailable
         0: .line 102
            aconst_null
            aload 4 /* stamp */
            aload 5 /* object */
            aload 6 /* field */
            aload 0 /* constantFields */
            aload 1 /* constantReflection */
            aload 3 /* options */
            aload 2 /* metaAccess */
            iload 7 /* canonicalizeReads */
            iload 8 /* allUsagesAvailable */
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.canonical:(Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/meta/MetaAccessProvider;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 8 // boolean allUsagesAvailable
        end local 7 // boolean canonicalizeReads
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 5 // org.graalvm.compiler.nodes.ValueNode object
        end local 4 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0      constantFields  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0    1     1  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0    1     2          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    1     3             options  Lorg/graalvm/compiler/options/OptionValues;
            0    1     4               stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    1     5              object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     6               field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    1     7   canonicalizeReads  Z
            0    1     8  allUsagesAvailable  Z
    MethodParameters:
                    Name  Flags
      constantFields      
      constantReflection  
      metaAccess          
      options             
      stamp               
      object              
      field               
      canonicalizeReads   
      allUsagesAvailable  

  public org.graalvm.compiler.nodes.ValueNode getValue();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
         0: .line 107
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;

  public org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // org.graalvm.compiler.nodes.ValueNode forObject
         0: .line 112
            aload 1 /* tool */
            invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
            astore 3 /* view */
        start local 3 // org.graalvm.compiler.nodes.NodeView view
         1: .line 113
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.allUsagesAvailable:()Z
            ifeq 3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.hasNoUsages:()Z
            ifeq 3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.isVolatile:()Z
            ifne 3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.isStatic:()Z
            ifne 2
            aload 2 /* forObject */
            aload 3 /* view */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerNonNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifeq 3
         2: .line 114
      StackMap locals: org.graalvm.compiler.nodes.NodeView
      StackMap stack:
            aconst_null
            areturn
         3: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.uncheckedStamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.core.common.type.StampPair.create:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/StampPair;
            aload 2 /* forObject */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.field:Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
         4: .line 117
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.canonicalizeReads:()Z
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.allUsagesAvailable:()Z
         5: .line 116
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.canonical:(Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/meta/MetaAccessProvider;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.NodeView view
        end local 2 // org.graalvm.compiler.nodes.ValueNode forObject
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    6     1       tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0    6     2  forObject  Lorg/graalvm/compiler/nodes/ValueNode;
            1    6     3       view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
           Name  Flags
      tool       
      forObject  

  private static org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.nodes.java.LoadFieldNode, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, org.graalvm.compiler.core.common.spi.ConstantFieldProvider, jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.options.OptionValues, jdk.vm.ci.meta.MetaAccessProvider, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/java/LoadFieldNode;Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/meta/MetaAccessProvider;ZZ)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=10
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode loadFieldNode
        start local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        start local 2 // org.graalvm.compiler.nodes.ValueNode forObject
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 4 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        start local 5 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 6 // org.graalvm.compiler.options.OptionValues options
        start local 7 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 8 // boolean canonicalizeReads
        start local 9 // boolean allUsagesAvailable
         0: .line 123
            aload 0 /* loadFieldNode */
            astore 10 /* self */
        start local 10 // org.graalvm.compiler.nodes.java.LoadFieldNode self
         1: .line 124
            iload 8 /* canonicalizeReads */
            ifeq 11
            aload 7 /* metaAccess */
            ifnull 11
         2: .line 125
            aload 4 /* constantFields */
            aload 5 /* constantReflection */
            aload 7 /* metaAccess */
            aload 6 /* options */
            aload 2 /* forObject */
            aload 3 /* field */
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.asConstant:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 11 /* constant */
        start local 11 // org.graalvm.compiler.nodes.ConstantNode constant
         3: .line 126
            aload 11 /* constant */
            ifnull 5
         4: .line 127
            aload 11 /* constant */
            areturn
         5: .line 129
      StackMap locals: org.graalvm.compiler.nodes.java.LoadFieldNode org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            iload 9 /* allUsagesAvailable */
            ifeq 11
         6: .line 130
            aload 4 /* constantFields */
            aload 5 /* constantReflection */
            aload 7 /* metaAccess */
            aload 6 /* options */
            aload 2 /* forObject */
         7: .line 131
            aload 3 /* field */
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
         8: .line 130
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.asPhi:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
            astore 12 /* phi */
        start local 12 // org.graalvm.compiler.nodes.PhiNode phi
         9: .line 132
            aload 12 /* phi */
            ifnull 11
        10: .line 133
            aload 12 /* phi */
            areturn
        end local 12 // org.graalvm.compiler.nodes.PhiNode phi
        end local 11 // org.graalvm.compiler.nodes.ConstantNode constant
        11: .line 137
      StackMap locals:
      StackMap stack:
            aload 10 /* self */
            ifnull 13
            aload 3 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifne 13
            aload 2 /* forObject */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
            ifeq 13
        12: .line 138
            new org.graalvm.compiler.nodes.DeoptimizeNode
            dup
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
            getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
            invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
            areturn
        13: .line 140
      StackMap locals:
      StackMap stack:
            aload 10 /* self */
            ifnonnull 15
        14: .line 141
            new org.graalvm.compiler.nodes.java.LoadFieldNode
            dup
            aload 1 /* stamp */
            aload 2 /* forObject */
            aload 3 /* field */
            invokespecial org.graalvm.compiler.nodes.java.LoadFieldNode.<init>:(Lorg/graalvm/compiler/core/common/type/StampPair;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)V
            astore 10 /* self */
        15: .line 143
      StackMap locals:
      StackMap stack:
            aload 10 /* self */
            areturn
        end local 10 // org.graalvm.compiler.nodes.java.LoadFieldNode self
        end local 9 // boolean allUsagesAvailable
        end local 8 // boolean canonicalizeReads
        end local 7 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 6 // org.graalvm.compiler.options.OptionValues options
        end local 5 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 4 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 2 // org.graalvm.compiler.nodes.ValueNode forObject
        end local 1 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode loadFieldNode
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0       loadFieldNode  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0   16     1               stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0   16     2           forObject  Lorg/graalvm/compiler/nodes/ValueNode;
            0   16     3               field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   16     4      constantFields  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0   16     5  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0   16     6             options  Lorg/graalvm/compiler/options/OptionValues;
            0   16     7          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   16     8   canonicalizeReads  Z
            0   16     9  allUsagesAvailable  Z
            1   16    10                self  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            3   11    11            constant  Lorg/graalvm/compiler/nodes/ConstantNode;
            9   11    12                 phi  Lorg/graalvm/compiler/nodes/PhiNode;
    MethodParameters:
                    Name  Flags
      loadFieldNode       
      stamp               
      forObject           
      field               
      constantFields      
      constantReflection  
      options             
      metaAccess          
      canonicalizeReads   
      allUsagesAvailable  

  public org.graalvm.compiler.nodes.ConstantNode asConstant(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // org.graalvm.compiler.nodes.ValueNode forObject
         0: .line 150
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
         1: .line 151
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            aload 2 /* forObject */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.field:Ljdk/vm/ci/meta/ResolvedJavaField;
         2: .line 150
            invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.asConstant:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode forObject
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    3     1       tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0    3     2  forObject  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
           Name  Flags
      tool       
      forObject  

  private static org.graalvm.compiler.nodes.ConstantNode asConstant(org.graalvm.compiler.core.common.spi.ConstantFieldProvider, jdk.vm.ci.meta.ConstantReflectionProvider, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        start local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // org.graalvm.compiler.options.OptionValues options
        start local 4 // org.graalvm.compiler.nodes.ValueNode forObject
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 156
            aload 5 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifeq 2
         1: .line 157
            aload 0 /* constantFields */
            aload 1 /* constantReflection */
            aload 2 /* metaAccess */
            aload 5 /* field */
            aconst_null
            aload 3 /* options */
            invokestatic org.graalvm.compiler.nodes.util.ConstantFoldUtil.tryConstantFold:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
         2: .line 158
      StackMap locals:
      StackMap stack:
            aload 4 /* forObject */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 4
            aload 4 /* forObject */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
            ifne 4
         3: .line 159
            aload 0 /* constantFields */
            aload 1 /* constantReflection */
            aload 2 /* metaAccess */
            aload 5 /* field */
            aload 4 /* forObject */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            aload 3 /* options */
            invokestatic org.graalvm.compiler.nodes.util.ConstantFoldUtil.tryConstantFold:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
         4: .line 161
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 4 // org.graalvm.compiler.nodes.ValueNode forObject
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0      constantFields  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0    5     1  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0    5     2          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    5     3             options  Lorg/graalvm/compiler/options/OptionValues;
            0    5     4           forObject  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     5               field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
                    Name  Flags
      constantFields      
      constantReflection  
      metaAccess          
      options             
      forObject           
      field               

  public org.graalvm.compiler.nodes.ConstantNode asConstant(org.graalvm.compiler.graph.spi.CanonicalizerTool, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Ljdk/vm/ci/meta/JavaConstant;)Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 165
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantFieldProvider:()Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 2 /* constant */
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.nodes.util.ConstantFoldUtil.tryConstantFold:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaConstant constant
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    1     1      tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0    1     2  constant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
          Name  Flags
      tool      
      constant  

  private static org.graalvm.compiler.nodes.PhiNode asPhi(org.graalvm.compiler.core.common.spi.ConstantFieldProvider, jdk.vm.ci.meta.ConstantReflectionProvider, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.options.OptionValues, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaField, org.graalvm.compiler.core.common.type.Stamp);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=7
        start local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
        start local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAcccess
        start local 3 // org.graalvm.compiler.options.OptionValues options
        start local 4 // org.graalvm.compiler.nodes.ValueNode forObject
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 6 // org.graalvm.compiler.core.common.type.Stamp stamp
         0: .line 170
            aload 5 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifne 14
            aload 5 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 14
            aload 4 /* forObject */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 14
            aload 4 /* forObject */
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.values:()Lorg/graalvm/compiler/graph/NodeInputList;
            ldc Lorg/graalvm/compiler/nodes/ConstantNode;
            invokestatic org.graalvm.compiler.graph.iterators.NodePredicates.isNotA:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodePredicates$NegativeTypePredicate;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
            invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.isEmpty:()Z
            ifeq 14
         1: .line 171
            aload 4 /* forObject */
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 7 /* phi */
        start local 7 // org.graalvm.compiler.nodes.PhiNode phi
         2: .line 172
            aload 7 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
            anewarray org.graalvm.compiler.nodes.ConstantNode
            astore 8 /* constantNodes */
        start local 8 // org.graalvm.compiler.nodes.ConstantNode[] constantNodes
         3: .line 173
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         4: goto 12
         5: .line 174
      StackMap locals: org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.ConstantNode[] int
      StackMap stack:
            aload 0 /* constantFields */
            aload 1 /* constantReflection */
            aload 2 /* metaAcccess */
            aload 5 /* field */
            aload 7 /* phi */
            iload 9 /* i */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
         6: .line 175
            aload 3 /* options */
         7: .line 174
            invokestatic org.graalvm.compiler.nodes.util.ConstantFoldUtil.tryConstantFold:(Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 10 /* constant */
        start local 10 // org.graalvm.compiler.nodes.ConstantNode constant
         8: .line 176
            aload 10 /* constant */
            ifnonnull 10
         9: .line 177
            aconst_null
            areturn
        10: .line 179
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 8 /* constantNodes */
            iload 9 /* i */
            aload 10 /* constant */
            aastore
        end local 10 // org.graalvm.compiler.nodes.ConstantNode constant
        11: .line 173
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 9 /* i */
            aload 7 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueCount:()I
            if_icmplt 5
        end local 9 // int i
        13: .line 181
            new org.graalvm.compiler.nodes.ValuePhiNode
            dup
            aload 6 /* stamp */
            aload 7 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            aload 8 /* constantNodes */
            invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            areturn
        end local 8 // org.graalvm.compiler.nodes.ConstantNode[] constantNodes
        end local 7 // org.graalvm.compiler.nodes.PhiNode phi
        14: .line 183
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 4 // org.graalvm.compiler.nodes.ValueNode forObject
        end local 3 // org.graalvm.compiler.options.OptionValues options
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAcccess
        end local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 0 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFields
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0      constantFields  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0   15     1  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0   15     2         metaAcccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   15     3             options  Lorg/graalvm/compiler/options/OptionValues;
            0   15     4           forObject  Lorg/graalvm/compiler/nodes/ValueNode;
            0   15     5               field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   15     6               stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            2   14     7                 phi  Lorg/graalvm/compiler/nodes/PhiNode;
            3   14     8       constantNodes  [Lorg/graalvm/compiler/nodes/ConstantNode;
            4   13     9                   i  I
            8   11    10            constant  Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
                    Name  Flags
      constantFields      
      constantReflection  
      metaAcccess         
      options             
      forObject           
      field               
      stamp               

  public void virtualize(org.graalvm.compiler.nodes.spi.VirtualizerTool);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
         0: .line 188
            aload 1 /* tool */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* alias */
        start local 2 // org.graalvm.compiler.nodes.ValueNode alias
         1: .line 189
            aload 2 /* alias */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 11
         2: .line 190
            aload 2 /* alias */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualInstanceNode
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualInstanceNode.fieldIndex:(Ljdk/vm/ci/meta/ResolvedJavaField;)I
            istore 3 /* fieldIndex */
        start local 3 // int fieldIndex
         3: .line 191
            iload 3 /* fieldIndex */
            iconst_m1
            if_icmpeq 11
         4: .line 192
            aload 1 /* tool */
            aload 2 /* alias */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            iload 3 /* fieldIndex */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* entry */
        start local 4 // org.graalvm.compiler.nodes.ValueNode entry
         5: .line 193
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.stamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* entry */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifeq 8
         6: .line 194
            aload 1 /* tool */
            aload 4 /* entry */
            invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.replaceWith:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         7: .line 195
            goto 11
         8: .line 196
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.java.LoadFieldNode.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 10
            aload 4 /* entry */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 11
            aload 4 /* entry */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 11
         9: .line 197
            aload 4 /* entry */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 11
      StackMap locals:
      StackMap stack:
        10: new java.lang.AssertionError
            dup
            ldc "Can only allow different stack kind two slot marker writes on one stot fields."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // org.graalvm.compiler.nodes.ValueNode entry
        end local 3 // int fieldIndex
        11: .line 201
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.nodes.ValueNode alias
        end local 1 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0   12     1        tool  Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
            1   12     2       alias  Lorg/graalvm/compiler/nodes/ValueNode;
            3   11     3  fieldIndex  I
            5   11     4       entry  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      tool  

  public org.graalvm.compiler.core.common.type.Stamp uncheckedStamp();
    descriptor: ()Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
         0: .line 205
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.uncheckedStamp:Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;

  public void setObject(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
        start local 1 // org.graalvm.compiler.nodes.ValueNode newObject
         0: .line 209
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.java.LoadFieldNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* newObject */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.updateUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
         1: .line 210
            aload 0 /* this */
            aload 1 /* newObject */
            putfield org.graalvm.compiler.nodes.java.LoadFieldNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
         2: .line 211
            return
        end local 1 // org.graalvm.compiler.nodes.ValueNode newObject
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
            0    3     1  newObject  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
           Name  Flags
      newObject  

  public org.graalvm.compiler.nodeinfo.NodeCycles estimatedNodeCycles();
    descriptor: ()Lorg/graalvm/compiler/nodeinfo/NodeCycles;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
         0: .line 215
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.isVolatile:()Z
            ifeq 2
         1: .line 216
            getstatic org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2:Lorg/graalvm/compiler/nodeinfo/NodeCycles;
            areturn
         2: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.graalvm.compiler.nodes.java.AccessFieldNode.estimatedNodeCycles:()Lorg/graalvm/compiler/nodeinfo/NodeCycles;
            areturn
        end local 0 // org.graalvm.compiler.nodes.java.LoadFieldNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;

  public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.graalvm.compiler.graph.Node getValue();
    descriptor: ()Lorg/graalvm/compiler/graph/Node;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/graalvm/compiler/nodes/java/AccessFieldNode;Lorg/graalvm/compiler/graph/spi/Canonicalizable$Unary<Lorg/graalvm/compiler/nodes/ValueNode;>;Lorg/graalvm/compiler/nodes/spi/Virtualizable;Lorg/graalvm/compiler/nodes/spi/UncheckedInterfaceProvider;
SourceFile: "LoadFieldNode.java"
InnerClasses:
  public final NegativeTypePredicate = org.graalvm.compiler.graph.iterators.NodePredicates$NegativeTypePredicate of org.graalvm.compiler.graph.iterators.NodePredicates
  public abstract Unary = org.graalvm.compiler.graph.spi.Canonicalizable$Unary of org.graalvm.compiler.graph.spi.Canonicalizable
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(nameTemplate = "LoadField#{p#field/s}")