[PATCH] D105025: [1/2][LiveDebugVariables] Avoid reduntant DBG_VALUEs after virtregrewrite

Djordje Todorovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 28 06:50:02 PDT 2021


djtodoro created this revision.
djtodoro added reviewers: jmorse, Orlando, aprantl, dstenb.
djtodoro added a project: debug-info.
Herald added subscribers: kerbowa, ormris, hiraditya, nhaehnle, jvesely, nemanjai.
djtodoro requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

After the register allocator is done, more precisely, after the Virtual Register Rewriter, we end up having duplicated DBG_VALUEs, since some virtual registers are being rewritten into the same physical register as some of existing `DBG_VALUEs`. Each `DBG_VALUE` should indicate (at least before the `LiveDebugValues`) variables assignment, but it is being clobbered for function parameters during the `SelectionDAG` since it generates new `DBG_VALUEs` after `COPY` instructions, even though the parameter has no assignment. For example, if we had a `DBG_VALUE $regX` as an entry debug value representing the parameter, and a `COPY` and after the `COPY`, `DBG_VALUE $virt_reg`, and after the virtregrewrite the `$virt_reg` gets rewritten into `$regX`, we'd end up having redundant `DBG_VALUE`.

This breaks the definition of the `DBG_VALUE` since some analysis passes might be built on top of that premise..., and this patch tries to fix the MIR with the respect to that.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D105025

Files:
  llvm/lib/CodeGen/LiveDebugVariables.cpp
  llvm/test/CodeGen/AMDGPU/ptr-arg-dbg-value.ll
  llvm/test/CodeGen/PowerPC/non-debug-mi-search-frspxsrsp.ll
  llvm/test/DebugInfo/MIR/Hexagon/live-debug-values-bundled-entry-values.mir
  llvm/test/DebugInfo/MIR/X86/multiple-param-dbg-value-entry.mir
  llvm/test/DebugInfo/X86/livedebugvars-avoid-duplicates.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105025.354879.patch
Type: text/x-patch
Size: 7873 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210628/d21d9283/attachment.bin>


More information about the llvm-commits mailing list