[all-commits] [llvm/llvm-project] c93a9b: [DebugInfo][CGP] Update dbg.values when sinking ad...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Fri Dec 6 03:27:41 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c93a9b15ce885f7a4d90b0f9ff2928fc7e2cd74a
      https://github.com/llvm/llvm-project/commit/c93a9b15ce885f7a4d90b0f9ff2928fc7e2cd74a
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    A llvm/test/DebugInfo/Generic/codegenprep-addrsink.ll

  Log Message:
  -----------
  [DebugInfo][CGP] Update dbg.values when sinking address computations

One of CodeGenPrepare's optimizations is to duplicate address calculations
into basic blocks, so that as much information as possible can be folded
into memory addressing operands. This is great -- but the dbg.value
variable location intrinsics are not updated in the same way. This can lead
to dbg.values referring to address computations in other blocks that will
never be encoded into the DAG, while duplicate address computations are
performed locally that could be used by the dbg.value. Some of these (such
as non-constant-offset GEPs) can't be salvaged past.

Fix this by, whenever we duplicate an address computation into a block,
looking for dbg.value users of the original memory address in the same
block, and redirecting those to the local computation.

Differential Revision: https://reviews.llvm.org/D58403




More information about the All-commits mailing list