public final class org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure extends org.graalvm.compiler.virtual.phases.ea.EffectsClosure<org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure
  super_class: org.graalvm.compiler.virtual.phases.ea.EffectsClosure
{
  private final boolean considerGuards;
    descriptor: Z
    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 78
            ldc Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            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.virtual.phases.ea.ReadEliminationClosure.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.nodes.cfg.ControlFlowGraph, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        start local 2 // boolean considerGuards
         0: .line 82
            aload 0 /* this */
            aconst_null
            aload 1 /* cfg */
            invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph$ScheduleResult;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
         1: .line 83
            aload 0 /* this */
            iload 2 /* considerGuards */
            putfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.considerGuards:Z
         2: .line 84
            return
        end local 2 // boolean considerGuards
        end local 1 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0    3     1             cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            0    3     2  considerGuards  Z
    MethodParameters:
                Name  Flags
      cfg             
      considerGuards  

  protected org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState getInitialState();
    descriptor: ()Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
         0: .line 88
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            dup
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.<init>:()V
            areturn
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;

  protected boolean processNode(org.graalvm.compiler.graph.Node, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState, org.graalvm.compiler.virtual.phases.ea.GraphEffectList, org.graalvm.compiler.nodes.FixedWithNextNode);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.graph.Node node
        start local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState state
        start local 3 // org.graalvm.compiler.virtual.phases.ea.GraphEffectList effects
        start local 4 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
         0: .line 93
            iconst_0
            istore 5 /* deleted */
        start local 5 // boolean deleted
         1: .line 94
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.java.AccessFieldNode
            ifeq 26
         2: .line 95
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.java.AccessFieldNode
            astore 6 /* access */
        start local 6 // org.graalvm.compiler.nodes.java.AccessFieldNode access
         3: .line 96
            aload 6 /* access */
            invokevirtual org.graalvm.compiler.nodes.java.AccessFieldNode.isVolatile:()Z
            ifeq 6
         4: .line 97
            aload 2 /* state */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
         5: .line 98
            goto 95
         6: .line 99
      StackMap locals: int org.graalvm.compiler.nodes.java.AccessFieldNode
      StackMap stack:
            aload 6 /* access */
            invokevirtual org.graalvm.compiler.nodes.java.AccessFieldNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* object */
        start local 7 // org.graalvm.compiler.nodes.ValueNode object
         7: .line 100
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry
            dup
            aload 7 /* object */
            new org.graalvm.compiler.nodes.FieldLocationIdentity
            dup
            aload 6 /* access */
            invokevirtual org.graalvm.compiler.nodes.java.AccessFieldNode.field:()Ljdk/vm/ci/meta/ResolvedJavaField;
            invokespecial org.graalvm.compiler.nodes.FieldLocationIdentity.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;)V
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            astore 8 /* identifier */
        start local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
         8: .line 101
            aload 2 /* state */
            aload 8 /* identifier */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* cachedValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
         9: .line 102
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.java.LoadFieldNode
            ifeq 17
        10: .line 103
            aload 9 /* cachedValue */
            ifnull 15
            aload 6 /* access */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.java.AccessFieldNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 9 /* cachedValue */
            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 15
        11: .line 104
            aload 3 /* effects */
            aload 6 /* access */
            aload 9 /* cachedValue */
            aload 6 /* access */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.replaceAtUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        12: .line 105
            aload 0 /* this */
            aload 6 /* access */
            aload 9 /* cachedValue */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.addScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        13: .line 106
            iconst_1
            istore 5 /* deleted */
        14: .line 107
            goto 95
        15: .line 108
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 8 /* identifier */
            aload 6 /* access */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        16: .line 110
            goto 95
        17: .line 111
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.$assertionsDisabled:Z
            ifne 18
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.java.StoreFieldNode
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.java.StoreFieldNode
            astore 10 /* store */
        start local 10 // org.graalvm.compiler.nodes.java.StoreFieldNode store
        19: .line 113
            aload 0 /* this */
            aload 10 /* store */
            invokevirtual org.graalvm.compiler.nodes.java.StoreFieldNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* value */
        start local 11 // org.graalvm.compiler.nodes.ValueNode value
        20: .line 114
            aload 11 /* value */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 9 /* cachedValue */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 23
        21: .line 115
            aload 3 /* effects */
            aload 10 /* store */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 116
            iconst_1
            istore 5 /* deleted */
        23: .line 118
      StackMap locals: org.graalvm.compiler.nodes.java.StoreFieldNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 8 /* identifier */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry.identity:Ljava/lang/Object;
            checkcast jdk.internal.vm.compiler.word.LocationIdentity
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.killReadCache:(Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        24: .line 119
            aload 2 /* state */
            aload 8 /* identifier */
            aload 11 /* value */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 11 // org.graalvm.compiler.nodes.ValueNode value
        end local 10 // org.graalvm.compiler.nodes.java.StoreFieldNode store
        end local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
        end local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
        end local 7 // org.graalvm.compiler.nodes.ValueNode object
        end local 6 // org.graalvm.compiler.nodes.java.AccessFieldNode access
        25: .line 122
            goto 95
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int
      StackMap stack:
        26: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.ReadNode
            ifeq 39
        27: .line 123
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.ReadNode
            astore 6 /* read */
        start local 6 // org.graalvm.compiler.nodes.memory.ReadNode read
        28: .line 124
            aload 6 /* read */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isSingle:()Z
            ifeq 95
        29: .line 125
            aload 6 /* read */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* object */
        start local 7 // org.graalvm.compiler.nodes.ValueNode object
        30: .line 126
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry
            dup
            aload 7 /* object */
            aload 6 /* read */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            astore 8 /* identifier */
        start local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
        31: .line 127
            aload 2 /* state */
            aload 8 /* identifier */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* cachedValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
        32: .line 128
            aload 9 /* cachedValue */
            ifnull 37
            aload 6 /* read */
            aload 9 /* cachedValue */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.considerGuards:Z
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.areValuesReplaceable:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
            ifeq 37
        33: .line 129
            aload 3 /* effects */
            aload 6 /* read */
            aload 9 /* cachedValue */
            aload 6 /* read */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.replaceAtUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        34: .line 130
            aload 0 /* this */
            aload 6 /* read */
            aload 9 /* cachedValue */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.addScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        35: .line 131
            iconst_1
            istore 5 /* deleted */
        36: .line 132
            goto 95
        37: .line 133
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int org.graalvm.compiler.nodes.memory.ReadNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 8 /* identifier */
            aload 6 /* read */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
        end local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
        end local 7 // org.graalvm.compiler.nodes.ValueNode object
        end local 6 // org.graalvm.compiler.nodes.memory.ReadNode read
        38: .line 136
            goto 95
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int
      StackMap stack:
        39: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.WriteNode
            ifeq 54
        40: .line 137
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 6 /* write */
        start local 6 // org.graalvm.compiler.nodes.memory.WriteNode write
        41: .line 138
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isSingle:()Z
            ifeq 52
        42: .line 139
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* object */
        start local 7 // org.graalvm.compiler.nodes.ValueNode object
        43: .line 140
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry
            dup
            aload 7 /* object */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            astore 8 /* identifier */
        start local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
        44: .line 141
            aload 2 /* state */
            aload 8 /* identifier */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* cachedValue */
        start local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
        45: .line 143
            aload 0 /* this */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* value */
        start local 10 // org.graalvm.compiler.nodes.ValueNode value
        46: .line 144
            aload 10 /* value */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 9 /* cachedValue */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 49
        47: .line 145
            aload 3 /* effects */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
        48: .line 146
            iconst_1
            istore 5 /* deleted */
        49: .line 148
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int org.graalvm.compiler.nodes.memory.WriteNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        50: .line 149
            aload 2 /* state */
            aload 8 /* identifier */
            aload 10 /* value */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 10 // org.graalvm.compiler.nodes.ValueNode value
        end local 9 // org.graalvm.compiler.nodes.ValueNode cachedValue
        end local 8 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry identifier
        end local 7 // org.graalvm.compiler.nodes.ValueNode object
        51: .line 150
            goto 95
        52: .line 151
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int org.graalvm.compiler.nodes.memory.WriteNode
      StackMap stack:
            aload 2 /* state */
            aload 6 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 6 // org.graalvm.compiler.nodes.memory.WriteNode write
        53: .line 153
            goto 95
      StackMap locals:
      StackMap stack:
        54: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.extended.UnsafeAccessNode
            ifeq 85
        55: .line 154
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.extended.UnsafeAccessNode
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* type */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType type
        56: .line 155
            aload 6 /* type */
            ifnull 95
            aload 6 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifne 95
        57: .line 156
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.extended.RawLoadNode
            ifeq 70
        58: .line 157
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.extended.RawLoadNode
            astore 7 /* load */
        start local 7 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        59: .line 158
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isSingle:()Z
            ifeq 95
        60: .line 159
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* object */
        start local 8 // org.graalvm.compiler.nodes.ValueNode object
        61: .line 160
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry
            dup
            aload 8 /* object */
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.nodes.extended.RawLoadNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            astore 9 /* identifier */
        start local 9 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry identifier
        62: .line 161
            aload 2 /* state */
            aload 9 /* identifier */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* cachedValue */
        start local 10 // org.graalvm.compiler.nodes.ValueNode cachedValue
        63: .line 162
            aload 10 /* cachedValue */
            ifnull 68
            aload 7 /* load */
            aload 10 /* cachedValue */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.considerGuards:Z
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.areValuesReplaceable:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
            ifeq 68
        64: .line 163
            aload 3 /* effects */
            aload 7 /* load */
            aload 10 /* cachedValue */
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.replaceAtUsages:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        65: .line 164
            aload 0 /* this */
            aload 7 /* load */
            aload 10 /* cachedValue */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.addScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        66: .line 165
            iconst_1
            istore 5 /* deleted */
        67: .line 166
            goto 95
        68: .line 167
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.extended.RawLoadNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 9 /* identifier */
            aload 7 /* load */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 10 // org.graalvm.compiler.nodes.ValueNode cachedValue
        end local 9 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry identifier
        end local 8 // org.graalvm.compiler.nodes.ValueNode object
        end local 7 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        69: .line 170
            goto 95
        70: .line 171
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            getstatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.$assertionsDisabled:Z
            ifne 71
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.extended.RawStoreNode
            ifne 71
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        71: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.extended.RawStoreNode
            astore 7 /* write */
        start local 7 // org.graalvm.compiler.nodes.extended.RawStoreNode write
        72: .line 173
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isSingle:()Z
            ifeq 83
        73: .line 174
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* object */
        start local 8 // org.graalvm.compiler.nodes.ValueNode object
        74: .line 175
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry
            dup
            aload 8 /* object */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            astore 9 /* identifier */
        start local 9 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry identifier
        75: .line 176
            aload 2 /* state */
            aload 9 /* identifier */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* cachedValue */
        start local 10 // org.graalvm.compiler.nodes.ValueNode cachedValue
        76: .line 178
            aload 0 /* this */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getScalarAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* value */
        start local 11 // org.graalvm.compiler.nodes.ValueNode value
        77: .line 179
            aload 11 /* value */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 10 /* cachedValue */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 80
        78: .line 180
            aload 3 /* effects */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
        79: .line 181
            iconst_1
            istore 5 /* deleted */
        80: .line 183
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.extended.RawStoreNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* state */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        81: .line 184
            aload 2 /* state */
            aload 9 /* identifier */
            aload 11 /* value */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.addCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 11 // org.graalvm.compiler.nodes.ValueNode value
        end local 10 // org.graalvm.compiler.nodes.ValueNode cachedValue
        end local 9 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry identifier
        end local 8 // org.graalvm.compiler.nodes.ValueNode object
        82: .line 185
            goto 95
        83: .line 186
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.extended.RawStoreNode
      StackMap stack:
            aload 2 /* state */
            aload 7 /* write */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 7 // org.graalvm.compiler.nodes.extended.RawStoreNode write
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType type
        84: .line 190
            goto 95
      StackMap locals:
      StackMap stack:
        85: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            ifeq 89
        86: .line 191
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            astore 6 /* identity */
        start local 6 // jdk.internal.vm.compiler.word.LocationIdentity identity
        87: .line 192
            aload 2 /* state */
            aload 6 /* identity */
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity identity
        88: .line 193
            goto 95
      StackMap locals:
      StackMap stack:
        89: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            ifeq 95
        90: .line 194
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi.getKilledLocationIdentities:()[Ljdk/internal/vm/compiler/word/LocationIdentity;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 94
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int top int int jdk.internal.vm.compiler.word.LocationIdentity[]
      StackMap stack:
        91: aload 9
            iload 7
            aaload
            astore 6 /* identity */
        start local 6 // jdk.internal.vm.compiler.word.LocationIdentity identity
        92: .line 195
            aload 2 /* state */
            aload 6 /* identity */
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processIdentity:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity identity
        93: .line 194
            iinc 7 1
      StackMap locals:
      StackMap stack:
        94: iload 7
            iload 8
            if_icmplt 91
        95: .line 198
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.graph.Node org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.GraphEffectList org.graalvm.compiler.nodes.FixedWithNextNode int
      StackMap stack:
            iload 5 /* deleted */
            ireturn
        end local 5 // boolean deleted
        end local 4 // org.graalvm.compiler.nodes.FixedWithNextNode lastFixedNode
        end local 3 // org.graalvm.compiler.virtual.phases.ea.GraphEffectList effects
        end local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState state
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   96     0           this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0   96     1           node  Lorg/graalvm/compiler/graph/Node;
            0   96     2          state  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            0   96     3        effects  Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            0   96     4  lastFixedNode  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            1   96     5        deleted  Z
            3   25     6         access  Lorg/graalvm/compiler/nodes/java/AccessFieldNode;
            7   25     7         object  Lorg/graalvm/compiler/nodes/ValueNode;
            8   25     8     identifier  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$LoadCacheEntry;
            9   25     9    cachedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           19   25    10          store  Lorg/graalvm/compiler/nodes/java/StoreFieldNode;
           20   25    11          value  Lorg/graalvm/compiler/nodes/ValueNode;
           28   38     6           read  Lorg/graalvm/compiler/nodes/memory/ReadNode;
           30   38     7         object  Lorg/graalvm/compiler/nodes/ValueNode;
           31   38     8     identifier  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$LoadCacheEntry;
           32   38     9    cachedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           41   53     6          write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
           43   51     7         object  Lorg/graalvm/compiler/nodes/ValueNode;
           44   51     8     identifier  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$LoadCacheEntry;
           45   51     9    cachedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           46   51    10          value  Lorg/graalvm/compiler/nodes/ValueNode;
           56   84     6           type  Ljdk/vm/ci/meta/ResolvedJavaType;
           59   69     7           load  Lorg/graalvm/compiler/nodes/extended/RawLoadNode;
           61   69     8         object  Lorg/graalvm/compiler/nodes/ValueNode;
           62   69     9     identifier  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$UnsafeLoadCacheEntry;
           63   69    10    cachedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           72   84     7          write  Lorg/graalvm/compiler/nodes/extended/RawStoreNode;
           74   82     8         object  Lorg/graalvm/compiler/nodes/ValueNode;
           75   82     9     identifier  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$UnsafeLoadCacheEntry;
           76   82    10    cachedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           77   82    11          value  Lorg/graalvm/compiler/nodes/ValueNode;
           87   88     6       identity  Ljdk/internal/vm/compiler/word/LocationIdentity;
           92   93     6       identity  Ljdk/internal/vm/compiler/word/LocationIdentity;
    MethodParameters:
               Name  Flags
      node           
      state          
      effects        
      lastFixedNode  

  private static boolean areValuesReplaceable(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode originalValue
        start local 1 // org.graalvm.compiler.nodes.ValueNode replacementValue
        start local 2 // boolean considerGuards
         0: .line 202
            aload 0 /* originalValue */
            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;
            aload 1 /* replacementValue */
            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 3
         1: .line 203
            iload 2 /* considerGuards */
            ifeq 2
            aload 0 /* originalValue */
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getGuard:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            ifnull 2
            aload 0 /* originalValue */
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getGuard:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            aload 1 /* replacementValue */
            invokestatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getGuard:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            if_acmpne 3
         2: .line 202
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // boolean considerGuards
        end local 1 // org.graalvm.compiler.nodes.ValueNode replacementValue
        end local 0 // org.graalvm.compiler.nodes.ValueNode originalValue
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0     originalValue  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     1  replacementValue  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2    considerGuards  Z
    MethodParameters:
                  Name  Flags
      originalValue     
      replacementValue  
      considerGuards    

  private static org.graalvm.compiler.nodes.extended.GuardingNode getGuard(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/extended/GuardingNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 207
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.extended.GuardedNode
            ifeq 3
         1: .line 208
            aload 0 /* node */
            checkcast org.graalvm.compiler.nodes.extended.GuardedNode
            astore 1 /* guardedNode */
        start local 1 // org.graalvm.compiler.nodes.extended.GuardedNode guardedNode
         2: .line 209
            aload 1 /* guardedNode */
            invokeinterface org.graalvm.compiler.nodes.extended.GuardedNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            areturn
        end local 1 // org.graalvm.compiler.nodes.extended.GuardedNode guardedNode
         3: .line 211
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode node
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         node  Lorg/graalvm/compiler/nodes/ValueNode;
            2    3     1  guardedNode  Lorg/graalvm/compiler/nodes/extended/GuardedNode;
    MethodParameters:
      Name  Flags
      node  

  private static void processIdentity(org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState, jdk.internal.vm.compiler.word.LocationIdentity);
    descriptor: (Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState state
        start local 1 // jdk.internal.vm.compiler.word.LocationIdentity identity
         0: .line 215
            aload 1 /* identity */
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isAny:()Z
            ifeq 3
         1: .line 216
            aload 0 /* state */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.killReadCache:()V
         2: .line 217
            return
         3: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* state */
            aload 1 /* identity */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.killReadCache:(Ljdk/internal/vm/compiler/word/LocationIdentity;)V
         4: .line 220
            return
        end local 1 // jdk.internal.vm.compiler.word.LocationIdentity identity
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState state
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0     state  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            0    5     1  identity  Ljdk/internal/vm/compiler/word/LocationIdentity;
    MethodParameters:
          Name  Flags
      state     
      identity  

  protected void processLoopExit(org.graalvm.compiler.nodes.LoopExitNode, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState, org.graalvm.compiler.virtual.phases.ea.GraphEffectList);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.nodes.LoopExitNode exitNode
        start local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
        start local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState exitState
        start local 4 // org.graalvm.compiler.virtual.phases.ea.GraphEffectList effects
         0: .line 224
            aload 1 /* exitNode */
            invokevirtual org.graalvm.compiler.nodes.LoopExitNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
            ifeq 8
         1: .line 225
            aload 3 /* exitState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getReadCache:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getEntries:()Ljdk/internal/vm/compiler/collections/MapCursor;
            astore 5 /* entry */
        start local 5 // jdk.internal.vm.compiler.collections.MapCursor entry
         2: .line 226
            goto 7
         3: .line 227
      StackMap locals: jdk.internal.vm.compiler.collections.MapCursor
      StackMap stack:
            aload 2 /* initialState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getReadCache:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 5 /* entry */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 5 /* entry */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getValue:()Ljava/lang/Object;
            if_acmpeq 7
         4: .line 228
            new org.graalvm.compiler.nodes.ValueProxyNode
            dup
            aload 3 /* exitState */
            aload 5 /* entry */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getCacheEntry:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* exitNode */
            invokespecial org.graalvm.compiler.nodes.ValueProxyNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)V
            astore 6 /* proxy */
        start local 6 // org.graalvm.compiler.nodes.ProxyNode proxy
         5: .line 229
            aload 4 /* effects */
            aload 6 /* proxy */
            ldc "readCacheProxy"
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
         6: .line 230
            aload 3 /* exitState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.getReadCache:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 5 /* entry */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            aload 6 /* proxy */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // org.graalvm.compiler.nodes.ProxyNode proxy
         7: .line 226
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            invokeinterface jdk.internal.vm.compiler.collections.MapCursor.advance:()Z
            ifne 3
        end local 5 // jdk.internal.vm.compiler.collections.MapCursor entry
         8: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.virtual.phases.ea.GraphEffectList effects
        end local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState exitState
        end local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
        end local 1 // org.graalvm.compiler.nodes.LoopExitNode exitNode
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0    9     1      exitNode  Lorg/graalvm/compiler/nodes/LoopExitNode;
            0    9     2  initialState  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            0    9     3     exitState  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            0    9     4       effects  Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            2    8     5         entry  Ljdk/internal/vm/compiler/collections/MapCursor<Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry<*>;Lorg/graalvm/compiler/nodes/ValueNode;>;
            5    7     6         proxy  Lorg/graalvm/compiler/nodes/ProxyNode;
    MethodParameters:
              Name  Flags
      exitNode      
      initialState  
      exitState     
      effects       

  protected org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState cloneState(org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState);
    descriptor: (Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState other
         0: .line 238
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            dup
            aload 1 /* other */
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.<init>:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)V
            areturn
        end local 1 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState other
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0    1     1  other  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
    MethodParameters:
       Name  Flags
      other  

  protected org.graalvm.compiler.virtual.phases.ea.EffectsClosure<org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState>.MergeProcessor createMergeProcessor(org.graalvm.compiler.nodes.cfg.Block);
    descriptor: (Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure$MergeProcessor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.nodes.cfg.Block merge
         0: .line 243
            new org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure$ReadEliminationMergeProcessor
            dup
            aload 0 /* this */
            aload 1 /* merge */
            invokespecial org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure$ReadEliminationMergeProcessor.<init>:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
            areturn
        end local 1 // org.graalvm.compiler.nodes.cfg.Block merge
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0    1     1  merge  Lorg/graalvm/compiler/nodes/cfg/Block;
    Signature: (Lorg/graalvm/compiler/nodes/cfg/Block;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure<Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;>.MergeProcessor;
    MethodParameters:
       Name  Flags
      merge  

  protected void processKilledLoopLocations(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        start local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
        start local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState mergedStates
         0: .line 340
            getstatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.$assertionsDisabled:Z
            ifne 1
            aload 2 /* initialState */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 341
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.$assertionsDisabled:Z
            ifne 2
            aload 3 /* mergedStates */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 342
      StackMap locals:
      StackMap stack:
            aload 2 /* initialState */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.readCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.size:()I
            ifle 30
         3: .line 343
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.loopLocationKillCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* loop */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache
            astore 4 /* loopKilledLocations */
        start local 4 // org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache loopKilledLocations
         4: .line 346
            aload 4 /* loopKilledLocations */
            ifnonnull 8
         5: .line 347
            new org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache
            dup
            iconst_1
            invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.<init>:(I)V
            astore 4 /* loopKilledLocations */
         6: .line 348
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.loopLocationKillCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* loop */
            aload 4 /* loopKilledLocations */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 349
            goto 30
         8: .line 350
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache
      StackMap stack:
            aload 1 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            astore 5 /* options */
        start local 5 // org.graalvm.compiler.options.OptionValues options
         9: .line 351
            aload 4 /* loopKilledLocations */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.visits:()I
            getstatic org.graalvm.compiler.core.common.GraalOptions.ReadEliminationMaxLoopVisits:Lorg/graalvm/compiler/options/OptionKey;
            aload 5 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            if_icmple 12
        10: .line 354
            aload 4 /* loopKilledLocations */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.setKillsAll:()V
        11: .line 355
            goto 29
        12: .line 357
      StackMap locals: org.graalvm.compiler.options.OptionValues
      StackMap stack:
            getstatic jdk.internal.vm.compiler.collections.Equivalence.DEFAULT:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 6 /* forwardEndLiveLocations */
        start local 6 // jdk.internal.vm.compiler.collections.EconomicSet forwardEndLiveLocations
        13: .line 358
            aload 2 /* initialState */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.readCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache org.graalvm.compiler.options.OptionValues jdk.internal.vm.compiler.collections.EconomicSet top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            astore 7 /* entry */
        start local 7 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
        15: .line 359
            aload 6 /* forwardEndLiveLocations */
            aload 7 /* entry */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry.getIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
        16: .line 358
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 361
            aload 3 /* mergedStates */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.readCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 20
      StackMap locals:
      StackMap stack:
        18: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            astore 7 /* entry */
        start local 7 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
        19: .line 362
            aload 6 /* forwardEndLiveLocations */
            aload 7 /* entry */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry.getIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
        20: .line 361
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 366
            aload 6 /* forwardEndLiveLocations */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 8
            goto 24
      StackMap locals:
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.vm.compiler.word.LocationIdentity
            astore 7 /* location */
        start local 7 // jdk.internal.vm.compiler.word.LocationIdentity location
        23: .line 367
            aload 4 /* loopKilledLocations */
            aload 7 /* location */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.rememberLoopKilledLocation:(Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 7 // jdk.internal.vm.compiler.word.LocationIdentity location
        24: .line 366
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 369
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 29
            aload 4 /* loopKilledLocations */
            ifnull 29
        26: .line 370
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "[Early Read Elimination] Setting loop killed locations of loop at node %s with %s"
        27: .line 371
            aload 1 /* loop */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 6 /* forwardEndLiveLocations */
        28: .line 370
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // jdk.internal.vm.compiler.collections.EconomicSet forwardEndLiveLocations
        29: .line 375
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache org.graalvm.compiler.options.OptionValues
      StackMap stack:
            aload 4 /* loopKilledLocations */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.visited:()V
        end local 5 // org.graalvm.compiler.options.OptionValues options
        end local 4 // org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache loopKilledLocations
        30: .line 378
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState mergedStates
        end local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
        end local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   31     0                     this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0   31     1                     loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0   31     2             initialState  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            0   31     3             mergedStates  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            4   30     4      loopKilledLocations  Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure$LoopKillCache;
            9   30     5                  options  Lorg/graalvm/compiler/options/OptionValues;
           13   29     6  forwardEndLiveLocations  Ljdk/internal/vm/compiler/collections/EconomicSet<Ljdk/internal/vm/compiler/word/LocationIdentity;>;
           15   16     7                    entry  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry<*>;
           19   20     7                    entry  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry<*>;
           23   24     7                 location  Ljdk/internal/vm/compiler/word/LocationIdentity;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)V
    MethodParameters:
              Name  Flags
      loop          
      initialState  
      mergedStates  

  protected org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState stripKilledLoopLocations(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
        start local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        start local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState originalInitialState
         0: .line 382
            aload 0 /* this */
            aload 1 /* loop */
            aload 2 /* originalInitialState */
            invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure.stripKilledLoopLocations:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            astore 3 /* initialState */
        start local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
         1: .line 383
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.loopLocationKillCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* loop */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache
            astore 4 /* loopKilledLocations */
        start local 4 // org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache loopKilledLocations
         2: .line 384
            aload 4 /* loopKilledLocations */
            ifnull 9
            aload 4 /* loopKilledLocations */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.loopKillsLocations:()Z
            ifeq 9
         3: .line 385
            aload 3 /* initialState */
            getfield org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState.readCache:Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getKeys:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         4: .line 386
            goto 8
         5: .line 387
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache java.util.Iterator
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry
            astore 6 /* entry */
        start local 6 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
         6: .line 388
            aload 4 /* loopKilledLocations */
            aload 6 /* entry */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry.getIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache.containsLocation:(Ljdk/internal/vm/compiler/word/LocationIdentity;)Z
            ifeq 8
         7: .line 389
            aload 5 /* it */
            invokeinterface java.util.Iterator.remove:()V
        end local 6 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry entry
         8: .line 386
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 5 // java.util.Iterator it
         9: .line 393
      StackMap locals:
      StackMap stack:
            aload 3 /* initialState */
            areturn
        end local 4 // org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache loopKilledLocations
        end local 3 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState initialState
        end local 2 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState originalInitialState
        end local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        end local 0 // org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure;
            0   10     1                  loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0   10     2  originalInitialState  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            1   10     3          initialState  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            2   10     4   loopKilledLocations  Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure$LoopKillCache;
            4    9     5                    it  Ljava/util/Iterator<Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry<*>;>;
            6    8     6                 entry  Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState$CacheEntry<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
    MethodParameters:
                      Name  Flags
      loop                  
      originalInitialState  

  protected void processLoopExit(org.graalvm.compiler.nodes.LoopExitNode, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState, org.graalvm.compiler.virtual.phases.ea.GraphEffectList);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            aload 3
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            aload 4
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processLoopExit:(Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected boolean processNode(org.graalvm.compiler.graph.Node, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState, org.graalvm.compiler.virtual.phases.ea.GraphEffectList, org.graalvm.compiler.nodes.FixedWithNextNode);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)Z
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            aload 3
            aload 4
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processNode:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected org.graalvm.compiler.virtual.phases.ea.EffectsBlockState stripKilledLoopLocations(org.graalvm.compiler.core.common.cfg.Loop, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
    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.virtual.phases.ea.ReadEliminationBlockState
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.stripKilledLoopLocations:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object getInitialState();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.getInitialState:()Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void processKilledLoopLocations(org.graalvm.compiler.core.common.cfg.Loop, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState, org.graalvm.compiler.virtual.phases.ea.EffectsBlockState);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            aload 3
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.processKilledLoopLocations:(Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object cloneState(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure.cloneState:(Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;)Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure<Lorg/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState;>;
SourceFile: "ReadEliminationClosure.java"
NestMembers:
  org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure$ReadEliminationMergeProcessor
InnerClasses:
  public ScheduleResult = org.graalvm.compiler.nodes.StructuredGraph$ScheduleResult of org.graalvm.compiler.nodes.StructuredGraph
  public abstract Multi = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
  public abstract Single = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
  protected final LoopKillCache = org.graalvm.compiler.virtual.phases.ea.EffectsClosure$LoopKillCache of org.graalvm.compiler.virtual.phases.ea.EffectsClosure
  protected abstract MergeProcessor = org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor of org.graalvm.compiler.virtual.phases.ea.EffectsClosure
  abstract CacheEntry = org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$CacheEntry of org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
  final LoadCacheEntry = org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$LoadCacheEntry of org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
  final UnsafeLoadCacheEntry = org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState$UnsafeLoadCacheEntry of org.graalvm.compiler.virtual.phases.ea.ReadEliminationBlockState
  private ReadEliminationMergeProcessor = org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure$ReadEliminationMergeProcessor of org.graalvm.compiler.virtual.phases.ea.ReadEliminationClosure