Skip to content

Commit ae6f788

Browse files
committed
[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
1 parent 7fef40d commit ae6f788

File tree

3 files changed

+3136
-0
lines changed

3 files changed

+3136
-0
lines changed

llvm/lib/CodeGen/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ add_llvm_component_library(LLVMCodeGen
184184

185185
LiveDebugValues/LiveDebugValues.cpp
186186
LiveDebugValues/VarLocBasedImpl.cpp
187+
LiveDebugValues/InstrRefBasedImpl.cpp
187188

188189
ADDITIONAL_HEADER_DIRS
189190
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen

0 commit comments

Comments
 (0)