public class org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor extends org.graalvm.compiler.virtual.phases.ea.EffectsClosure<BlockT>.MergeProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor
  super_class: org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor
{
  private java.util.HashMap<java.lang.Object, org.graalvm.compiler.nodes.ValuePhiNode> materializedPhis;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Object;Lorg/graalvm/compiler/nodes/ValuePhiNode;>;

  private java.util.Map<org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode[]> valuePhis;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lorg/graalvm/compiler/nodes/ValueNode;[Lorg/graalvm/compiler/nodes/ValuePhiNode;>;

  private java.util.Map<org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode> valueObjectVirtuals;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;>;

  private final boolean needsCaching;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure this$0;
    descriptor: Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 543
            ldc Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            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.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure, org.graalvm.compiler.nodes.cfg.Block);
    descriptor: (Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 2 // org.graalvm.compiler.nodes.cfg.Block mergeBlock
         0: .line 550
            aload 0 /* this */
            aload 1
            putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
         1: .line 551
            aload 0 /* this */
            aload 1
            aload 2 /* mergeBlock */
            invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor.<init>:(Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure;Lorg/graalvm/compiler/nodes/cfg/Block;)V
         2: .line 552
            aload 0 /* this */
            aload 2 /* mergeBlock */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.isLoopHeader:()Z
            putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
         3: .line 553
            return
        end local 2 // org.graalvm.compiler.nodes.cfg.Block mergeBlock
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    4     2  mergeBlock  Lorg/graalvm/compiler/nodes/cfg/Block;
    MethodParameters:
            Name  Flags
      this$0      final
      mergeBlock  

  protected <T> org.graalvm.compiler.nodes.PhiNode getPhi(T, org.graalvm.compiler.core.common.type.Stamp);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // java.lang.Object virtual
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
         0: .line 556
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
            ifeq 2
         1: .line 557
            aload 0 /* this */
            aload 1 /* virtual */
            aload 2 /* stamp */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiCached:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
            areturn
         2: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* stamp */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
            areturn
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 1 // java.lang.Object virtual
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    3     1  virtual  TT;
            0    3     2    stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
    Signature: <T:Ljava/lang/Object;>(TT;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
    MethodParameters:
         Name  Flags
      virtual  
      stamp    

  private <T> org.graalvm.compiler.nodes.PhiNode getPhiCached(T, org.graalvm.compiler.core.common.type.Stamp);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // java.lang.Object virtual
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
         0: .line 564
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 565
            aload 0 /* this */
            invokestatic org.graalvm.compiler.core.common.CollectionsFactory.newMap:()Ljava/util/HashMap;
            putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljava/util/HashMap;
         2: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljava/util/HashMap;
            aload 1 /* virtual */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.nodes.ValuePhiNode result
         3: .line 568
            aload 3 /* result */
            ifnonnull 6
         4: .line 569
            aload 0 /* this */
            aload 2 /* stamp */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
            astore 3 /* result */
         5: .line 570
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.materializedPhis:Ljava/util/HashMap;
            aload 1 /* virtual */
            aload 3 /* result */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 572
      StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValuePhiNode result
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 1 // java.lang.Object virtual
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    7     1  virtual  TT;
            0    7     2    stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    7     3   result  Lorg/graalvm/compiler/nodes/ValuePhiNode;
    Signature: <T:Ljava/lang/Object;>(TT;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
    MethodParameters:
         Name  Flags
      virtual  
      stamp    

  private org.graalvm.compiler.nodes.PhiNode[] getValuePhis(org.graalvm.compiler.nodes.ValueNode, int);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.nodes.ValueNode key
        start local 2 // int entryCount
         0: .line 576
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
            ifeq 2
         1: .line 577
            aload 0 /* this */
            aload 1 /* key */
            iload 2 /* entryCount */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValuePhisCached:(Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
            areturn
         2: .line 579
      StackMap locals:
      StackMap stack:
            iload 2 /* entryCount */
            anewarray org.graalvm.compiler.nodes.ValuePhiNode
            areturn
        end local 2 // int entryCount
        end local 1 // org.graalvm.compiler.nodes.ValueNode key
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    3     1         key  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2  entryCount  I
    MethodParameters:
            Name  Flags
      key         
      entryCount  

  private org.graalvm.compiler.nodes.PhiNode[] getValuePhisCached(org.graalvm.compiler.nodes.ValueNode, int);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.nodes.ValueNode key
        start local 2 // int entryCount
         0: .line 584
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljava/util/Map;
            ifnonnull 2
         1: .line 585
            aload 0 /* this */
            invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
            putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljava/util/Map;
         2: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValuePhiNode[]
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.nodes.ValuePhiNode[] result
         3: .line 588
            aload 3 /* result */
            ifnonnull 6
         4: .line 589
            iload 2 /* entryCount */
            anewarray org.graalvm.compiler.nodes.ValuePhiNode
            astore 3 /* result */
         5: .line 590
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valuePhis:Ljava/util/Map;
            aload 1 /* key */
            aload 3 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 592
      StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode[]
      StackMap stack:
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            ifne 7
            aload 3 /* result */
            arraylength
            iload 2 /* entryCount */
            if_icmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 593
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValuePhiNode[] result
        end local 2 // int entryCount
        end local 1 // org.graalvm.compiler.nodes.ValueNode key
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    8     1         key  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     2  entryCount  I
            3    8     3      result  [Lorg/graalvm/compiler/nodes/ValuePhiNode;
    MethodParameters:
            Name  Flags
      key         
      entryCount  

  private org.graalvm.compiler.nodes.virtual.VirtualObjectNode getValueObjectVirtual(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        start local 2 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         0: .line 597
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.needsCaching:Z
            ifeq 2
         1: .line 598
            aload 0 /* this */
            aload 1 /* phi */
            aload 2 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValueObjectVirtualCached:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            areturn
         2: .line 600
      StackMap locals:
      StackMap stack:
            aload 2 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.duplicate:()Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    3     1      phi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
            0    3     2  virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    MethodParameters:
         Name  Flags
      phi      
      virtual  

  private org.graalvm.compiler.nodes.virtual.VirtualObjectNode getValueObjectVirtualCached(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        start local 2 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         0: .line 605
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljava/util/Map;
            ifnonnull 2
         1: .line 606
            aload 0 /* this */
            invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
            putfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljava/util/Map;
         2: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljava/util/Map;
            aload 1 /* phi */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode result
         3: .line 609
            aload 3 /* result */
            ifnonnull 6
         4: .line 610
            aload 2 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.duplicate:()Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            astore 3 /* result */
         5: .line 611
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.valueObjectVirtuals:Ljava/util/Map;
            aload 1 /* phi */
            aload 3 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 613
      StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode result
        end local 2 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0    7     1      phi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
            0    7     2  virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            3    7     3   result  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    MethodParameters:
         Name  Flags
      phi      
      virtual  

  protected void merge(java.util.List<BlockT>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=18, args_size=2
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // java.util.List statesList
         0: .line 627
            aload 0 /* this */
            aload 1 /* statesList */
            invokespecial org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor.merge:(Ljava/util/List;)V
         1: .line 629
            aload 1 /* statesList */
            invokeinterface java.util.List.size:()I
            anewarray org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            astore 2 /* states */
        start local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
         2: .line 630
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 631
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int
      StackMap stack:
            aload 2 /* states */
            iload 3 /* i */
            aload 1 /* statesList */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            aastore
         5: .line 630
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* statesList */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 3 // int i
         7: .line 635
            aload 0 /* this */
            aload 2 /* states */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.intersectVirtualObjects:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)[I
            astore 3 /* virtualObjTemp */
        start local 3 // int[] virtualObjTemp
         8: .line 639
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[]
      StackMap stack:
            iconst_0
            istore 4 /* materialized */
        start local 4 // boolean materialized
         9: .line 641
            aload 2 /* states */
            invokestatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.identicalObjectStates:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
            ifeq 12
        10: .line 642
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            aload 2 /* states */
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.adoptAddObjectStates:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)V
        11: .line 643
            goto 60
        12: .line 645
      StackMap locals: int
      StackMap stack:
            aload 3 /* virtualObjTemp */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 59
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int top int int int[]
      StackMap stack:
        13: aload 8
            iload 6
            iaload
            istore 5 /* object */
        start local 5 // int object
        14: .line 647
            aload 2 /* states */
            iload 5 /* object */
            invokestatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.identicalObjectStates:([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;I)Z
            ifeq 17
        15: .line 648
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            iload 5 /* object */
            aload 2 /* states */
            iconst_0
            aaload
            iload 5 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.share:()Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
        16: .line 649
            goto 58
        17: .line 653
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int int int int int[]
      StackMap stack:
            iconst_0
            istore 9 /* virtualCount */
        start local 9 // int virtualCount
        18: .line 654
            aload 2 /* states */
            iconst_0
            aaload
            iload 5 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 10 /* startObj */
        start local 10 // org.graalvm.compiler.virtual.phases.ea.ObjectState startObj
        19: .line 655
            iconst_1
            istore 11 /* locksMatch */
        start local 11 // boolean locksMatch
        20: .line 656
            iconst_1
            istore 12 /* ensureVirtual */
        start local 12 // boolean ensureVirtual
        21: .line 657
            aload 10 /* startObj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 22
            aconst_null
            goto 23
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int int int int int[] int org.graalvm.compiler.virtual.phases.ea.ObjectState int int
      StackMap stack:
        22: aload 10 /* startObj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
        23: astore 13 /* uniqueMaterializedValue */
        start local 13 // org.graalvm.compiler.nodes.ValueNode uniqueMaterializedValue
        24: .line 658
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        25: goto 36
        26: .line 659
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 2 /* states */
            iload 14 /* i */
            aaload
            iload 5 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 15 /* obj */
        start local 15 // org.graalvm.compiler.virtual.phases.ea.ObjectState obj
        27: .line 660
            iload 12 /* ensureVirtual */
            aload 15 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
            iand
            istore 12 /* ensureVirtual */
        28: .line 661
            aload 15 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 33
        29: .line 662
            iinc 9 /* virtualCount */ 1
        30: .line 663
            aconst_null
            astore 13 /* uniqueMaterializedValue */
        31: .line 664
            iload 11 /* locksMatch */
            aload 15 /* obj */
            aload 10 /* startObj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.locksEqual:(Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;)Z
            iand
            istore 11 /* locksMatch */
        32: .line 665
            goto 35
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState
      StackMap stack:
        33: aload 15 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 13 /* uniqueMaterializedValue */
            if_acmpeq 35
        34: .line 666
            aconst_null
            astore 13 /* uniqueMaterializedValue */
        end local 15 // org.graalvm.compiler.virtual.phases.ea.ObjectState obj
        35: .line 658
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 14 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 26
        end local 14 // int i
        37: .line 670
            iload 9 /* virtualCount */
            aload 2 /* states */
            arraylength
            if_icmpne 40
            iload 11 /* locksMatch */
            ifeq 40
        38: .line 671
            iload 4 /* materialized */
            aload 0 /* this */
            iload 5 /* object */
            aconst_null
            aload 2 /* states */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectStates:(I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
            ior
            istore 4 /* materialized */
        39: .line 672
            goto 58
        40: .line 673
      StackMap locals:
      StackMap stack:
            aload 13 /* uniqueMaterializedValue */
            ifnull 43
        41: .line 674
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            iload 5 /* object */
            new org.graalvm.compiler.virtual.phases.ea.ObjectState
            dup
            aload 13 /* uniqueMaterializedValue */
            aconst_null
            iload 12 /* ensureVirtual */
            invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
        42: .line 675
            goto 58
        43: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* object */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhi:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
            astore 14 /* materializedValuePhi */
        start local 14 // org.graalvm.compiler.nodes.PhiNode materializedValuePhi
        44: .line 677
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            aload 14 /* materializedValuePhi */
            ldc "materializedPhi"
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
        45: .line 678
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        46: goto 56
        47: .line 679
      StackMap locals: org.graalvm.compiler.nodes.PhiNode int
      StackMap stack:
            aload 2 /* states */
            iload 15 /* i */
            aaload
            iload 5 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 16 /* obj */
        start local 16 // org.graalvm.compiler.virtual.phases.ea.ObjectState obj
        48: .line 680
            aload 16 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 54
        49: .line 681
            aload 0 /* this */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
            astore 17 /* predecessor */
        start local 17 // org.graalvm.compiler.nodes.cfg.Block predecessor
        50: .line 682
            iload 12 /* ensureVirtual */
            ifne 52
            aload 16 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 52
        51: .line 685
            aload 16 /* obj */
            iconst_0
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
        52: .line 687
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            iload 4 /* materialized */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 2 /* states */
            iload 15 /* i */
            aaload
            iload 5 /* object */
            aload 17 /* predecessor */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 17 /* predecessor */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/DebugCounter;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/DebugCounter;)Z
            ior
            istore 4 /* materialized */
        53: .line 688
            aload 2 /* states */
            iload 15 /* i */
            aaload
            iload 5 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 16 /* obj */
        end local 17 // org.graalvm.compiler.nodes.cfg.Block predecessor
        54: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* materializedValuePhi */
            iload 15 /* i */
            aload 16 /* obj */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 16 // org.graalvm.compiler.virtual.phases.ea.ObjectState obj
        55: .line 678
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 15 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 47
        end local 15 // int i
        57: .line 692
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            iload 5 /* object */
            new org.graalvm.compiler.virtual.phases.ea.ObjectState
            dup
            aload 14 /* materializedValuePhi */
            aconst_null
            iconst_0
            invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
        end local 14 // org.graalvm.compiler.nodes.PhiNode materializedValuePhi
        end local 13 // org.graalvm.compiler.nodes.ValueNode uniqueMaterializedValue
        end local 12 // boolean ensureVirtual
        end local 11 // boolean locksMatch
        end local 10 // org.graalvm.compiler.virtual.phases.ea.ObjectState startObj
        end local 9 // int virtualCount
        end local 5 // int object
        58: .line 645
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int top int int int[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        59: iload 6
            iload 7
            if_icmplt 13
        60: .line 698
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 65
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int top java.util.Iterator
      StackMap stack:
        61: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 5 /* phi */
        start local 5 // org.graalvm.compiler.nodes.PhiNode phi
        62: .line 699
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.aliases:Lorg/graalvm/compiler/graph/NodeMap;
            aload 5 /* phi */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.NodeMap.set:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)V
        63: .line 700
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.hasVirtualInputs:Lorg/graalvm/compiler/graph/NodeBitMap;
            aload 5 /* phi */
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.isMarked:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 65
            aload 5 /* phi */
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 65
        64: .line 701
            iload 4 /* materialized */
            aload 0 /* this */
            aload 5 /* phi */
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            aload 2 /* states */
            aload 3 /* virtualObjTemp */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.processPhi:(Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;[I)Z
            ior
            istore 4 /* materialized */
        end local 5 // org.graalvm.compiler.nodes.PhiNode phi
        65: .line 698
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        66: .line 704
            iload 4 /* materialized */
            ifeq 70
        67: .line 705
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.resetObjectStates:(I)V
        68: .line 706
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.clear:()V
        69: .line 707
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.afterMergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.clear:()V
        70: .line 709
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor java.util.List org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int
      StackMap stack:
            iload 4 /* materialized */
            ifne 8
        71: .line 710
            return
        end local 4 // boolean materialized
        end local 3 // int[] virtualObjTemp
        end local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        end local 1 // java.util.List statesList
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   72     0                     this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0   72     1               statesList  Ljava/util/List<TBlockT;>;
            2   72     2                   states  [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
            3    7     3                        i  I
            8   72     3           virtualObjTemp  [I
            9   72     4             materialized  Z
           14   58     5                   object  I
           18   58     9             virtualCount  I
           19   58    10                 startObj  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           20   58    11               locksMatch  Z
           21   58    12            ensureVirtual  Z
           24   58    13  uniqueMaterializedValue  Lorg/graalvm/compiler/nodes/ValueNode;
           25   37    14                        i  I
           27   35    15                      obj  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           44   58    14     materializedValuePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           46   57    15                        i  I
           48   55    16                      obj  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           50   54    17              predecessor  Lorg/graalvm/compiler/nodes/cfg/Block;
           62   65     5                      phi  Lorg/graalvm/compiler/nodes/PhiNode;
    Signature: (Ljava/util/List<TBlockT;>;)V
    MethodParameters:
            Name  Flags
      statesList  

  private int[] intersectVirtualObjects(org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[]);
    descriptor: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
         0: .line 713
            aload 1 /* states */
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getStateCount:()I
            istore 2 /* length */
        start local 2 // int length
         1: .line 714
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 715
      StackMap locals: int int
      StackMap stack:
            iload 2 /* length */
            aload 1 /* states */
            iload 3 /* i */
            aaload
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getStateCount:()I
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* length */
         4: .line 714
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* states */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 717
            iload 2 /* length */
            newarray 4
            astore 3 /* result */
        start local 3 // boolean[] result
         7: .line 718
            aload 3 /* result */
            iconst_1
            invokestatic java.util.Arrays.fill:([ZZ)V
         8: .line 719
            iload 2 /* length */
            istore 4 /* count */
        start local 4 // int count
         9: .line 720
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 21
        11: .line 721
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int boolean[] int int
      StackMap stack:
            aload 1 /* states */
            iload 5 /* i */
            aaload
            astore 6 /* state */
        start local 6 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState state
        12: .line 722
            iconst_0
            istore 7 /* i2 */
        start local 7 // int i2
        13: goto 19
        14: .line 723
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState int
      StackMap stack:
            aload 3 /* result */
            iload 7 /* i2 */
            baload
            ifeq 18
        15: .line 724
            aload 6 /* state */
            iload 7 /* i2 */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectStateOptional:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            ifnonnull 18
        16: .line 725
            aload 3 /* result */
            iload 7 /* i2 */
            iconst_0
            bastore
        17: .line 726
            iinc 4 /* count */ -1
        18: .line 722
      StackMap locals:
      StackMap stack:
            iinc 7 /* i2 */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i2 */
            iload 2 /* length */
            if_icmplt 14
        end local 7 // int i2
        end local 6 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState state
        20: .line 720
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            aload 1 /* states */
            arraylength
            if_icmplt 11
        end local 5 // int i
        22: .line 731
            iload 4 /* count */
            newarray 10
            astore 5 /* resultInts */
        start local 5 // int[] resultInts
        23: .line 732
            iconst_0
            istore 6 /* index */
        start local 6 // int index
        24: .line 733
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        25: goto 29
        26: .line 734
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int boolean[] int int[] int int
      StackMap stack:
            aload 3 /* result */
            iload 7 /* i */
            baload
            ifeq 28
        27: .line 735
            aload 5 /* resultInts */
            iload 6 /* index */
            iinc 6 /* index */ 1
            iload 7 /* i */
            iastore
        28: .line 733
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 7 /* i */
            iload 2 /* length */
            if_icmplt 26
        end local 7 // int i
        30: .line 738
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            ifne 31
            iload 6 /* index */
            iload 4 /* count */
            if_icmpeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 739
      StackMap locals:
      StackMap stack:
            aload 5 /* resultInts */
            areturn
        end local 6 // int index
        end local 5 // int[] resultInts
        end local 4 // int count
        end local 3 // boolean[] result
        end local 2 // int length
        end local 1 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0   32     1      states  [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
            1   32     2      length  I
            2    6     3           i  I
            7   32     3      result  [Z
            9   32     4       count  I
           10   22     5           i  I
           12   20     6       state  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;
           13   20     7          i2  I
           23   32     5  resultInts  [I
           24   32     6       index  I
           25   30     7           i  I
    Signature: ([Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)[I
    MethodParameters:
        Name  Flags
      states  

  private boolean mergeObjectStates(int, int[], org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[]);
    descriptor: (I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=18, args_size=4
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // int resultObject
        start local 2 // int[] sourceObjects
        start local 3 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
         0: .line 754
            iconst_1
            istore 4 /* compatible */
        start local 4 // boolean compatible
         1: .line 755
            iconst_1
            istore 5 /* ensureVirtual */
        start local 5 // boolean ensureVirtual
         2: .line 756
            aload 2 /* sourceObjects */
            iload 1 /* resultObject */
            invokedynamic apply([II)Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  org/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor.lambda$0([III)Ljava/lang/Integer; (6)
                  (I)Ljava/lang/Integer;
            astore 6 /* getObject */
        start local 6 // java.util.function.IntFunction getObject
         3: .line 758
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
            iload 1 /* resultObject */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 7 /* virtual */
        start local 7 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         4: .line 759
            aload 7 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            istore 8 /* entryCount */
        start local 8 // int entryCount
         5: .line 762
            aconst_null
            astore 9 /* twoSlotKinds */
        start local 9 // jdk.vm.ci.meta.JavaKind[] twoSlotKinds
         6: .line 763
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         7: goto 29
         8: .line 764
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntFunction org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int
      StackMap stack:
            aload 3 /* states */
            iload 10 /* i */
            aaload
            aload 6 /* getObject */
            iload 10 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 11 /* objectState */
        start local 11 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
         9: .line 765
            aload 11 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntries:()[Lorg/graalvm/compiler/nodes/ValueNode;
            astore 12 /* entries */
        start local 12 // org.graalvm.compiler.nodes.ValueNode[] entries
        10: .line 766
            iconst_0
            istore 13 /* valueIndex */
        start local 13 // int valueIndex
        11: .line 767
            iload 5 /* ensureVirtual */
            aload 11 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
            iand
            istore 5 /* ensureVirtual */
        12: .line 768
            goto 27
        13: .line 769
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.ValueNode[] int
      StackMap stack:
            aload 12 /* entries */
            iload 13 /* valueIndex */
            aaload
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 14 /* otherKind */
        start local 14 // jdk.vm.ci.meta.JavaKind otherKind
        14: .line 770
            aload 7 /* virtual */
            iload 13 /* valueIndex */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            astore 15 /* entryKind */
        start local 15 // jdk.vm.ci.meta.JavaKind entryKind
        15: .line 771
            aload 15 /* entryKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 24
            aload 14 /* otherKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.needsTwoSlots:()Z
            ifeq 24
        16: .line 772
            aload 9 /* twoSlotKinds */
            ifnonnull 18
        17: .line 773
            iload 8 /* entryCount */
            anewarray jdk.vm.ci.meta.JavaKind
            astore 9 /* twoSlotKinds */
        18: .line 775
      StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 9 /* twoSlotKinds */
            iload 13 /* valueIndex */
            aaload
            ifnull 21
            aload 9 /* twoSlotKinds */
            iload 13 /* valueIndex */
            aaload
            aload 14 /* otherKind */
            if_acmpeq 21
        19: .line 776
            iconst_0
            istore 4 /* compatible */
        20: .line 777
            goto 30
        21: .line 779
      StackMap locals:
      StackMap stack:
            aload 9 /* twoSlotKinds */
            iload 13 /* valueIndex */
            aload 14 /* otherKind */
            aastore
        22: .line 781
            iinc 13 /* valueIndex */ 1
        23: .line 782
            goto 26
        24: .line 783
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            ifne 26
            aload 15 /* entryKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 14 /* otherKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 26
            aload 15 /* entryKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 25
            aload 14 /* otherKind */
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 26
        25: .line 784
      StackMap locals:
      StackMap stack:
            aload 15 /* entryKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            aload 14 /* otherKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            if_icmpge 26
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 15 /* entryKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " vs "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* otherKind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        26: .line 786
      StackMap locals:
      StackMap stack:
            iinc 13 /* valueIndex */ 1
        end local 15 // jdk.vm.ci.meta.JavaKind entryKind
        end local 14 // jdk.vm.ci.meta.JavaKind otherKind
        27: .line 768
      StackMap locals:
      StackMap stack:
            iload 13 /* valueIndex */
            iload 8 /* entryCount */
            if_icmplt 13
        end local 13 // int valueIndex
        end local 12 // org.graalvm.compiler.nodes.ValueNode[] entries
        end local 11 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        28: .line 763
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* i */
            aload 3 /* states */
            arraylength
            if_icmplt 8
        end local 10 // int i
        30: .line 789
      StackMap locals:
      StackMap stack:
            iload 4 /* compatible */
            ifeq 54
            aload 9 /* twoSlotKinds */
            ifnull 54
        31: .line 791
            iconst_0
            istore 10 /* valueIndex */
        start local 10 // int valueIndex
        32: goto 53
        33: .line 792
      StackMap locals: int
      StackMap stack:
            aload 9 /* twoSlotKinds */
            iload 10 /* valueIndex */
            aaload
            ifnull 52
        34: .line 793
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            ifne 36
            iload 10 /* valueIndex */
            aload 7 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            iconst_1
            isub
            if_icmpge 35
            aload 7 /* virtual */
            iload 10 /* valueIndex */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 35
            aload 7 /* virtual */
            iload 10 /* valueIndex */
            iconst_1
            iadd
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 36
      StackMap locals:
      StackMap stack:
        35: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 794
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        37: goto 51
        38: .line 795
      StackMap locals: int
      StackMap stack:
            aload 6 /* getObject */
            iload 11 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 12 /* object */
        start local 12 // int object
        39: .line 796
            aload 3 /* states */
            iload 11 /* i */
            aaload
            iload 12 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 13 /* objectState */
        start local 13 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        40: .line 797
            aload 13 /* objectState */
            iload 10 /* valueIndex */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 14 /* value */
        start local 14 // org.graalvm.compiler.nodes.ValueNode value
        41: .line 798
            aload 14 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 15 /* valueKind */
        start local 15 // jdk.vm.ci.meta.JavaKind valueKind
        42: .line 799
            aload 15 /* valueKind */
            aload 9 /* twoSlotKinds */
            iload 10 /* valueIndex */
            aaload
            if_acmpeq 50
        43: .line 800
            aload 13 /* objectState */
            iload 10 /* valueIndex */
            iconst_1
            iadd
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* nextValue */
        start local 16 // org.graalvm.compiler.nodes.ValueNode nextValue
        44: .line 801
            aload 14 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 48
            aload 14 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            getstatic jdk.vm.ci.meta.JavaConstant.INT_0:Ljdk/vm/ci/meta/PrimitiveConstant;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 48
            aload 16 /* nextValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 48
            aload 16 /* nextValue */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            getstatic jdk.vm.ci.meta.JavaConstant.INT_0:Ljdk/vm/ci/meta/PrimitiveConstant;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 48
        45: .line 803
            aload 3 /* states */
            iload 11 /* i */
            aaload
            iload 12 /* object */
            iload 10 /* valueIndex */
            aload 9 /* twoSlotKinds */
            iload 10 /* valueIndex */
            aaload
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.defaultForKind:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
        46: .line 804
            aload 3 /* states */
            iload 11 /* i */
            aaload
            iload 12 /* object */
            iload 10 /* valueIndex */
            iconst_1
            iadd
            invokestatic jdk.vm.ci.meta.JavaConstant.forIllegal:()Ljdk/vm/ci/meta/PrimitiveConstant;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessProvider:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
        47: .line 805
            goto 50
        48: .line 806
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntFunction org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int int int org.graalvm.compiler.virtual.phases.ea.ObjectState org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iconst_0
            istore 4 /* compatible */
        49: .line 807
            goto 54
        end local 16 // org.graalvm.compiler.nodes.ValueNode nextValue
        end local 15 // jdk.vm.ci.meta.JavaKind valueKind
        end local 14 // org.graalvm.compiler.nodes.ValueNode value
        end local 13 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        end local 12 // int object
        50: .line 794
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntFunction org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[] int int
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 11 /* i */
            aload 3 /* states */
            arraylength
            if_icmplt 38
        end local 11 // int i
        52: .line 791
      StackMap locals:
      StackMap stack:
            iinc 10 /* valueIndex */ 1
      StackMap locals:
      StackMap stack:
        53: iload 10 /* valueIndex */
            iload 8 /* entryCount */
            if_icmplt 33
        end local 10 // int valueIndex
        54: .line 815
      StackMap locals:
      StackMap stack:
            iload 4 /* compatible */
            ifeq 97
        55: .line 817
            aload 3 /* states */
            iconst_0
            aaload
            aload 6 /* getObject */
            iconst_0
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntries:()[Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode[].clone:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode[]
            astore 10 /* values */
        start local 10 // org.graalvm.compiler.nodes.ValueNode[] values
        56: .line 818
            aload 0 /* this */
            aload 7 /* virtual */
            aload 7 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValuePhis:(Lorg/graalvm/compiler/nodes/ValueNode;I)[Lorg/graalvm/compiler/nodes/PhiNode;
            astore 11 /* phis */
        start local 11 // org.graalvm.compiler.nodes.PhiNode[] phis
        57: .line 819
            iconst_0
            istore 12 /* valueIndex */
        start local 12 // int valueIndex
        58: .line 820
            goto 74
        59: .line 821
      StackMap locals: org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.PhiNode[] int
      StackMap stack:
            iconst_1
            istore 13 /* i */
        start local 13 // int i
        60: goto 66
        61: .line 822
      StackMap locals: int
      StackMap stack:
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aaload
            ifnonnull 65
        62: .line 823
            aload 3 /* states */
            iload 13 /* i */
            aaload
            aload 6 /* getObject */
            iload 13 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            iload 12 /* valueIndex */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 14 /* field */
        start local 14 // org.graalvm.compiler.nodes.ValueNode field
        63: .line 824
            aload 10 /* values */
            iload 12 /* valueIndex */
            aaload
            aload 14 /* field */
            if_acmpeq 65
        64: .line 825
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aload 0 /* this */
            aload 10 /* values */
            iload 12 /* valueIndex */
            aaload
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
            aastore
        end local 14 // org.graalvm.compiler.nodes.ValueNode field
        65: .line 821
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        66: iload 13 /* i */
            aload 3 /* states */
            arraylength
            if_icmplt 61
        end local 13 // int i
        67: .line 829
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aaload
            ifnull 69
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aaload
            invokevirtual org.graalvm.compiler.nodes.PhiNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 10 /* values */
            iload 12 /* valueIndex */
            aaload
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifne 69
        68: .line 830
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aload 0 /* this */
            aload 10 /* values */
            iload 12 /* valueIndex */
            aaload
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.createValuePhi:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ValuePhiNode;
            aastore
        69: .line 832
      StackMap locals:
      StackMap stack:
            aload 9 /* twoSlotKinds */
            ifnull 73
            aload 9 /* twoSlotKinds */
            iload 12 /* valueIndex */
            aaload
            ifnull 73
        70: .line 834
            iinc 12 /* valueIndex */ 1
        71: .line 835
            aload 11 /* phis */
            iload 12 /* valueIndex */
            aconst_null
            aastore
        72: .line 836
            aload 10 /* values */
            iload 12 /* valueIndex */
            invokestatic jdk.vm.ci.meta.JavaConstant.forIllegal:()Ljdk/vm/ci/meta/PrimitiveConstant;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.tool:Lorg/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.VirtualizerToolImpl.getMetaAccessProvider:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            aastore
        73: .line 838
      StackMap locals:
      StackMap stack:
            iinc 12 /* valueIndex */ 1
        74: .line 820
      StackMap locals:
      StackMap stack:
            iload 12 /* valueIndex */
            aload 10 /* values */
            arraylength
            if_icmplt 59
        75: .line 841
            iconst_0
            istore 13 /* materialized */
        start local 13 // boolean materialized
        76: .line 842
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        77: goto 94
        78: .line 843
      StackMap locals: int int
      StackMap stack:
            aload 11 /* phis */
            iload 14 /* i */
            aaload
            astore 15 /* phi */
        start local 15 // org.graalvm.compiler.nodes.PhiNode phi
        79: .line 844
            aload 15 /* phi */
            ifnull 93
        80: .line 845
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            aload 15 /* phi */
            ldc "virtualMergePhi"
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
        81: .line 846
            aload 7 /* virtual */
            iload 14 /* i */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryKind:(I)Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 84
        82: .line 847
            iload 13 /* materialized */
            aload 0 /* this */
            aload 6 /* getObject */
            aload 3 /* states */
            aload 15 /* phi */
            iload 14 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectEntry:(Ljava/util/function/IntFunction;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
            ior
            istore 13 /* materialized */
        83: .line 848
            goto 92
        84: .line 849
      StackMap locals: org.graalvm.compiler.nodes.PhiNode
      StackMap stack:
            iconst_0
            istore 16 /* i2 */
        start local 16 // int i2
        85: goto 91
        86: .line 850
      StackMap locals: int
      StackMap stack:
            aload 3 /* states */
            iload 16 /* i2 */
            aaload
            aload 6 /* getObject */
            iload 16 /* i2 */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 17 /* state */
        start local 17 // org.graalvm.compiler.virtual.phases.ea.ObjectState state
        87: .line 851
            aload 17 /* state */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifne 89
        88: .line 852
            goto 92
        89: .line 854
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.ObjectState
      StackMap stack:
            aload 0 /* this */
            aload 15 /* phi */
            iload 16 /* i2 */
            aload 17 /* state */
            iload 14 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 17 // org.graalvm.compiler.virtual.phases.ea.ObjectState state
        90: .line 849
            iinc 16 /* i2 */ 1
      StackMap locals:
      StackMap stack:
        91: iload 16 /* i2 */
            aload 3 /* states */
            arraylength
            if_icmplt 86
        end local 16 // int i2
        92: .line 857
      StackMap locals:
      StackMap stack:
            aload 10 /* values */
            iload 14 /* i */
            aload 15 /* phi */
            aastore
        end local 15 // org.graalvm.compiler.nodes.PhiNode phi
        93: .line 842
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        94: iload 14 /* i */
            aload 10 /* values */
            arraylength
            if_icmplt 78
        end local 14 // int i
        95: .line 860
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            iload 1 /* resultObject */
            new org.graalvm.compiler.virtual.phases.ea.ObjectState
            dup
            aload 10 /* values */
            aload 3 /* states */
            iconst_0
            aaload
            aload 6 /* getObject */
            iconst_0
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getLocks:()Lorg/graalvm/compiler/nodes/virtual/LockState;
            iload 5 /* ensureVirtual */
            invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:([Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
        96: .line 861
            iload 13 /* materialized */
            ireturn
        end local 13 // boolean materialized
        end local 12 // int valueIndex
        end local 11 // org.graalvm.compiler.nodes.PhiNode[] phis
        end local 10 // org.graalvm.compiler.nodes.ValueNode[] values
        97: .line 864
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor int int[] org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int int java.util.function.IntFunction org.graalvm.compiler.nodes.virtual.VirtualObjectNode int jdk.vm.ci.meta.JavaKind[]
      StackMap stack:
            aload 0 /* this */
            iload 1 /* resultObject */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhi:(Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PhiNode;
            astore 10 /* materializedValuePhi */
        start local 10 // org.graalvm.compiler.nodes.PhiNode materializedValuePhi
        98: .line 865
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        99: goto 106
       100: .line 866
      StackMap locals: org.graalvm.compiler.nodes.PhiNode int
      StackMap stack:
            aload 0 /* this */
            iload 11 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
            astore 12 /* predecessor */
        start local 12 // org.graalvm.compiler.nodes.cfg.Block predecessor
       101: .line 867
            iload 5 /* ensureVirtual */
            ifne 103
            aload 3 /* states */
            iload 11 /* i */
            aaload
            aload 7 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 103
       102: .line 869
            aload 3 /* states */
            iload 11 /* i */
            aaload
            aload 7 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            iconst_0
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
       103: .line 871
      StackMap locals: org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 3 /* states */
            iload 11 /* i */
            aaload
            aload 6 /* getObject */
            iload 11 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 12 /* predecessor */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 12 /* predecessor */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/DebugCounter;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/DebugCounter;)Z
            pop
       104: .line 872
            aload 0 /* this */
            aload 10 /* materializedValuePhi */
            iload 11 /* i */
            aload 3 /* states */
            iload 11 /* i */
            aaload
            aload 6 /* getObject */
            iload 11 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 12 // org.graalvm.compiler.nodes.cfg.Block predecessor
       105: .line 865
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
       106: iload 11 /* i */
            aload 3 /* states */
            arraylength
            if_icmplt 100
        end local 11 // int i
       107: .line 874
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.newState:Lorg/graalvm/compiler/virtual/phases/ea/EffectsBlockState;
            checkcast org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState
            iload 1 /* resultObject */
            new org.graalvm.compiler.virtual.phases.ea.ObjectState
            dup
            aload 10 /* materializedValuePhi */
            aconst_null
            iload 5 /* ensureVirtual */
            invokespecial org.graalvm.compiler.virtual.phases.ea.ObjectState.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/virtual/LockState;Z)V
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.addObject:(ILorg/graalvm/compiler/virtual/phases/ea/ObjectState;)V
       108: .line 875
            iconst_1
            ireturn
        end local 10 // org.graalvm.compiler.nodes.PhiNode materializedValuePhi
        end local 9 // jdk.vm.ci.meta.JavaKind[] twoSlotKinds
        end local 8 // int entryCount
        end local 7 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 6 // java.util.function.IntFunction getObject
        end local 5 // boolean ensureVirtual
        end local 4 // boolean compatible
        end local 3 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        end local 2 // int[] sourceObjects
        end local 1 // int resultObject
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  109     0                  this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0  109     1          resultObject  I
            0  109     2         sourceObjects  [I
            0  109     3                states  [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
            1  109     4            compatible  Z
            2  109     5         ensureVirtual  Z
            3  109     6             getObject  Ljava/util/function/IntFunction<Ljava/lang/Integer;>;
            4  109     7               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            5  109     8            entryCount  I
            6  109     9          twoSlotKinds  [Ljdk/vm/ci/meta/JavaKind;
            7   30    10                     i  I
            9   28    11           objectState  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           10   28    12               entries  [Lorg/graalvm/compiler/nodes/ValueNode;
           11   28    13            valueIndex  I
           14   27    14             otherKind  Ljdk/vm/ci/meta/JavaKind;
           15   27    15             entryKind  Ljdk/vm/ci/meta/JavaKind;
           32   54    10            valueIndex  I
           37   52    11                     i  I
           39   50    12                object  I
           40   50    13           objectState  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           41   50    14                 value  Lorg/graalvm/compiler/nodes/ValueNode;
           42   50    15             valueKind  Ljdk/vm/ci/meta/JavaKind;
           44   50    16             nextValue  Lorg/graalvm/compiler/nodes/ValueNode;
           56   97    10                values  [Lorg/graalvm/compiler/nodes/ValueNode;
           57   97    11                  phis  [Lorg/graalvm/compiler/nodes/PhiNode;
           58   97    12            valueIndex  I
           60   67    13                     i  I
           63   65    14                 field  Lorg/graalvm/compiler/nodes/ValueNode;
           76   97    13          materialized  Z
           77   95    14                     i  I
           79   93    15                   phi  Lorg/graalvm/compiler/nodes/PhiNode;
           85   92    16                    i2  I
           87   90    17                 state  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           98  109    10  materializedValuePhi  Lorg/graalvm/compiler/nodes/PhiNode;
           99  107    11                     i  I
          101  105    12           predecessor  Lorg/graalvm/compiler/nodes/cfg/Block;
    Signature: (I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;)Z
    MethodParameters:
               Name  Flags
      resultObject   
      sourceObjects  
      states         

  private boolean mergeObjectEntry(java.util.function.IntFunction<java.lang.Integer>, org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[], org.graalvm.compiler.nodes.PhiNode, );
    descriptor: (Ljava/util/function/IntFunction;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // java.util.function.IntFunction objectIdFunc
        start local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        start local 3 // org.graalvm.compiler.nodes.PhiNode phi
        start local 4 // int entryIndex
         0: .line 886
            iconst_0
            istore 5 /* materialized */
        start local 5 // boolean materialized
         1: .line 887
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 17
         3: .line 888
      StackMap locals: int int
      StackMap stack:
            aload 1 /* objectIdFunc */
            iload 6 /* i */
            invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 7 /* object */
        start local 7 // int object
         4: .line 889
            aload 2 /* states */
            iload 6 /* i */
            aaload
            iload 7 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 8 /* objectState */
        start local 8 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
         5: .line 890
            aload 8 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifne 7
         6: .line 891
            goto 18
         7: .line 893
      StackMap locals: int org.graalvm.compiler.virtual.phases.ea.ObjectState
      StackMap stack:
            aload 8 /* objectState */
            iload 4 /* entryIndex */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEntry:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* entry */
        start local 9 // org.graalvm.compiler.nodes.ValueNode entry
         8: .line 894
            aload 9 /* entry */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 15
         9: .line 895
            aload 9 /* entry */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 10 /* entryVirtual */
        start local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode entryVirtual
        10: .line 896
            aload 0 /* this */
            iload 6 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
            astore 11 /* predecessor */
        start local 11 // org.graalvm.compiler.nodes.cfg.Block predecessor
        11: .line 897
            iload 5 /* materialized */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 2 /* states */
            iload 6 /* i */
            aaload
            aload 10 /* entryVirtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            aload 11 /* predecessor */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 11 /* predecessor */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_MERGE:Lorg/graalvm/compiler/debug/DebugCounter;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/DebugCounter;)Z
            ior
            istore 5 /* materialized */
        12: .line 898
            aload 2 /* states */
            iload 6 /* i */
            aaload
            iload 7 /* object */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 8 /* objectState */
        13: .line 899
            aload 8 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 15
        14: .line 900
            aload 2 /* states */
            iload 6 /* i */
            aaload
            iload 7 /* object */
            iload 4 /* entryIndex */
            aload 2 /* states */
            iload 6 /* i */
            aaload
            aload 10 /* entryVirtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(I)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getMaterializedValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            dup
            astore 9 /* entry */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.setEntry:(IILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 11 // org.graalvm.compiler.nodes.cfg.Block predecessor
        end local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode entryVirtual
        15: .line 903
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* phi */
            iload 6 /* i */
            aload 9 /* entry */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 9 // org.graalvm.compiler.nodes.ValueNode entry
        end local 8 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        end local 7 // int object
        16: .line 887
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 3
        end local 6 // int i
        18: .line 905
      StackMap locals:
      StackMap stack:
            iload 5 /* materialized */
            ireturn
        end local 5 // boolean materialized
        end local 4 // int entryIndex
        end local 3 // org.graalvm.compiler.nodes.PhiNode phi
        end local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        end local 1 // java.util.function.IntFunction objectIdFunc
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0   19     1  objectIdFunc  Ljava/util/function/IntFunction<Ljava/lang/Integer;>;
            0   19     2        states  [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
            0   19     3           phi  Lorg/graalvm/compiler/nodes/PhiNode;
            0   19     4    entryIndex  I
            1   19     5  materialized  Z
            2   18     6             i  I
            4   16     7        object  I
            5   16     8   objectState  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            8   16     9         entry  Lorg/graalvm/compiler/nodes/ValueNode;
           10   15    10  entryVirtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           11   15    11   predecessor  Lorg/graalvm/compiler/nodes/cfg/Block;
    Signature: (Ljava/util/function/IntFunction<Ljava/lang/Integer;>;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;Lorg/graalvm/compiler/nodes/PhiNode;I)Z
    MethodParameters:
              Name  Flags
      objectIdFunc  
      states        
      phi           
      entryIndex    

  private boolean processPhi(org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState<?>[], );
    descriptor: (Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;[I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, args_size=4
        start local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
        start local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        start local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        start local 3 // int[] mergedVirtualObjects
         0: .line 923
            iconst_0
            istore 4 /* virtualInputs */
        start local 4 // int virtualInputs
         1: .line 924
            iconst_1
            istore 5 /* uniqueVirtualObject */
        start local 5 // boolean uniqueVirtualObject
         2: .line 925
            iconst_1
            istore 6 /* ensureVirtual */
        start local 6 // boolean ensureVirtual
         3: .line 926
            aload 2 /* states */
            arraylength
            anewarray org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 7 /* virtualObjs */
        start local 7 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode[] virtualObjs
         4: .line 927
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 20
         6: .line 928
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 0 /* this */
            aload 1 /* phi */
            iload 8 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiValueAt:(Lorg/graalvm/compiler/nodes/PhiNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* alias */
        start local 9 // org.graalvm.compiler.nodes.ValueNode alias
         7: .line 929
            aload 9 /* alias */
            instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            ifeq 19
         8: .line 930
            aload 9 /* alias */
            checkcast org.graalvm.compiler.nodes.virtual.VirtualObjectNode
            astore 10 /* virtual */
        start local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
         9: .line 931
            aload 7 /* virtualObjs */
            iload 8 /* i */
            aload 10 /* virtual */
            aastore
        10: .line 932
            aload 2 /* states */
            iload 8 /* i */
            aaload
            aload 10 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectStateOptional:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            astore 11 /* objectState */
        start local 11 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        11: .line 933
            aload 11 /* objectState */
            ifnonnull 14
        12: .line 934
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            aload 1 /* phi */
            iload 8 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPhiValueAt:(Lorg/graalvm/compiler/nodes/PhiNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.PhiNode
            ifne 13
            new java.lang.AssertionError
            dup
            ldc "this should only happen for phi nodes"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 935
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.virtual.VirtualObjectNode org.graalvm.compiler.virtual.phases.ea.ObjectState
      StackMap stack:
            iconst_0
            ireturn
        14: .line 937
      StackMap locals:
      StackMap stack:
            aload 11 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 19
        15: .line 938
            aload 7 /* virtualObjs */
            iconst_0
            aaload
            aload 9 /* alias */
            if_acmpeq 17
        16: .line 939
            iconst_0
            istore 5 /* uniqueVirtualObject */
        17: .line 941
      StackMap locals:
      StackMap stack:
            iload 6 /* ensureVirtual */
            aload 11 /* objectState */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.getEnsureVirtualized:()Z
            iand
            istore 6 /* ensureVirtual */
        18: .line 942
            iinc 4 /* virtualInputs */ 1
        end local 11 // org.graalvm.compiler.virtual.phases.ea.ObjectState objectState
        end local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 9 // org.graalvm.compiler.nodes.ValueNode alias
        19: .line 927
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 8 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 6
        end local 8 // int i
        21: .line 946
            iload 4 /* virtualInputs */
            aload 2 /* states */
            arraylength
            if_icmpne 62
        22: .line 947
            iload 5 /* uniqueVirtualObject */
            ifeq 26
        23: .line 949
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 7 /* virtualObjs */
            iconst_0
            aaload
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addAndMarkAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        24: .line 950
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
        25: .line 951
            iconst_0
            ireturn
        26: .line 954
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* compatible */
        start local 8 // boolean compatible
        27: .line 955
            iconst_0
            istore 9 /* hasIdentity */
        start local 9 // boolean hasIdentity
        28: .line 956
            aload 7 /* virtualObjs */
            iconst_0
            aaload
            astore 10 /* firstVirtual */
        start local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode firstVirtual
        29: .line 957
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        30: goto 43
        31: .line 958
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode[] int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode int
      StackMap stack:
            aload 7 /* virtualObjs */
            iload 11 /* i */
            aaload
            astore 12 /* virtual */
        start local 12 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        32: .line 959
            iload 9 /* hasIdentity */
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.hasIdentity:()Z
            ior
            istore 9 /* hasIdentity */
        33: .line 960
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.hasIdentity:()Z
            ifeq 34
            iconst_1
            anewarray int[]
            dup
            iconst_0
            aload 3 /* mergedVirtualObjects */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 34
            iconst_1
            goto 35
      StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: istore 13 /* identitySurvives */
        start local 13 // boolean identitySurvives
        36: .line 961
            iload 13 /* identitySurvives */
            ifne 37
            aload 10 /* firstVirtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 37
            aload 10 /* firstVirtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
            if_icmpeq 39
        37: .line 962
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 8 /* compatible */
        38: .line 963
            goto 44
        39: .line 965
      StackMap locals:
      StackMap stack:
            aload 2 /* states */
            iconst_0
            aaload
            aload 10 /* firstVirtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            aload 2 /* states */
            iload 11 /* i */
            aaload
            aload 12 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.locksEqual:(Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;)Z
            ifne 42
        40: .line 966
            iconst_0
            istore 8 /* compatible */
        41: .line 967
            goto 44
        end local 13 // boolean identitySurvives
        end local 12 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        42: .line 957
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 11 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 31
        end local 11 // int i
        44: .line 970
      StackMap locals:
      StackMap stack:
            iload 8 /* compatible */
            ifeq 62
            iload 9 /* hasIdentity */
            ifne 62
        45: .line 971
            aload 0 /* this */
            aload 1 /* phi */
            aload 7 /* virtualObjs */
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getValueObjectVirtual:(Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            astore 11 /* virtual */
        start local 11 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        46: .line 972
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            aload 11 /* virtual */
            ldc "valueObjectNode"
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.addFloatingNode:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/lang/String;)V
        47: .line 973
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeEffects:Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.GraphEffectList.deleteNode:(Lorg/graalvm/compiler/graph/Node;)V
        48: .line 974
            aload 11 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            iconst_m1
            if_icmpne 52
        49: .line 975
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 12 /* id */
        start local 12 // int id
        50: .line 976
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.virtualObjects:Ljava/util/ArrayList;
            aload 11 /* virtual */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        51: .line 977
            aload 11 /* virtual */
            iload 12 /* id */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.setObjectId:(I)V
        end local 12 // int id
        52: .line 980
      StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode
      StackMap stack:
            aload 2 /* states */
            arraylength
            newarray 10
            astore 12 /* virtualObjectIds */
        start local 12 // int[] virtualObjectIds
        53: .line 981
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        54: goto 57
        55: .line 982
      StackMap locals: int[] int
      StackMap stack:
            aload 12 /* virtualObjectIds */
            iload 13 /* i */
            aload 7 /* virtualObjs */
            iload 13 /* i */
            aaload
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            iastore
        56: .line 981
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 13 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 55
        end local 13 // int i
        58: .line 984
            aload 0 /* this */
            aload 11 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            aload 12 /* virtualObjectIds */
            aload 2 /* states */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.mergeObjectStates:(I[I[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;)Z
            istore 13 /* materialized */
        start local 13 // boolean materialized
        59: .line 985
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 11 /* virtual */
            aload 11 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addAndMarkAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        60: .line 986
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 11 /* virtual */
            aload 1 /* phi */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.addAndMarkAlias:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        61: .line 987
            iload 13 /* materialized */
            ireturn
        end local 13 // boolean materialized
        end local 12 // int[] virtualObjectIds
        end local 11 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        end local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode firstVirtual
        end local 9 // boolean hasIdentity
        end local 8 // boolean compatible
        62: .line 993
      StackMap locals: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] int[] int int int org.graalvm.compiler.nodes.virtual.VirtualObjectNode[]
      StackMap stack:
            iconst_0
            istore 8 /* materialized */
        start local 8 // boolean materialized
        63: .line 994
            iload 4 /* virtualInputs */
            ifle 74
        64: .line 995
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        65: goto 73
        66: .line 996
      StackMap locals: int int
      StackMap stack:
            aload 7 /* virtualObjs */
            iload 9 /* i */
            aaload
            astore 10 /* virtual */
        start local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        67: .line 997
            aload 10 /* virtual */
            ifnull 72
        68: .line 998
            aload 0 /* this */
            iload 9 /* i */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.getPredecessor:(I)Lorg/graalvm/compiler/nodes/cfg/Block;
            astore 11 /* predecessor */
        start local 11 // org.graalvm.compiler.nodes.cfg.Block predecessor
        69: .line 999
            iload 6 /* ensureVirtual */
            ifne 71
            aload 2 /* states */
            iload 9 /* i */
            aaload
            aload 10 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.isVirtual:()Z
            ifeq 71
        70: .line 1001
            aload 2 /* states */
            iload 9 /* i */
            aaload
            aload 10 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState.getObjectState:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
            iconst_0
            invokevirtual org.graalvm.compiler.virtual.phases.ea.ObjectState.setEnsureVirtualized:(Z)V
        71: .line 1003
      StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualObjectNode org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            iload 8 /* materialized */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 2 /* states */
            iload 9 /* i */
            aaload
            aload 10 /* virtual */
            invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.getObjectId:()I
            aload 11 /* predecessor */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getEndNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.blockEffects:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 11 /* predecessor */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.virtual.phases.ea.GraphEffectList
            getstatic org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.COUNTER_MATERIALIZATIONS_PHI:Lorg/graalvm/compiler/debug/DebugCounter;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.ensureMaterialized:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;ILorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/virtual/phases/ea/GraphEffectList;Lorg/graalvm/compiler/debug/DebugCounter;)Z
            ior
            istore 8 /* materialized */
        end local 11 // org.graalvm.compiler.nodes.cfg.Block predecessor
        end local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        72: .line 995
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        73: iload 9 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 66
        end local 9 // int i
        74: .line 1007
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        75: goto 80
        76: .line 1008
      StackMap locals: int
      StackMap stack:
            aload 7 /* virtualObjs */
            iload 9 /* i */
            aaload
            astore 10 /* virtual */
        start local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        77: .line 1009
            aload 10 /* virtual */
            ifnull 79
        78: .line 1010
            aload 0 /* this */
            aload 1 /* phi */
            iload 9 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.this$0:Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure;
            aload 2 /* states */
            iload 9 /* i */
            aaload
            aload 10 /* virtual */
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure.getAliasAndResolve:(Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor.setPhiInput:(Lorg/graalvm/compiler/nodes/PhiNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
        end local 10 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode virtual
        79: .line 1007
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 9 /* i */
            aload 2 /* states */
            arraylength
            if_icmplt 76
        end local 9 // int i
        81: .line 1013
            iload 8 /* materialized */
            ireturn
        end local 8 // boolean materialized
        end local 7 // org.graalvm.compiler.nodes.virtual.VirtualObjectNode[] virtualObjs
        end local 6 // boolean ensureVirtual
        end local 5 // boolean uniqueVirtualObject
        end local 4 // int virtualInputs
        end local 3 // int[] mergedVirtualObjects
        end local 2 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeBlockState[] states
        end local 1 // org.graalvm.compiler.nodes.ValuePhiNode phi
        end local 0 // org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   82     0                  this  Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure$MergeProcessor;
            0   82     1                   phi  Lorg/graalvm/compiler/nodes/ValuePhiNode;
            0   82     2                states  [Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState;
            0   82     3  mergedVirtualObjects  [I
            1   82     4         virtualInputs  I
            2   82     5   uniqueVirtualObject  Z
            3   82     6         ensureVirtual  Z
            4   82     7           virtualObjs  [Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
            5   21     8                     i  I
            7   19     9                 alias  Lorg/graalvm/compiler/nodes/ValueNode;
            9   19    10               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           11   19    11           objectState  Lorg/graalvm/compiler/virtual/phases/ea/ObjectState;
           27   62     8            compatible  Z
           28   62     9           hasIdentity  Z
           29   62    10          firstVirtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           30   44    11                     i  I
           32   42    12               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           36   42    13      identitySurvives  Z
           46   62    11               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           50   52    12                    id  I
           53   62    12      virtualObjectIds  [I
           54   58    13                     i  I
           59   62    13          materialized  Z
           63   82     8          materialized  Z
           65   74     9                     i  I
           67   72    10               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
           69   72    11           predecessor  Lorg/graalvm/compiler/nodes/cfg/Block;
           75   81     9                     i  I
           77   79    10               virtual  Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
    Signature: (Lorg/graalvm/compiler/nodes/ValuePhiNode;[Lorg/graalvm/compiler/virtual/phases/ea/PartialEscapeBlockState<*>;[I)Z
    MethodParameters:
                      Name  Flags
      phi                   
      states                
      mergedVirtualObjects  

  private static java.lang.Integer lambda$0(int[], int, int);
    descriptor: ([III)Ljava/lang/Integer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // int index
         0: .line 756
            aload 0
            ifnonnull 1
            iload 1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0
            iload 2 /* index */
            iaload
      StackMap locals:
      StackMap stack: int
         2: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 2 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     2  index  I
}
Signature: Lorg/graalvm/compiler/virtual/phases/ea/EffectsClosure<TBlockT;>.MergeProcessor;
SourceFile: "PartialEscapeClosure.java"
NestHost: org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  protected MergeProcessor = org.graalvm.compiler.virtual.phases.ea.EffectsClosure$MergeProcessor of org.graalvm.compiler.virtual.phases.ea.EffectsClosure
  protected MergeProcessor = org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure$MergeProcessor of org.graalvm.compiler.virtual.phases.ea.PartialEscapeClosure