aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveDebugValues.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2020-05-20 15:30:58 -0700
committerVedant Kumar <vsk@apple.com>2020-05-26 14:22:28 -0700
commit6e39379bbbe1d8aba658f638dfc42f0ba0cbb926 (patch)
tree9f322c9866ebd2093525b871ae2707d87deaa2d9 /llvm/lib/CodeGen/LiveDebugValues.cpp
parent9abb0e8d5be2ffad06ccfcc2d5530997ad093b81 (diff)
downloadllvm-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.cpp6
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;