Lower dbg.declare into indirect DBG_VALUE
authorJosh Stone <jistone@redhat.com>
Tue, 11 Sep 2018 17:52:01 +0000 (17:52 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Sun, 3 Feb 2019 16:27:51 +0000 (16:27 +0000)
commitb6bedbdca716799632f8a7ca71d8a0aedc1dc288
tree5c8ef7bf617266a4818fb1c149fd9c0d4a56da8c
parentfdde08786fb6430b2c6e7fde38af3d9eaa77c2a1
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