[DebugInfo@O2][Utils] Undef instead of delete dbg.values in helper func
authorOCHyams <orlando.hyams@sony.com>
Mon, 25 Nov 2019 09:02:05 +0000 (09:02 +0000)
committerOCHyams <orlando.hyams@sony.com>
Mon, 25 Nov 2019 10:55:14 +0000 (10:55 +0000)
commit2de23c8364babb49fe39d81048cd304a5ac2934e
treedf5640e86e23a095372c95f72480b92b7dfb6327
parent29b4d8f19e30910c099c5453da258843d6b7869a
[DebugInfo@O2][Utils] Undef instead of delete dbg.values in helper func

Summary:
Related bug: https://bugs.llvm.org/show_bug.cgi?id=40648

Static helper function rewriteDebugUsers in Local.cpp deletes dbg.value
intrinsics when it cannot move or rewrite them, or salvage the deleted
instruction's value. It should instead undef them in this case.

This patch fixes that and I've added a test which covers the failing test
case in bz40648. I've updated the unit test Local.ReplaceAllDbgUsesWith
to check for this behaviour (and fixed a typo in the test which would
cause the old test to always pass).

Reviewers: aprantl, vsk, djtodoro, probinson

Reviewed By: vsk

Subscribers: hiraditya, llvm-commits

Tags: #debug-info, #llvm

Differential Revision: https://reviews.llvm.org/D70604
llvm/lib/Transforms/Utils/Local.cpp
llvm/test/DebugInfo/X86/dbg-value-dropped-instcombine.ll [new file with mode: 0644]
llvm/unittests/Transforms/Utils/LocalTest.cpp