diff options
| author | Reid Kleckner <rnk@google.com> | 2017-09-15 21:54:38 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2017-09-15 21:54:38 +0000 |
| commit | 3a66c1cb58a955d9f24f4bc2a86ce80bfc76dee6 (patch) | |
| tree | c2e22b6e976952f1fd3c6e50fabe471484dd3b58 /debuginfo-tests/nrvo-string.cpp | |
| parent | 9e6c309ef343acc13a14ca97f370e35079fbea1f (diff) | |
| download | bcm5719-llvm-3a66c1cb58a955d9f24f4bc2a86ce80bfc76dee6.tar.gz bcm5719-llvm-3a66c1cb58a955d9f24f4bc2a86ce80bfc76dee6.zip | |
[DebugInfo] Insert DW_OP_deref when spilling indirect DBG_VALUEs
Summary:
This comes up in optimized debug info for C++ programs that pass and
return objects indirectly by address. In these programs,
llvm.dbg.declare survives optimization, which causes us to emit indirect
DBG_VALUE instructions. The fast register allocator knows to insert
DW_OP_deref when spilling indirect DBG_VALUE instructions, but the
LiveDebugVariables did not until this change.
This fixes part of PR34513. I need to look into why this doesn't work at
-O0 and I'll send follow up patches to handle that.
Reviewers: aprantl, dblaikie, probinson
Subscribers: qcolombet, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D37911
llvm-svn: 313400
Diffstat (limited to 'debuginfo-tests/nrvo-string.cpp')
0 files changed, 0 insertions, 0 deletions

