[PATCH] D69943: Attempt to Salvage Debug Info or undef intrinsics when dropping trivially deletable instructions in reassociate pass
Tom Weaver via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 7 04:56:00 PST 2019
TWeaver created this revision.
Herald added subscribers: llvm-commits, aprantl.
Herald added a project: LLVM.
Fix for BZ38753 - https://bugs.llvm.org/show_bug.cgi?id=38753
Reassociate Expressions pass made no attempt to salvage or "fix up" debug info when dropping trivially delete-able instructions.
This was causing intrinsics that previously pointed to locations to have "dangling" locations that would be fixed up to empty metadata. Later passes would then remove these useless intrinsics. When we eventually reach the back-end, in LLC, LiveDebugValues would then propogate earlier intrinsics into as many blocks as possible. This would cause stale values to be seen in the debugger when debugging optmized code.
There's two test cases, one for undefs and another for a simple salvage case.
Thank you for your time reviewing this patch.
Tom W
https://reviews.llvm.org/D69943
Files:
llvm/test/Transforms/Reassociate/reassociate_salvages_debug_info.ll
llvm/test/Transforms/Reassociate/undef_intrinsics_when_deleting_instructions.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69943.228217.patch
Type: text/x-patch
Size: 8153 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191107/10346364/attachment.bin>
More information about the llvm-commits
mailing list