public class org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure extends org.graalvm.compiler.phases.graph.ReentrantNodeIterator$NodeIteratorClosure<org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure
  super_class: org.graalvm.compiler.phases.graph.ReentrantNodeIterator$NodeIteratorClosure
{
  private final java.util.Map<org.graalvm.compiler.nodes.LoopBeginNode, java.util.Set<org.graalvm.compiler.core.common.LocationIdentity>> modifiedInLoops;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/Set<Lorg/graalvm/compiler/core/common/LocationIdentity;>;>;

  private boolean createFloatingReads;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean createMemoryMapNodes;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  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 283
            ldc Lorg/graalvm/compiler/phases/common/FloatingReadPhase;
            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.phases.common.FloatingReadPhase$FloatingReadClosure.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.Map<org.graalvm.compiler.nodes.LoopBeginNode, java.util.Set<org.graalvm.compiler.core.common.LocationIdentity>>, boolean, );
    descriptor: (Ljava/util/Map;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
        start local 1 // java.util.Map modifiedInLoops
        start local 2 // boolean createFloatingReads
        start local 3 // boolean createMemoryMapNodes
         0: .line 289
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.graph.ReentrantNodeIterator$NodeIteratorClosure.<init>:()V
         1: .line 290
            aload 0 /* this */
            aload 1 /* modifiedInLoops */
            putfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.modifiedInLoops:Ljava/util/Map;
         2: .line 291
            aload 0 /* this */
            iload 2 /* createFloatingReads */
            putfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.createFloatingReads:Z
         3: .line 292
            aload 0 /* this */
            iload 3 /* createMemoryMapNodes */
            putfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.createMemoryMapNodes:Z
         4: .line 293
            return
        end local 3 // boolean createMemoryMapNodes
        end local 2 // boolean createFloatingReads
        end local 1 // java.util.Map modifiedInLoops
        end local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$FloatingReadClosure;
            0    5     1       modifiedInLoops  Ljava/util/Map<Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/Set<Lorg/graalvm/compiler/core/common/LocationIdentity;>;>;
            0    5     2   createFloatingReads  Z
            0    5     3  createMemoryMapNodes  Z
    Signature: (Ljava/util/Map<Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/util/Set<Lorg/graalvm/compiler/core/common/LocationIdentity;>;>;ZZ)V
    MethodParameters:
                      Name  Flags
      modifiedInLoops       
      createFloatingReads   
      createMemoryMapNodes  

  protected org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl processNode(org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
        start local 1 // org.graalvm.compiler.nodes.FixedNode node
        start local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 297
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            ifeq 3
         1: .line 298
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAnchorNode
            aload 2 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processAnchor:(Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
         2: .line 299
            aload 2 /* state */
            areturn
         3: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 5
         4: .line 303
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAccess
            aload 2 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processAccess:(Lorg/graalvm/compiler/nodes/memory/MemoryAccess;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
         5: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.createFloatingReads:Z
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.FloatableAccessNode
            iand
            ifeq 8
         6: .line 307
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.FloatableAccessNode
            aload 2 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processFloatable:(Lorg/graalvm/compiler/nodes/memory/FloatableAccessNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
         7: .line 308
            goto 13
      StackMap locals:
      StackMap stack:
         8: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            ifeq 11
         9: .line 309
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
            aload 2 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processCheckpoint:(Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Single;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
        10: .line 310
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            ifeq 13
        12: .line 311
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi
            aload 2 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processCheckpoint:(Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Multi;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
        13: .line 313
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.$assertionsDisabled:Z
            ifne 14
            aload 1 /* node */
            invokestatic org.graalvm.compiler.nodes.memory.MemoryCheckpoint$TypeAssertion.correctType:(Lorg/graalvm/compiler/graph/Node;)Z
            ifne 14
            new java.lang.AssertionError
            dup
            aload 1 /* node */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.createMemoryMapNodes:Z
            ifeq 16
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ReturnNode
            ifeq 16
        15: .line 316
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.ReturnNode
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.MemoryMapNode
            dup
            aload 2 /* state */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            invokespecial org.graalvm.compiler.nodes.memory.MemoryMapNode.<init>:(Ljava/util/Map;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.MemoryMapNode
            invokevirtual org.graalvm.compiler.nodes.ReturnNode.setMemoryMap:(Lorg/graalvm/compiler/nodes/memory/MemoryMapNode;)V
        16: .line 318
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            areturn
        end local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 1 // org.graalvm.compiler.nodes.FixedNode node
        end local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$FloatingReadClosure;
            0   17     1   node  Lorg/graalvm/compiler/nodes/FixedNode;
            0   17     2  state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    MethodParameters:
       Name  Flags
      node   
      state  

  private static void processAnchor(org.graalvm.compiler.nodes.memory.MemoryAnchorNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 326
            aload 0 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* node */
        start local 2 // org.graalvm.compiler.graph.Node node
         2: .line 327
            aload 2 /* node */
            instanceof org.graalvm.compiler.nodes.memory.MemoryAccess
            ifeq 8
         3: .line 328
            aload 2 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryAccess
            astore 4 /* access */
        start local 4 // org.graalvm.compiler.nodes.memory.MemoryAccess access
         4: .line 329
            aload 4 /* access */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLastLocationAccess:()Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            aload 0 /* anchor */
            if_acmpne 8
         5: .line 330
            aload 1 /* state */
            aload 4 /* access */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            astore 5 /* lastLocationAccess */
        start local 5 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
         6: .line 331
            getstatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.$assertionsDisabled:Z
            ifne 7
            aload 5 /* lastLocationAccess */
            ifnonnull 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 332
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.memory.MemoryAccess org.graalvm.compiler.nodes.memory.MemoryNode
      StackMap stack:
            aload 4 /* access */
            aload 5 /* lastLocationAccess */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.setLastLocationAccess:(Lorg/graalvm/compiler/nodes/memory/MemoryNode;)V
        end local 5 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
        end local 4 // org.graalvm.compiler.nodes.memory.MemoryAccess access
        end local 2 // org.graalvm.compiler.graph.Node node
         8: .line 326
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 337
            aload 0 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.hasNoUsages:()Z
            ifeq 11
        10: .line 338
            aload 0 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryAnchorNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        11: .line 340
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryAnchorNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 0 // org.graalvm.compiler.nodes.memory.MemoryAnchorNode anchor
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0              anchor  Lorg/graalvm/compiler/nodes/memory/MemoryAnchorNode;
            0   12     1               state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            2    8     2                node  Lorg/graalvm/compiler/graph/Node;
            4    8     4              access  Lorg/graalvm/compiler/nodes/memory/MemoryAccess;
            6    8     5  lastLocationAccess  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    MethodParameters:
        Name  Flags
      anchor  
      state   

  private static void processAccess(org.graalvm.compiler.nodes.memory.MemoryAccess, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryAccess;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.MemoryAccess access
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 343
            aload 0 /* access */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            astore 2 /* locationIdentity */
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
         1: .line 344
            aload 2 /* locationIdentity */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 345
            aload 1 /* state */
            aload 2 /* locationIdentity */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            astore 3 /* lastLocationAccess */
        start local 3 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
         3: .line 346
            aload 0 /* access */
            aload 3 /* lastLocationAccess */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryAccess.setLastLocationAccess:(Lorg/graalvm/compiler/nodes/memory/MemoryNode;)V
        end local 3 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
         4: .line 348
      StackMap locals: org.graalvm.compiler.core.common.LocationIdentity
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 0 // org.graalvm.compiler.nodes.memory.MemoryAccess access
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0              access  Lorg/graalvm/compiler/nodes/memory/MemoryAccess;
            0    5     1               state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            1    5     2    locationIdentity  Lorg/graalvm/compiler/core/common/LocationIdentity;
            3    4     3  lastLocationAccess  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    MethodParameters:
        Name  Flags
      access  
      state   

  private static void processCheckpoint(org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Single;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single checkpoint
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 351
            aload 0 /* checkpoint */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 0 /* checkpoint */
            aload 1 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processIdentity:(Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
         1: .line 352
            return
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 0 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single checkpoint
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  checkpoint  Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Single;
            0    2     1       state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    MethodParameters:
            Name  Flags
      checkpoint  
      state       

  private static void processCheckpoint(org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Multi;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi checkpoint
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 355
            aload 0 /* checkpoint */
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi.getLocationIdentities:()[Lorg/graalvm/compiler/core/common/LocationIdentity;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl top int int org.graalvm.compiler.core.common.LocationIdentity[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* identity */
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity identity
         2: .line 356
            aload 2 /* identity */
            aload 0 /* checkpoint */
            aload 1 /* state */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processIdentity:(Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity identity
         3: .line 355
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 358
            return
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 0 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Multi checkpoint
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  checkpoint  Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint$Multi;
            0    6     1       state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            2    3     2    identity  Lorg/graalvm/compiler/core/common/LocationIdentity;
    MethodParameters:
            Name  Flags
      checkpoint  
      state       

  private static void processIdentity(org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.nodes.memory.MemoryCheckpoint, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.core.common.LocationIdentity identity
        start local 1 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint checkpoint
        start local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 361
            aload 0 /* identity */
            invokevirtual org.graalvm.compiler.core.common.LocationIdentity.isAny:()Z
            ifeq 2
         1: .line 362
            aload 2 /* state */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 364
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            aload 0 /* identity */
            aload 1 /* checkpoint */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 365
            return
        end local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 1 // org.graalvm.compiler.nodes.memory.MemoryCheckpoint checkpoint
        end local 0 // org.graalvm.compiler.core.common.LocationIdentity identity
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0    identity  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    4     1  checkpoint  Lorg/graalvm/compiler/nodes/memory/MemoryCheckpoint;
            0    4     2       state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    MethodParameters:
            Name  Flags
      identity    
      checkpoint  
      state       

  private static void processFloatable(org.graalvm.compiler.nodes.memory.FloatableAccessNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FloatableAccessNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.FloatableAccessNode accessNode
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
         0: .line 369
            aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 370
            aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            astore 3 /* locationIdentity */
        start local 3 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
         2: .line 371
            aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.canFloat:()Z
            ifeq 20
         3: .line 372
            getstatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.$assertionsDisabled:Z
            ifne 4
            aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.getNullCheck:()Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 373
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.core.common.LocationIdentity
      StackMap stack:
            aload 1 /* state */
            aload 3 /* locationIdentity */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            astore 4 /* lastLocationAccess */
        start local 4 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
         5: .line 374
            aconst_null
            astore 5
            aconst_null
            astore 6
         6: aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 7 /* position */
        start local 7 // org.graalvm.compiler.debug.DebugCloseable position
         7: .line 375
            aload 0 /* accessNode */
            aload 4 /* lastLocationAccess */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.asFloatingNode:(Lorg/graalvm/compiler/nodes/memory/MemoryNode;)Lorg/graalvm/compiler/nodes/memory/FloatingAccessNode;
            astore 8 /* floatingNode */
        start local 8 // org.graalvm.compiler.nodes.memory.FloatingAccessNode floatingNode
         8: .line 376
            aconst_null
            astore 9 /* anchor */
        start local 9 // org.graalvm.compiler.nodes.extended.ValueAnchorNode anchor
         9: .line 377
            aload 0 /* accessNode */
            invokevirtual org.graalvm.compiler.nodes.memory.FloatableAccessNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            astore 10 /* guard */
        start local 10 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        10: .line 378
            aload 10 /* guard */
            ifnull 13
        11: .line 379
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.extended.ValueAnchorNode
            dup
            aload 10 /* guard */
            invokeinterface org.graalvm.compiler.nodes.extended.GuardingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.nodes.extended.ValueAnchorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.ValueAnchorNode
            astore 9 /* anchor */
        12: .line 380
            aload 2 /* graph */
            aload 0 /* accessNode */
            aload 9 /* anchor */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        13: .line 382
      StackMap locals: org.graalvm.compiler.nodes.memory.FloatableAccessNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.nodes.memory.MemoryNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.memory.FloatingAccessNode org.graalvm.compiler.nodes.extended.ValueAnchorNode org.graalvm.compiler.nodes.extended.GuardingNode
      StackMap stack:
            aload 2 /* graph */
            aload 0 /* accessNode */
            aload 8 /* floatingNode */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFloating:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/calc/FloatingNode;)V
        end local 10 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 9 // org.graalvm.compiler.nodes.extended.ValueAnchorNode anchor
        end local 8 // org.graalvm.compiler.nodes.memory.FloatingAccessNode floatingNode
        14: .line 383
            aload 7 /* position */
            ifnull 20
            aload 7 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 20
      StackMap locals: org.graalvm.compiler.nodes.memory.FloatableAccessNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.nodes.memory.MemoryNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        15: astore 5
            aload 7 /* position */
            ifnull 16
            aload 7 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugCloseable position
      StackMap locals:
      StackMap stack:
        16: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 6
            aload 5
            ifnonnull 18
            aload 6
            astore 5
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 5
            aload 6
            if_acmpeq 19
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 5
            athrow
        end local 4 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
        20: .line 385
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl state
        end local 0 // org.graalvm.compiler.nodes.memory.FloatableAccessNode accessNode
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   21     0          accessNode  Lorg/graalvm/compiler/nodes/memory/FloatableAccessNode;
            0   21     1               state  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            1   21     2               graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   21     3    locationIdentity  Lorg/graalvm/compiler/core/common/LocationIdentity;
            5   20     4  lastLocationAccess  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            7   16     7            position  Lorg/graalvm/compiler/debug/DebugCloseable;
            8   14     8        floatingNode  Lorg/graalvm/compiler/nodes/memory/FloatingAccessNode;
            9   14     9              anchor  Lorg/graalvm/compiler/nodes/extended/ValueAnchorNode;
           10   14    10               guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
      Exception table:
        from    to  target  type
           7    14      15  any
           6    17      17  any
    MethodParameters:
            Name  Flags
      accessNode  
      state       

  protected org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl merge(org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List<org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl>);
    descriptor: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
        start local 1 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        start local 2 // java.util.List states
         0: .line 389
            aload 1 /* merge */
            aload 2 /* states */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase.mergeMemoryMaps:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            areturn
        end local 2 // java.util.List states
        end local 1 // org.graalvm.compiler.nodes.AbstractMergeNode merge
        end local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$FloatingReadClosure;
            0    1     1   merge  Lorg/graalvm/compiler/nodes/AbstractMergeNode;
            0    1     2  states  Ljava/util/List<Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;
    Signature: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List<Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    MethodParameters:
        Name  Flags
      merge   
      states  

  protected org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl afterSplit(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
        start local 1 // org.graalvm.compiler.nodes.AbstractBeginNode node
        start local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl oldState
         0: .line 394
            new org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl
            dup
            aload 2 /* oldState */
            invokespecial org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.<init>:(Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)V
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl result
         1: .line 395
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            instanceof org.graalvm.compiler.nodes.InvokeWithExceptionNode
            ifeq 4
         2: .line 403
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.InvokeWithExceptionNode
            astore 4 /* invoke */
        start local 4 // org.graalvm.compiler.nodes.InvokeWithExceptionNode invoke
         3: .line 404
            aload 3 /* result */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            aload 4 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.InvokeWithExceptionNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.memory.MemoryCheckpoint
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.graalvm.compiler.nodes.InvokeWithExceptionNode invoke
         4: .line 406
      StackMap locals: org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl result
        end local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl oldState
        end local 1 // org.graalvm.compiler.nodes.AbstractBeginNode node
        end local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$FloatingReadClosure;
            0    5     1      node  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            0    5     2  oldState  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            1    5     3    result  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            3    4     4    invoke  Lorg/graalvm/compiler/nodes/InvokeWithExceptionNode;
    MethodParameters:
          Name  Flags
      node      
      oldState  

  protected java.util.Map<org.graalvm.compiler.nodes.LoopExitNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl> processLoop(org.graalvm.compiler.nodes.LoopBeginNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
        start local 1 // org.graalvm.compiler.nodes.LoopBeginNode loop
        start local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl initialState
         0: .line 411
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.modifiedInLoops:Ljava/util/Map;
            aload 1 /* loop */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* modifiedLocations */
        start local 3 // java.util.Set modifiedLocations
         1: .line 412
            invokestatic org.graalvm.compiler.core.common.CollectionsFactory.newMap:()Ljava/util/HashMap;
            astore 4 /* phis */
        start local 4 // java.util.Map phis
         2: .line 413
            aload 3 /* modifiedLocations */
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 415
            aload 3 /* modifiedLocations */
            invokestatic org.graalvm.compiler.core.common.CollectionsFactory.newSet:(Ljava/util/Collection;)Ljava/util/Set;
            astore 3 /* modifiedLocations */
         4: .line 416
            aload 3 /* modifiedLocations */
            aload 2 /* initialState */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 419
      StackMap locals: java.util.Set java.util.Map
      StackMap stack:
            aload 3 /* modifiedLocations */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.LocationIdentity
            astore 5 /* location */
        start local 5 // org.graalvm.compiler.core.common.LocationIdentity location
         7: .line 420
            aload 1 /* loop */
            aload 2 /* initialState */
            aload 4 /* phis */
            aload 5 /* location */
            invokestatic org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.createMemoryPhi:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;Ljava/util/Map;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        end local 5 // org.graalvm.compiler.core.common.LocationIdentity location
         8: .line 419
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 422
            aload 4 /* phis */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals:
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        11: .line 423
            aload 2 /* initialState */
            getfield org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.lastMemorySnapshot:Ljava/util/Map;
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.LocationIdentity
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.memory.MemoryNode
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.util.Map$Entry entry
        12: .line 422
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 426
            aload 0 /* this */
            aload 1 /* loop */
            aload 2 /* initialState */
            invokestatic org.graalvm.compiler.phases.graph.ReentrantNodeIterator.processLoop:(Lorg/graalvm/compiler/phases/graph/ReentrantNodeIterator$NodeIteratorClosure;Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/lang/Object;)Lorg/graalvm/compiler/phases/graph/ReentrantNodeIterator$LoopInfo;
            astore 5 /* loopInfo */
        start local 5 // org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo loopInfo
        14: .line 428
            aload 5 /* loopInfo */
            getfield org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo.endStates:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl java.util.Set java.util.Map org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo top java.util.Iterator
      StackMap stack:
        15: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        16: .line 429
            aload 1 /* loop */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractEndNode
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phiPredecessorIndex:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)I
            istore 8 /* endIndex */
        start local 8 // int endIndex
        17: .line 430
            aload 4 /* phis */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 22
      StackMap locals: org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl java.util.Set java.util.Map org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo java.util.Map$Entry java.util.Iterator int top java.util.Iterator
      StackMap stack:
        18: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* phiEntry */
        start local 9 // java.util.Map$Entry phiEntry
        19: .line 431
            aload 9 /* phiEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.LocationIdentity
            astore 11 /* key */
        start local 11 // org.graalvm.compiler.core.common.LocationIdentity key
        20: .line 432
            aload 9 /* phiEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 12 /* phi */
        start local 12 // org.graalvm.compiler.nodes.PhiNode phi
        21: .line 433
            aload 12 /* phi */
            iload 8 /* endIndex */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl
            aload 11 /* key */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            invokestatic org.graalvm.compiler.nodes.ValueNodeUtil.asNode:(Lorg/graalvm/compiler/nodes/memory/MemoryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.PhiNode.initializeValueAt:(ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 12 // org.graalvm.compiler.nodes.PhiNode phi
        end local 11 // org.graalvm.compiler.core.common.LocationIdentity key
        end local 9 // java.util.Map$Entry phiEntry
        22: .line 430
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 8 // int endIndex
        end local 6 // java.util.Map$Entry entry
        23: .line 428
      StackMap locals: org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl java.util.Set java.util.Map org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        24: .line 436
            aload 5 /* loopInfo */
            getfield org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo.exitStates:Ljava/util/Map;
            areturn
        end local 5 // org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo loopInfo
        end local 4 // java.util.Map phis
        end local 3 // java.util.Set modifiedLocations
        end local 2 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl initialState
        end local 1 // org.graalvm.compiler.nodes.LoopBeginNode loop
        end local 0 // org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0               this  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$FloatingReadClosure;
            0   25     1               loop  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            0   25     2       initialState  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            1   25     3  modifiedLocations  Ljava/util/Set<Lorg/graalvm/compiler/core/common/LocationIdentity;>;
            2   25     4               phis  Ljava/util/Map<Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;>;
            7    8     5           location  Lorg/graalvm/compiler/core/common/LocationIdentity;
           11   12     5              entry  Ljava/util/Map$Entry<Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;>;
           14   25     5           loopInfo  Lorg/graalvm/compiler/phases/graph/ReentrantNodeIterator$LoopInfo<Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;
           16   23     6              entry  Ljava/util/Map$Entry<Lorg/graalvm/compiler/nodes/LoopEndNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;
           17   23     8           endIndex  I
           19   22     9           phiEntry  Ljava/util/Map$Entry<Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;>;
           20   22    11                key  Lorg/graalvm/compiler/core/common/LocationIdentity;
           21   22    12                phi  Lorg/graalvm/compiler/nodes/PhiNode;
    Signature: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Ljava/util/Map<Lorg/graalvm/compiler/nodes/LoopExitNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;
    MethodParameters:
              Name  Flags
      loop          
      initialState  

  private static void createMemoryPhi(org.graalvm.compiler.nodes.LoopBeginNode, org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl, java.util.Map<org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.nodes.memory.MemoryPhiNode>, org.graalvm.compiler.core.common.LocationIdentity);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;Ljava/util/Map;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.nodes.LoopBeginNode loop
        start local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl initialState
        start local 2 // java.util.Map phis
        start local 3 // org.graalvm.compiler.core.common.LocationIdentity location
         0: .line 440
            aload 0 /* loop */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.MemoryPhiNode
            dup
            aload 0 /* loop */
            aload 3 /* location */
            invokespecial org.graalvm.compiler.nodes.memory.MemoryPhiNode.<init>:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.MemoryPhiNode
            astore 4 /* phi */
        start local 4 // org.graalvm.compiler.nodes.memory.MemoryPhiNode phi
         1: .line 441
            aload 4 /* phi */
            aload 1 /* initialState */
            aload 3 /* location */
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl.getLastLocationAccess:(Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            invokestatic org.graalvm.compiler.nodes.ValueNodeUtil.asNode:(Lorg/graalvm/compiler/nodes/memory/MemoryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.memory.MemoryPhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         2: .line 442
            aload 2 /* phis */
            aload 3 /* location */
            aload 4 /* phi */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 443
            return
        end local 4 // org.graalvm.compiler.nodes.memory.MemoryPhiNode phi
        end local 3 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 2 // java.util.Map phis
        end local 1 // org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl initialState
        end local 0 // org.graalvm.compiler.nodes.LoopBeginNode loop
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          loop  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            0    4     1  initialState  Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            0    4     2          phis  Ljava/util/Map<Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;>;
            0    4     3      location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            1    4     4           phi  Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;
    Signature: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;Ljava/util/Map<Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryPhiNode;>;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
    MethodParameters:
              Name  Flags
      loop          
      initialState  
      phis          
      location      

  protected java.lang.Object processNode(org.graalvm.compiler.nodes.FixedNode, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Ljava/lang/Object;)Ljava/lang/Object;
    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.common.FloatingReadPhase$MemoryMapImpl
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processNode:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object afterSplit(org.graalvm.compiler.nodes.AbstractBeginNode, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Ljava/lang/Object;)Ljava/lang/Object;
    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.common.FloatingReadPhase$MemoryMapImpl
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.afterSplit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object merge(org.graalvm.compiler.nodes.AbstractMergeNode, java.util.List);
    descriptor: (Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Ljava/lang/Object;
    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 java.util.List
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.merge:(Lorg/graalvm/compiler/nodes/AbstractMergeNode;Ljava/util/List;)Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.util.Map processLoop(org.graalvm.compiler.nodes.LoopBeginNode, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/nodes/LoopBeginNode;Ljava/lang/Object;)Ljava/util/Map;
    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.common.FloatingReadPhase$MemoryMapImpl
            invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure.processLoop:(Lorg/graalvm/compiler/nodes/LoopBeginNode;Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/graalvm/compiler/phases/graph/ReentrantNodeIterator$NodeIteratorClosure<Lorg/graalvm/compiler/phases/common/FloatingReadPhase$MemoryMapImpl;>;
SourceFile: "FloatingReadPhase.java"
NestHost: org.graalvm.compiler.phases.common.FloatingReadPhase
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  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
  public TypeAssertion = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$TypeAssertion of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
  public FloatingReadClosure = org.graalvm.compiler.phases.common.FloatingReadPhase$FloatingReadClosure of org.graalvm.compiler.phases.common.FloatingReadPhase
  public MemoryMapImpl = org.graalvm.compiler.phases.common.FloatingReadPhase$MemoryMapImpl of org.graalvm.compiler.phases.common.FloatingReadPhase
  public LoopInfo = org.graalvm.compiler.phases.graph.ReentrantNodeIterator$LoopInfo of org.graalvm.compiler.phases.graph.ReentrantNodeIterator
  public abstract NodeIteratorClosure = org.graalvm.compiler.phases.graph.ReentrantNodeIterator$NodeIteratorClosure of org.graalvm.compiler.phases.graph.ReentrantNodeIterator