Files
llvm/test/DebugInfo
Jeremy Morse 61af04a132 [DebugInfo] LiveDebugValues: explicitly terminate overwritten stack locations
If a stack spill location is overwritten by another spill instruction,
any variable locations pointing at that slot should be terminated. We
cannot rely on spills always being restored to registers or variable
locations being moved by a DBG_VALUE: the register allocator is entitled
to spill a value and then forget about it when it goes out of liveness.

To address this, scan for memory writes to spill locations, even those we
don't consider to be normal "spills". isSpillInstruction and
isLocationSpill distinguish the two now. After identifying spill
overwrites, terminate the open range, and insert a $noreg DBG_VALUE for
that variable.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371193 91177308-0d34-0410-b5e6-96231b3b80d8
2019-09-06 10:08:22 +00:00
..
2016-03-28 13:09:54 +00:00