[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