final class org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan allocator;
    descriptor: Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.core.common.alloc.TraceBuilderResult traceBuilderResult;
    descriptor: Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.graalvm.compiler.debug.DebugCounter numSSIResolutionMoves;
    descriptor: Lorg/graalvm/compiler/debug/DebugCounter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.DebugCounter numStackToStackMoves;
    descriptor: Lorg/graalvm/compiler/debug/DebugCounter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, 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 64
            ldc Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase;
            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.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
         3: .line 161
            ldc "SSI LSRA[numSSIResolutionMoves]"
            invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugCounter;
            putstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.numSSIResolutionMoves:Lorg/graalvm/compiler/debug/DebugCounter;
         4: .line 162
            ldc "SSI LSRA[numStackToStackMoves]"
            invokestatic org.graalvm.compiler.debug.Debug.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/DebugCounter;
            putstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.numStackToStackMoves:Lorg/graalvm/compiler/debug/DebugCounter;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan, org.graalvm.compiler.core.common.alloc.TraceBuilderResult);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
        start local 1 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan allocator
        start local 2 // org.graalvm.compiler.core.common.alloc.TraceBuilderResult traceBuilderResult
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            aload 0 /* this */
            aload 1 /* allocator */
            putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
         2: .line 70
            aload 0 /* this */
            aload 2 /* traceBuilderResult */
            putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.traceBuilderResult:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
         3: .line 71
            return
        end local 2 // org.graalvm.compiler.core.common.alloc.TraceBuilderResult traceBuilderResult
        end local 1 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;
            0    4     1           allocator  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            0    4     2  traceBuilderResult  Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
    MethodParameters:
                    Name  Flags
      allocator           
      traceBuilderResult  

  private void resolveFindInsertPos(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver 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.trace.lsra.TraceLocalMoveResolver moveResolver
         0: .line 74
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpgt 10
         1: .line 75
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 3
         2: .line 76
            ldc "inserting moves at end of fromBlock B%d"
            aload 1 /* fromBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
         3: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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 4 /* instructions */
        start local 4 // java.util.List instructions
         4: .line 80
            aload 4 /* instructions */
            aload 4 /* instructions */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 5 /* instr */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction instr
         5: .line 81
            aload 5 /* instr */
            instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
            ifeq 8
         6: .line 83
            aload 3 /* moveResolver */
            aload 4 /* instructions */
            aload 4 /* instructions */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
         7: .line 84
            goto 20
         8: .line 85
      StackMap locals: java.util.List org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
            aload 3 /* moveResolver */
            aload 4 /* instructions */
            aload 4 /* instructions */
            invokeinterface java.util.List.size:()I
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
        end local 5 // org.graalvm.compiler.lir.LIRInstruction instr
        end local 4 // java.util.List instructions
         9: .line 88
            goto 20
        10: .line 89
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 12
        11: .line 90
            ldc "inserting moves at beginning of toBlock B%d"
            aload 2 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
        12: .line 93
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.common.GraalOptions.DetailedAsserts:Lorg/graalvm/compiler/options/OptionValue;
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 19
        13: .line 94
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 14
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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 14
            new java.lang.AssertionError
            dup
            ldc "block does not start with a label"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 102
      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 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
        15: aload 7
            iload 5
            aaload
            astore 4 /* predecessor */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessor
        16: .line 103
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 17
            aload 1 /* fromBlock */
            aload 4 /* predecessor */
            if_acmpeq 17
            new java.lang.AssertionError
            dup
            ldc "all critical edges must be broken"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase predecessor
        17: .line 102
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 15
        19: .line 107
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver
      StackMap stack:
            aload 3 /* moveResolver */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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.trace.lsra.TraceLocalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
        20: .line 109
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver 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.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;
            0   21     1     fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   21     2       toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   21     3  moveResolver  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
            4    9     4  instructions  Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            5    9     5         instr  Lorg/graalvm/compiler/lir/LIRInstruction;
           16   17     4   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/trace/lsra/TraceLocalMoveResolver;)V
    MethodParameters:
              Name  Flags
      fromBlock     
      toBlock       
      moveResolver  

  private void resolveDataFlow(org.graalvm.compiler.core.common.alloc.Trace, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[]);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace currentTrace
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
         0: .line 117
            aload 2 /* blocks */
            arraylength
            iconst_2
            if_icmpge 2
         1: .line 119
            return
         2: .line 121
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: ldc "resolve data flow"
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 5 /* indent */
        start local 5 // org.graalvm.compiler.debug.Indent indent
         4: .line 123
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createMoveResolver:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
            astore 6 /* moveResolver */
        start local 6 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver moveResolver
         5: .line 124
            aconst_null
            astore 7 /* toBlock */
        start local 7 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
         6: .line 125
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         7: goto 14
         8: .line 126
      StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver org.graalvm.compiler.core.common.alloc.Trace org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver org.graalvm.compiler.core.common.cfg.AbstractBlockBase int
      StackMap stack:
            aload 2 /* blocks */
            iload 8 /* i */
            aaload
            astore 9 /* fromBlock */
        start local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
         9: .line 127
            aload 2 /* blocks */
            iload 8 /* i */
            iconst_1
            iadd
            aaload
            astore 7 /* toBlock */
        10: .line 128
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            aload 1 /* currentTrace */
            aload 9 /* fromBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.containedInTrace:(Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifne 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not in Trace: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* fromBlock */
            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
        11: .line 129
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 12
            aload 0 /* this */
            aload 1 /* currentTrace */
            aload 7 /* toBlock */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.containedInTrace:(Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifne 12
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not in Trace: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* toBlock */
            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
        12: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* fromBlock */
            aload 7 /* toBlock */
            aload 6 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.resolveCollectMappings:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
        end local 9 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase fromBlock
        13: .line 125
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 8 /* i */
            aload 2 /* blocks */
            arraylength
            iconst_1
            isub
            if_icmplt 8
        end local 8 // int i
        15: .line 132
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 16
            aload 2 /* blocks */
            aload 2 /* blocks */
            arraylength
            iconst_1
            isub
            aaload
            aload 7 /* toBlock */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 133
      StackMap locals:
      StackMap stack:
            aload 7 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.isLoopEnd:()Z
            ifeq 21
        17: .line 134
            getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.$assertionsDisabled:Z
            ifne 18
            aload 7 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 135
      StackMap locals:
      StackMap stack:
            aload 7 /* toBlock */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            astore 8 /* loopHeader */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase loopHeader
        19: .line 136
            aload 0 /* this */
            aload 1 /* currentTrace */
            aload 8 /* loopHeader */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.containedInTrace:(Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 21
        20: .line 137
            aload 0 /* this */
            aload 7 /* toBlock */
            aload 8 /* loopHeader */
            aload 6 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.resolveCollectMappings:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase loopHeader
        end local 7 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase toBlock
        end local 6 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver moveResolver
        21: .line 141
      StackMap locals:
      StackMap stack:
            aload 5 /* indent */
            ifnull 27
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 3
            aload 5 /* indent */
            ifnull 23
            aload 5 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 5 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        23: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 4
            aload 3
            ifnonnull 25
            aload 4
            astore 3
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 3
            aload 4
            if_acmpeq 26
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 3
            athrow
        27: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] blocks
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace currentTrace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;
            0   28     1  currentTrace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            0   28     2        blocks  [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            4   23     5        indent  Lorg/graalvm/compiler/debug/Indent;
            5   21     6  moveResolver  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
            6   21     7       toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            7   15     8             i  I
            9   13     9     fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           19   21     8    loopHeader  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
      Exception table:
        from    to  target  type
           4    21      22  any
           3    24      24  any
    Signature: (Lorg/graalvm/compiler/core/common/alloc/Trace;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
              Name  Flags
      currentTrace  
      blocks        

  private void resolveCollectMappings(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver 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.trace.lsra.TraceLocalMoveResolver moveResolver
         0: .line 146
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: ldc "Edge %s -> %s"
            aload 1 /* fromBlock */
            aload 2 /* toBlock */
            invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 6 /* indent0 */
        start local 6 // org.graalvm.compiler.debug.Indent indent0
         2: .line 149
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 2 /* toBlock */
            aload 1 /* fromBlock */
            new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver$MappingCollector
            dup
            aload 0 /* this */
            aload 3 /* moveResolver */
            aload 2 /* toBlock */
            aload 1 /* fromBlock */
            invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver$MappingCollector.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
            invokestatic org.graalvm.compiler.lir.ssi.SSIUtil.forEachValuePair:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;)V
         3: .line 150
            aload 3 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.hasMappings:()Z
            ifeq 6
         4: .line 151
            aload 0 /* this */
            aload 1 /* fromBlock */
            aload 2 /* toBlock */
            aload 3 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.resolveFindInsertPos:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
         5: .line 152
            aload 3 /* moveResolver */
            invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.resolveAndAppendMoves:()V
         6: .line 154
      StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack:
            aload 6 /* indent0 */
            ifnull 12
            aload 6 /* indent0 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
            aload 6 /* indent0 */
            ifnull 8
            aload 6 /* indent0 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 6 // org.graalvm.compiler.debug.Indent indent0
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
            aload 4
            ifnonnull 10
            aload 5
            astore 4
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 4
            aload 5
            if_acmpeq 11
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 4
            athrow
        12: .line 155
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver 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.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;
            0   13     1     fromBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   13     2       toBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   13     3  moveResolver  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
            2    8     6       indent0  Lorg/graalvm/compiler/debug/Indent;
      Exception table:
        from    to  target  type
           2     6       7  any
           1     9       9  any
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;)V
    MethodParameters:
              Name  Flags
      fromBlock     
      toBlock       
      moveResolver  

  private boolean containedInTrace(org.graalvm.compiler.core.common.alloc.Trace, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
        start local 1 // org.graalvm.compiler.core.common.alloc.Trace currentTrace
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 158
            aload 1 /* currentTrace */
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver.traceBuilderResult:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.core.common.alloc.TraceBuilderResult.getTraceForBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/core/common/alloc/Trace;
            invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getId:()I
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 1 // org.graalvm.compiler.core.common.alloc.Trace currentTrace
        end local 0 // org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase$Resolver;
            0    2     1  currentTrace  Lorg/graalvm/compiler/core/common/alloc/Trace;
            0    2     2         block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
              Name  Flags
      currentTrace  
      block         
}
SourceFile: "TraceLinearScanResolveDataFlowPhase.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase
InnerClasses:
  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 final TraceLinearScan = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
  private final Resolver = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase
  private MappingCollector = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver$MappingCollector of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase$Resolver
  public abstract PhiValueVisitor = org.graalvm.compiler.lir.ssa.SSAUtil$PhiValueVisitor of org.graalvm.compiler.lir.ssa.SSAUtil