Skip to content
  • Jakob Stoklund Olesen's avatar
    Avoid rematerializing a redef immediately after the old def. · 4df59a9f
    Jakob Stoklund Olesen authored
    PR14098 contains an example where we would rematerialize a MOV8ri
    immediately after the original instruction:
    
      %vreg7:sub_8bit<def> = MOV8ri 9; GR32_ABCD:%vreg7
      %vreg22:sub_8bit<def> = MOV8ri 9; GR32_ABCD:%vreg7
    
    Besides being pointless, it is also wrong since the original instruction
    only redefines part of the register, and the value read by the new
    instruction is wrong.
    
    The problem was the LiveRangeEdit::allUsesAvailableAt() didn't
    special-case OrigIdx == UseIdx and found the wrong SSA value.
    
    llvm-svn: 166068
    4df59a9f
Loading