diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2021-11-30 11:19:56 +0000 |
---|---|---|
committer | Jeremy Morse <jeremy.morse@sony.com> | 2021-11-30 11:32:31 +0000 |
commit | 8dda516b83255f96b3918f73bb64282655c4cc75 (patch) | |
tree | 1190de0a90db44be6475b1f46d14bfa86f509cc5 /llvm/lib/CodeGen/CommandFlags.cpp | |
parent | 52ff3b009388f1bef4854f1b6470b4ec19d10b0e (diff) | |
download | llvm-8dda516b83255f96b3918f73bb64282655c4cc75.zip llvm-8dda516b83255f96b3918f73bb64282655c4cc75.tar.gz llvm-8dda516b83255f96b3918f73bb64282655c4cc75.tar.bz2 |
[DebugInfo][InstrRef] Avoid dropping fragment info during PHI elimination
InstrRefBasedLDV used to crash on the added test -- the exit block is not
in scope for the variable being propagated, but is still considered because
it contains an assignment. The failure-mode was vlocJoin ignoring
assign-only blocks and not updating DIExpressions, but pickVPHILoc would
still find a variable location for it. That led to DBG_VALUEs created with
the wrong fragment information.
Fix this by removing a filter inherited from VarLocBasedLDV: vlocJoin will
now consider assign-only blocks and will update their expressions.
Differential Revision: https://reviews.llvm.org/D114727
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions