[all-commits] [llvm/llvm-project] 4cfceb: [LiveDebugValues] Introduce entry values of unmodi...

Djordje Todorovic via All-commits all-commits at lists.llvm.org
Tue Dec 3 02:02:17 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 4cfceb910692f9e894622da1b394324503667e46
      https://github.com/llvm/llvm-project/commit/4cfceb910692f9e894622da1b394324503667e46
  Author: Djordje Todorovic <djordje.todorovic at rt-rk.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/TestBasicEntryValuesX86_64.py
    M lldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/main.cpp
    M llvm/lib/CodeGen/LiveDebugValues.cpp
    M llvm/test/DebugInfo/MIR/ARM/dbgcall-site-propagated-value.mir
    A llvm/test/DebugInfo/MIR/X86/entry-value-of-modified-param.mir
    A llvm/test/DebugInfo/MIR/X86/entry-values-diamond-bbs.mir
    A llvm/test/DebugInfo/MIR/X86/kill-entry-value-after-diamond-bbs.mir
    A llvm/test/DebugInfo/MIR/X86/propagate-entry-value-cross-bbs.mir

  Log Message:
  -----------
  [LiveDebugValues] Introduce entry values of unmodified params

The idea is to remove front-end analysis for the parameter's value
modification and leave it to the value tracking system. Front-end in some
cases marks a parameter as modified even the line of code that modifies the
parameter gets optimized, that implies that this will cover more entry
values even. In addition, extending the support for modified parameters
will be easier with this approach.

Since the goal is to recognize if a parameter’s value has changed, the idea
at very high level is: If we encounter a DBG_VALUE other than the entry
value one describing the same variable (parameter), we can assume that the
variable’s value has changed and we should not track its entry value any
more. That would be ideal scenario, but due to various LLVM optimizations,
a variable’s value could be just moved around from one register to another
(and there will be additional DBG_VALUEs describing the same variable), so
we have to recognize such situation (otherwise, we will lose a lot of entry
values) and salvage the debug entry value.

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




More information about the All-commits mailing list