public class org.graalvm.compiler.phases.verify.VerifyUpdateUsages extends org.graalvm.compiler.phases.VerifyPhase<org.graalvm.compiler.phases.tiers.PhaseContext>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.phases.verify.VerifyUpdateUsages
  super_class: org.graalvm.compiler.phases.VerifyPhase
{
  public boolean checkContract();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
         0: .line 52
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/verify/VerifyUpdateUsages;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
         0: .line 55
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.VerifyPhase.<init>:()V
         1: .line 56
            return
        end local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/phases/verify/VerifyUpdateUsages;

  protected boolean verify(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.phases.tiers.PhaseContext context
         0: .line 60
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isConstructor:()Z
            ifeq 2
         1: .line 61
            iconst_1
            ireturn
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            astore 3 /* stores */
        start local 3 // java.util.List stores
         3: .line 70
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* declaringClass */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType declaringClass
         4: .line 71
            aload 2 /* context */
            invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            ldc Lorg/graalvm/compiler/graph/NodeInputList;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* nodeInputList */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType nodeInputList
         5: .line 72
            aconst_null
            astore 6 /* storeField1 */
        start local 6 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField1
         6: .line 73
            aconst_null
            astore 7 /* storeField2 */
        start local 7 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField2
         7: .line 74
            aload 3 /* stores */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode top java.util.Iterator
      StackMap stack:
         8: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.StoreFieldNode
            astore 8 /* store */
        start local 8 // org.graalvm.compiler.nodes.java.StoreFieldNode store
         9: .line 75
            aload 0 /* this */
            aload 8 /* store */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 4 /* declaringClass */
            aload 5 /* nodeInputList */
            invokevirtual org.graalvm.compiler.phases.verify.VerifyUpdateUsages.isNodeInput:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 17
        10: .line 76
            aload 6 /* storeField1 */
            ifnonnull 13
        11: .line 77
            aload 8 /* store */
            astore 6 /* storeField1 */
        12: .line 78
            goto 17
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode java.util.Iterator
      StackMap stack:
        13: aload 7 /* storeField2 */
            ifnonnull 16
        14: .line 79
            aload 8 /* store */
            astore 7 /* storeField2 */
        15: .line 80
            goto 17
        16: .line 81
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // org.graalvm.compiler.nodes.java.StoreFieldNode store
        17: .line 74
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        18: .line 85
            aload 6 /* storeField1 */
            ifnonnull 20
        19: .line 86
            iconst_1
            ireturn
        20: .line 88
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode
      StackMap stack:
            aload 7 /* storeField2 */
            ifnonnull 29
        21: .line 91
            aload 2 /* context */
            invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            ldc Lorg/graalvm/compiler/graph/Node;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 8 /* node */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaType node
        22: .line 92
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()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;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 10
            goto 27
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
      StackMap stack:
        23: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 9 /* call */
        start local 9 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
        24: .line 93
            aload 9 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 11 /* callee */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaMethod callee
        25: .line 94
            aload 11 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 8 /* node */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 27
            aload 11 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "updateUsages"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
            aload 11 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "updateUsagesInterface"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 95
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            iconst_1
            ireturn
        end local 11 // jdk.vm.ci.meta.ResolvedJavaMethod callee
        end local 9 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
        27: .line 92
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 8 // jdk.vm.ci.meta.ResolvedJavaType node
        28: .line 98
            goto 35
        29: .line 99
      StackMap locals: org.graalvm.compiler.phases.verify.VerifyUpdateUsages org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext java.util.List jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.java.StoreFieldNode
      StackMap stack:
            aload 6 /* storeField1 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
            ifeq 35
            aload 7 /* storeField2 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
            ifeq 35
        30: .line 100
            aload 6 /* storeField1 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.java.LoadFieldNode
            astore 8 /* load1 */
        start local 8 // org.graalvm.compiler.nodes.java.LoadFieldNode load1
        31: .line 101
            aload 7 /* storeField2 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.java.LoadFieldNode
            astore 9 /* load2 */
        start local 9 // org.graalvm.compiler.nodes.java.LoadFieldNode load2
        32: .line 103
            aload 8 /* load1 */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 6 /* storeField1 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 35
            aload 9 /* load2 */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 7 /* storeField2 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 35
            aload 6 /* storeField1 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 7 /* storeField2 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 35
        33: .line 104
            aload 8 /* load1 */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 7 /* storeField2 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 35
            aload 9 /* load2 */
            invokevirtual org.graalvm.compiler.nodes.java.LoadFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            aload 6 /* storeField1 */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 35
        34: .line 105
            iconst_1
            ireturn
        end local 9 // org.graalvm.compiler.nodes.java.LoadFieldNode load2
        end local 8 // org.graalvm.compiler.nodes.java.LoadFieldNode load1
        35: .line 109
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField2
        end local 6 // org.graalvm.compiler.nodes.java.StoreFieldNode storeField1
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType nodeInputList
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType declaringClass
        end local 3 // java.util.List stores
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext context
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0            this  Lorg/graalvm/compiler/phases/verify/VerifyUpdateUsages;
            0   36     1           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   36     2         context  Lorg/graalvm/compiler/phases/tiers/PhaseContext;
            3   36     3          stores  Ljava/util/List<Lorg/graalvm/compiler/nodes/java/StoreFieldNode;>;
            4   36     4  declaringClass  Ljdk/vm/ci/meta/ResolvedJavaType;
            5   36     5   nodeInputList  Ljdk/vm/ci/meta/ResolvedJavaType;
            6   36     6     storeField1  Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
            7   36     7     storeField2  Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
            9   17     8           store  Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
           22   28     8            node  Ljdk/vm/ci/meta/ResolvedJavaType;
           24   27     9            call  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
           25   27    11          callee  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           31   35     8           load1  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
           32   35     9           load2  Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
    MethodParameters:
         Name  Flags
      graph    
      context  

  boolean isNodeInput(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType declaringClass
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType nodeInputList
         0: .line 113
            aload 2 /* declaringClass */
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 3
            aload 1 /* field */
            ldc Lorg/graalvm/compiler/graph/Node$Input;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 1
            aload 1 /* field */
            ldc Lorg/graalvm/compiler/graph/Node$OptionalInput;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 3
         1: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            aload 3 /* nodeInputList */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 113
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType nodeInputList
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType declaringClass
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.phases.verify.VerifyUpdateUsages this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/graalvm/compiler/phases/verify/VerifyUpdateUsages;
            0    4     1           field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    4     2  declaringClass  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    4     3   nodeInputList  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
                Name  Flags
      field           
      declaringClass  
      nodeInputList   

  protected boolean verify(org.graalvm.compiler.nodes.StructuredGraph, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)Z
    flags: (0x1044) ACC_PROTECTED, 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.phases.tiers.PhaseContext
            invokevirtual org.graalvm.compiler.phases.verify.VerifyUpdateUsages.verify:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/graalvm/compiler/phases/VerifyPhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
SourceFile: "VerifyUpdateUsages.java"
InnerClasses:
  public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
  public abstract OptionalInput = org.graalvm.compiler.graph.Node$OptionalInput of org.graalvm.compiler.graph.Node