Lower dbg.declare into indirect DBG_VALUE
authorJosh Stone <jistone@redhat.com>
Tue, 11 Sep 2018 17:52:01 +0000 (17:52 +0000)
committerGianfranco Costamagna <locutusofborg@debian.org>
Sun, 21 Apr 2019 20:55:47 +0000 (21:55 +0100)
commit6caf04b6b2235851c4b3ae498768f0bf1f73d384
tree3d79132f4a936dd5db90f93cc063ac9133987934
parente9558ca4aabdf6b5c5acc8e29178273003829db3
Lower dbg.declare into indirect DBG_VALUE

Summary:
D31439 changed the semantics of dbg.declare to take the address of a
variable as the first argument, making it indirect.  It specifically
updated FastISel for this change here:

https://reviews.llvm.org/D31439#change-WVArzi177jPl

GlobalISel needs to follow suit, or else it will be missing a level of
indirection in the generated debuginfo.  This problem was seen in a Rust
debuginfo test on aarch64, since GlobalISel is used at -O0 for aarch64.

https://github.com/rust-lang/rust/issues/49807
https://bugzilla.redhat.com/show_bug.cgi?id=1611597
https://bugzilla.redhat.com/show_bug.cgi?id=1625768

Reviewers: dblaikie, aprantl, t.p.northover, javed.absar, rnk

Reviewed By: rnk

Subscribers: #debug-info, rovka, kristof.beyls, JDevlieghere, llvm-commits, tstellar

Differential Revision: https://reviews.llvm.org/D51749

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341969 91177308-0d34-0410-b5e6-96231b3b80d8

Gbp-Pq: Name rustc-aarch64-test-failure.diff
lib/CodeGen/GlobalISel/IRTranslator.cpp
test/CodeGen/AArch64/GlobalISel/debug-cpp.ll [new file with mode: 0644]
test/CodeGen/AArch64/GlobalISel/debug-insts.ll