diff options
author | Vedant Kumar <vsk@apple.com> | 2020-05-20 15:30:58 -0700 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2020-05-26 14:22:28 -0700 |
commit | 6e39379bbbe1d8aba658f638dfc42f0ba0cbb926 (patch) | |
tree | 9f322c9866ebd2093525b871ae2707d87deaa2d9 /llvm/lib/CodeGen/LiveDebugValues.cpp | |
parent | 9abb0e8d5be2ffad06ccfcc2d5530997ad093b81 (diff) | |
download | llvm-6e39379bbbe1d8aba658f638dfc42f0ba0cbb926.zip llvm-6e39379bbbe1d8aba658f638dfc42f0ba0cbb926.tar.gz llvm-6e39379bbbe1d8aba658f638dfc42f0ba0cbb926.tar.bz2 |
[DwarfExpression] Support entry values for indirect parameters
Summary:
A struct argument can be passed-by-value to a callee via a pointer to a
temporary stack copy. Add support for emitting an entry value DBG_VALUE
when an indirect parameter DBG_VALUE becomes unavailable. This is done
by omitting DW_OP_stack_value from the entry value expression, to make
the expression describe the location of an object.
rdar://63373691
Reviewers: djtodoro, aprantl, dstenb
Subscribers: hiraditya, lldb-commits, llvm-commits
Tags: #lldb, #llvm
Differential Revision: https://reviews.llvm.org/D80345
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugValues.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveDebugValues.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/LiveDebugValues.cpp b/llvm/lib/CodeGen/LiveDebugValues.cpp index 470cb22..00a6149a 100644 --- a/llvm/lib/CodeGen/LiveDebugValues.cpp +++ b/llvm/lib/CodeGen/LiveDebugValues.cpp @@ -1613,10 +1613,6 @@ bool LiveDebugValues::isEntryValueCandidate( if (MI.getDebugLoc()->getInlinedAt()) return false; - // Do not consider indirect debug values (TODO: explain why). - if (MI.isIndirectDebugValue()) - return false; - // Only consider parameters that are described using registers. Parameters // that are passed on the stack are not yet supported, so ignore debug // values that are described by the frame or stack pointer. @@ -1631,7 +1627,7 @@ bool LiveDebugValues::isEntryValueCandidate( return false; // TODO: Add support for parameters that have a pre-existing debug expressions - // (e.g. fragments, or indirect parameters using DW_OP_deref). + // (e.g. fragments). if (MI.getDebugExpression()->getNumElements() > 0) return false; |