public class org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase extends org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase
  super_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
{
  protected final org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

  protected void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
         0: .line 49
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* allocator */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
         2: .line 51
            return
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0    3     1  allocator  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    MethodParameters:
           Name  Flags
      allocator  

  protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        start local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
         0: .line 55
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.resolveDataFlow:()V
         1: .line 56
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            ldc "After resolve data flow"
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.printIntervals:(Ljava/lang/String;)V
         2: .line 57
            return
        end local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0    3     1     target  Ljdk/vm/ci/code/TargetDescription;
            0    3     2  lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0    3     3    context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
    MethodParameters:
           Name  Flags
      target     
      lirGenRes  
      context    

  protected void resolveCollectMappings(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.lsra.MoveResolver);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase midBlock
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
         0: .line 60
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 1
            aload 4 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.checkEmpty:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 61
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 7
            aload 3 /* midBlock */
            ifnull 7
         2: .line 62
            aload 3 /* midBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
            iconst_1
            if_icmpne 6
            aload 3 /* midBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpne 6
            aload 3 /* midBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            aload 1 /* fromBlock */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
            aload 3 /* midBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
         3: .line 63
            aload 2 /* toBlock */
         4: .line 62
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
         5: .line 63
            ifne 7
      StackMap locals:
      StackMap stack:
         6: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            istore 5 /* toBlockFirstInstructionId */
        start local 5 // int toBlockFirstInstructionId
         8: .line 66
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            iconst_1
            iadd
            istore 6 /* fromBlockLastInstructionId */
        start local 6 // int fromBlockLastInstructionId
         9: .line 67
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandSize:()I
            istore 7 /* numOperands */
        start local 7 // int numOperands
        10: .line 68
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.liveIn:Ljava/util/BitSet;
            astore 8 /* liveAtEdge */
        start local 8 // java.util.BitSet liveAtEdge
        11: .line 71
            aload 8 /* liveAtEdge */
            iconst_0
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            istore 9 /* operandNum */
        start local 9 // int operandNum
        12: goto 21
        13: .line 72
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.lsra.MoveResolver int int int java.util.BitSet int
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 14
            iload 9 /* operandNum */
            iload 7 /* numOperands */
            if_icmplt 14
            new java.lang.AssertionError
            dup
            ldc "live information set for not exisiting interval"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 73
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 16
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.liveOut:Ljava/util/BitSet;
            iload 9 /* operandNum */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 15
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.liveIn:Ljava/util/BitSet;
            iload 9 /* operandNum */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 16
      StackMap locals:
      StackMap stack:
        15: new java.lang.AssertionError
            dup
            ldc "interval not live at this edge"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        16: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 9 /* operandNum */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 6 /* fromBlockLastInstructionId */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 10 /* fromInterval */
        start local 10 // org.graalvm.compiler.lir.alloc.lsra.Interval fromInterval
        17: .line 76
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 9 /* operandNum */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            iload 5 /* toBlockFirstInstructionId */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 11 /* toInterval */
        start local 11 // org.graalvm.compiler.lir.alloc.lsra.Interval toInterval
        18: .line 78
            aload 10 /* fromInterval */
            aload 11 /* toInterval */
            if_acmpeq 20
            aload 10 /* fromInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            aload 11 /* toInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual jdk.vm.ci.meta.AllocatableValue.equals:(Ljava/lang/Object;)Z
            ifne 20
        19: .line 80
            aload 4 /* moveResolver */
            aload 10 /* fromInterval */
            aload 11 /* toInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.addMapping:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
        end local 11 // org.graalvm.compiler.lir.alloc.lsra.Interval toInterval
        end local 10 // org.graalvm.compiler.lir.alloc.lsra.Interval fromInterval
        20: .line 71
      StackMap locals:
      StackMap stack:
            aload 8 /* liveAtEdge */
            iload 9 /* operandNum */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            istore 9 /* operandNum */
      StackMap locals:
      StackMap stack:
        21: iload 9 /* operandNum */
            ifge 13
        end local 9 // int operandNum
        22: .line 83
            return
        end local 8 // java.util.BitSet liveAtEdge
        end local 7 // int numOperands
        end local 6 // int fromBlockLastInstructionId
        end local 5 // int toBlockFirstInstructionId
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase midBlock
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   23     0                        this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0   23     1                   fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   23     2                     toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   23     3                    midBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   23     4                moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            8   23     5   toBlockFirstInstructionId  I
            9   23     6  fromBlockLastInstructionId  I
           10   23     7                 numOperands  I
           11   23     8                  liveAtEdge  Ljava/util/BitSet;
           12   22     9                  operandNum  I
           17   20    10                fromInterval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
           18   20    11                  toInterval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
    MethodParameters:
              Name  Flags
      fromBlock     
      toBlock       
      midBlock      
      moveResolver  

  void resolveFindInsertPos(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.lsra.MoveResolver);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
         0: .line 86
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 4 /* debug */
        start local 4 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 87
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpgt 11
         2: .line 88
            aload 4 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 4
         3: .line 89
            aload 4 /* debug */
            ldc "inserting moves at end of fromBlock B%d"
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
         4: .line 92
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 5 /* instructions */
        start local 5 // java.util.ArrayList instructions
         5: .line 93
            aload 5 /* instructions */
            aload 5 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 6 /* instr */
        start local 6 // org.graalvm.compiler.lir.LIRInstruction instr
         6: .line 94
            aload 6 /* instr */
            instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
            ifeq 9
         7: .line 96
            aload 3 /* moveResolver */
            aload 5 /* instructions */
            aload 5 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.setInsertPosition:(Ljava/util/ArrayList;I)V
         8: .line 97
            goto 21
         9: .line 98
      StackMap locals: java.util.ArrayList org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
            aload 3 /* moveResolver */
            aload 5 /* instructions */
            aload 5 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.setInsertPosition:(Ljava/util/ArrayList;I)V
        end local 6 // org.graalvm.compiler.lir.LIRInstruction instr
        end local 5 // java.util.ArrayList instructions
        10: .line 101
            goto 21
        11: .line 102
      StackMap locals:
      StackMap stack:
            aload 4 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 13
        12: .line 103
            aload 4 /* debug */
            ldc "inserting moves at beginning of toBlock B%d"
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
        13: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
            ifeq 20
        14: .line 107
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
            ifne 15
            new java.lang.AssertionError
            dup
            ldc "block does not start with a label"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 114
      StackMap locals:
      StackMap stack:
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 19
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.lsra.MoveResolver org.graalvm.compiler.debug.DebugContext top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
        16: aload 8
            iload 6
            aaload
            astore 5 /* predecessor */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessor
        17: .line 115
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 18
            aload 1 /* fromBlock */
            aload 5 /* predecessor */
            if_acmpeq 18
            new java.lang.AssertionError
            dup
            ldc "all critical edges must be broken"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessor
        18: .line 114
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        19: iload 6
            iload 7
            if_icmplt 16
        20: .line 119
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.lsra.MoveResolver org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 3 /* moveResolver */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            iconst_1
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.setInsertPosition:(Ljava/util/ArrayList;I)V
        21: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.debug.DebugContext debug
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0   22     1     fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   22     2       toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   22     3  moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            1   22     4         debug  Lorg/graalvm/compiler/debug/DebugContext;
            5   10     5  instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            6   10     6         instr  Lorg/graalvm/compiler/lir/LIRInstruction;
           17   18     5   predecessor  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
    MethodParameters:
              Name  Flags
      fromBlock     
      toBlock       
      moveResolver  

  protected void resolveDataFlow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
         0: .line 129
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            ldc "resolve data flow"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 131
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createMoveResolver:()Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            astore 4 /* moveResolver */
        start local 4 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
         3: .line 132
            new java.util.BitSet
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockCount:()I
            invokespecial java.util.BitSet.<init>:(I)V
            astore 5 /* blockCompleted */
        start local 5 // java.util.BitSet blockCompleted
         4: .line 134
            aload 0 /* this */
            aload 4 /* moveResolver */
            aload 5 /* blockCompleted */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.optimizeEmptyBlocks:(Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;Ljava/util/BitSet;)V
         5: .line 136
            aload 0 /* this */
            aload 4 /* moveResolver */
            aload 5 /* blockCompleted */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.resolveDataFlow0:(Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;Ljava/util/BitSet;)V
        end local 5 // java.util.BitSet blockCompleted
        end local 4 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
         6: .line 138
            aload 3 /* indent */
            ifnull 12
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 12
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
         7: astore 1
            aload 3 /* indent */
            ifnull 8
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
         8: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
            aload 1
            ifnonnull 10
            aload 2
            astore 1
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 1
            aload 2
            if_acmpeq 11
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 1
            athrow
        12: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            2    8     3          indent  Lorg/graalvm/compiler/debug/Indent;
            3    6     4    moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            4    6     5  blockCompleted  Ljava/util/BitSet;
      Exception table:
        from    to  target  type
           2     6       7  any
           1     9       9  any

  protected void optimizeEmptyBlocks(org.graalvm.compiler.lir.alloc.lsra.MoveResolver, java.util.BitSet);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;Ljava/util/BitSet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        start local 2 // java.util.BitSet blockCompleted
         0: .line 142
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 19
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* block */
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         2: .line 145
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
            iconst_1
            if_icmpne 18
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpne 18
         3: .line 146
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 7 /* instructions */
        start local 7 // java.util.ArrayList instructions
         4: .line 147
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 5
            aload 7 /* instructions */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
            ifne 5
            new java.lang.AssertionError
            dup
            ldc "block must start with label"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 148
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.ArrayList
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.$assertionsDisabled:Z
            ifne 6
            aload 7 /* instructions */
            aload 7 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "block with successor must end with unconditional jump"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 151
      StackMap locals:
      StackMap stack:
            aload 7 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            iconst_2
            if_icmpne 18
         7: .line 152
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            astore 8 /* pred */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase pred
         8: .line 153
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            astore 9 /* sux */
        start local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase sux
         9: .line 156
            aload 2 /* blockCompleted */
            aload 8 /* pred */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 18
            aload 2 /* blockCompleted */
            aload 9 /* sux */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 18
        10: .line 157
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 10 /* debug */
        start local 10 // org.graalvm.compiler.debug.DebugContext debug
        11: .line 158
            aload 10 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 13
        12: .line 159
            aload 10 /* debug */
            ldc " optimizing empty block B%d (pred: B%d, sux: B%d)"
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            aload 8 /* pred */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            aload 9 /* sux */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;III)V
        13: .line 162
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 2 /* blockCompleted */
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.set:(I)V
        14: .line 168
            aload 0 /* this */
            aload 8 /* pred */
            aload 9 /* sux */
            aload 3 /* block */
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.resolveCollectMappings:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
        15: .line 169
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.hasMappings:()Z
            ifeq 18
        16: .line 170
            aload 1 /* moveResolver */
            aload 7 /* instructions */
            iconst_1
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.setInsertPosition:(Ljava/util/ArrayList;I)V
        17: .line 171
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.resolveAndAppendMoves:()V
        end local 10 // org.graalvm.compiler.debug.DebugContext debug
        end local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase sux
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase pred
        end local 7 // java.util.ArrayList instructions
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        18: .line 142
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        19: iload 4
            iload 5
            if_icmplt 1
        20: .line 177
            return
        end local 2 // java.util.BitSet blockCompleted
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0   21     1    moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            0   21     2  blockCompleted  Ljava/util/BitSet;
            2   18     3           block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            4   18     7    instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            8   18     8            pred  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            9   18     9             sux  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           11   18    10           debug  Lorg/graalvm/compiler/debug/DebugContext;
    MethodParameters:
                Name  Flags
      moveResolver    
      blockCompleted  

  protected void resolveDataFlow0(org.graalvm.compiler.lir.alloc.lsra.MoveResolver, java.util.BitSet);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;Ljava/util/BitSet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        start local 2 // java.util.BitSet blockCompleted
         0: .line 180
            new java.util.BitSet
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockCount:()I
            invokespecial java.util.BitSet.<init>:(I)V
            astore 3 /* alreadyResolved */
        start local 3 // java.util.BitSet alreadyResolved
         1: .line 181
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 20
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet java.util.BitSet top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* fromBlock */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
         3: .line 182
            aload 2 /* blockCompleted */
            aload 4 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 19
         4: .line 183
            aload 3 /* alreadyResolved */
            invokevirtual java.util.BitSet.clear:()V
         5: .line 184
            aload 3 /* alreadyResolved */
            aload 2 /* blockCompleted */
            invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
         6: .line 186
            aload 4 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 18
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet java.util.BitSet org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         7: aload 11
            iload 9
            aaload
            astore 8 /* toBlock */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
         8: .line 192
            aload 3 /* alreadyResolved */
            aload 8 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 17
         9: .line 193
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 12 /* debug */
        start local 12 // org.graalvm.compiler.debug.DebugContext debug
        10: .line 194
            aload 12 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 12
        11: .line 195
            aload 12 /* debug */
            ldc "processing edge between B%d and B%d"
            aload 4 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            aload 8 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;II)V
        12: .line 198
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet java.util.BitSet org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 3 /* alreadyResolved */
            aload 8 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLinearScanNumber:()I
            invokevirtual java.util.BitSet.set:(I)V
        13: .line 202
            aload 0 /* this */
            aload 4 /* fromBlock */
            aload 8 /* toBlock */
            aconst_null
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.resolveCollectMappings:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
        14: .line 203
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.hasMappings:()Z
            ifeq 17
        15: .line 204
            aload 0 /* this */
            aload 4 /* fromBlock */
            aload 8 /* toBlock */
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.resolveFindInsertPos:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;)V
        16: .line 205
            aload 1 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.resolveAndAppendMoves:()V
        end local 12 // org.graalvm.compiler.debug.DebugContext debug
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        17: .line 186
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet java.util.BitSet org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        18: iload 9
            iload 10
            if_icmplt 7
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        19: .line 181
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase org.graalvm.compiler.lir.alloc.lsra.MoveResolver java.util.BitSet java.util.BitSet top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        20: iload 5
            iload 6
            if_icmplt 2
        21: .line 211
            return
        end local 3 // java.util.BitSet alreadyResolved
        end local 2 // java.util.BitSet blockCompleted
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.MoveResolver moveResolver
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
            0   22     1     moveResolver  Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
            0   22     2   blockCompleted  Ljava/util/BitSet;
            1   22     3  alreadyResolved  Ljava/util/BitSet;
            3   19     4        fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            8   17     8          toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           10   17    12            debug  Lorg/graalvm/compiler/debug/DebugContext;
    MethodParameters:
                Name  Flags
      moveResolver    
      blockCompleted  
}
SourceFile: "LinearScanResolveDataFlowPhase.java"
InnerClasses:
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  public JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
  public final LabelOp = org.graalvm.compiler.lir.StandardOp$LabelOp of org.graalvm.compiler.lir.StandardOp
  public BlockData = org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase