Open Quuxplusone opened 4 years ago
Bugzilla Link | PR47093 |
Status | CONFIRMED |
Importance | P enhancement |
Reported by | Luca Massarelli (massarelli@diag.uniroma1.it) |
Reported on | 2020-08-10 07:52:23 -0700 |
Last modified on | 2020-08-10 14:16:56 -0700 |
Version | trunk |
Hardware | PC Linux |
CC | dblaikie@gmail.com, ditaliano@apple.com, jdevlieghere@apple.com, jeremy.morse.llvm@gmail.com, josh@joshmatthews.net, keith.walker@arm.com, llvm-bugs@lists.llvm.org, paul_robinson@playstation.sony.com, vsk@apple.com |
Fixed by commit(s) | |
Attachments | |
Blocks | PR38768 |
Blocked by | |
See also | PR39787 |
To me, this sounds like something discovered in bug 39787, we're terrible at salvaging anything to do with a global symbol reference. In the reproducer, a bunch of local variables all trace back to global variables, and they all get folded into memory expressions, so never get an in-register location.
I think the biggest problem is that DBG_VALUE instructions are not expected to contain any GlobalValue operands.
It looks like GCC uses DW_OP_addr to describe most of these variables, I imagine that's the correct way, but don't know that part of DWARF well.