[all-commits] [llvm/llvm-project] ae6f78: [LiveDebugValues] Add instruction-referencing LDV ...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Sat Aug 22 10:32:34 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ae6f788240310e50f912f67353bc0a845a104d97
      https://github.com/llvm/llvm-project/commit/ae6f788240310e50f912f67353bc0a845a104d97
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2020-08-22 (Sat, 22 Aug 2020)

  Changed paths:
    M llvm/lib/CodeGen/CMakeLists.txt
    A llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.h

  Log Message:
  -----------
  [LiveDebugValues] Add instruction-referencing LDV implementation

This patch imports the instruction-referencing implementation of
LiveDebugValues proposed here:

  http://lists.llvm.org/pipermail/llvm-dev/2020-June/142368.html

The new implementation is unreachable in this patch, it's the next patch
that enables it behind a command line switch. Briefly, rather than
tracking variable locations by just their location as the 'VarLoc'
implementation does, this implementation does it by value:
 * Each value defined in a function is numbered, and propagated through
   dataflow,
 * Each DBG_VALUE reads a machine value number from a machine location,
 * Variable _values_ are propagated through dataflow,
 * Variable values are translated back into locations, DBG_VALUEs
   inserted to specify where those locations are.

The ultimate aim of this is to enable referring to variable values
throughout post-isel code, rather than locations. Those patches will
build on top of this new LiveDebugValues implementation in later patches
-- it can't be done with the VarLoc implementation as we don't have
value information, only locations.

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




More information about the All-commits mailing list