[all-commits] [llvm/llvm-project] 7d0caf: [DebugInfo] Process DBG_VALUE_LIST in LiveDebugVar...

Stephen Tozer via All-commits all-commits at lists.llvm.org
Wed Mar 10 04:47:19 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7d0cafba962c56d79b2f1c2caab695551d3be6df
      https://github.com/llvm/llvm-project/commit/7d0cafba962c56d79b2f1c2caab695551d3be6df
  Author: gbtozers <stephen.tozer at sony.com>
  Date:   2021-03-10 (Wed, 10 Mar 2021)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugVariables.cpp
    A llvm/test/DebugInfo/MIR/X86/dvl-livedebugvars-movements.mir
    A llvm/test/DebugInfo/MIR/X86/dvl-livedebugvars-stackptr.mir
    M llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir

  Log Message:
  -----------
  [DebugInfo] Process DBG_VALUE_LIST in LiveDebugVariables

This patch adds support for DBG_VALUE_LIST in the LiveDebugVariables pass. The
changes are mostly in computeIntervals, extendDef, and addDefsFromCopies; when
extending the def of a DBG_VALUE_LIST the live ranges of every used register
must be considered, and when such a def is killed by more than one of its used
registers being killed at the same time it is necessary to find valid copies of
all of those registers to create a new def with.

The DebugVariableValue class has also been changed to reference multiple
location numbers instead of just one. This has been accomplished by using a
C-style array with a unique_ptr and an array length packed into 6 bits, to
minimize the size of the class (which must be kept low to be used with
IntervalMap). This may not be the most efficient solution possible, and should
be looked at if performance issues arise.

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




More information about the All-commits mailing list