llvm-project/llvm/test/DebugInfo/MIR/InstrRef
Jeremy Morse a975472fa6 [DebugInfo][InstrRef] Describe value sizes when spilt to stack
This is a re-apply of D123599, which was reverted in 4fe2ab5279, now
with a more appropriate assertion. Original commit message follow:

InstrRefBasedLDV can track and describe variable values that are spilt to
the stack -- however it does not current describe the size of the value on
the stack. This can cause uninitialized bytes to be read from the stack if
a small register is spilt for a larger variable, or theoretically on
big-endian machines if a large value on the stack is used for a small
variable.

Fix this by using DW_OP_deref_size to specify the amount of data to load
from the stack, if there's any possibility for ambiguity. There are a few
scenarios where this can be omitted (such as when using DW_OP_piece and a
non-DW_OP_stack_value location), see deref-spills-with-size.mir for an
explicit table of inputs flavours and output expressions.

Differential Revision: https://reviews.llvm.org/D123599
2022-05-12 15:52:55 +01:00
..
accept-nonlive-reg-phis.mir [MVerifier] Don't check liveness of any debug instruction operands 2022-01-28 15:04:54 +00:00
dbg-phi-subregister-location.mir
dbg-phis-in-ldv.mir
dbg-phis-in-ldv2.mir Reapply D124184, [DebugInfo][InstrRef] Add a size operand to DBG_PHI 2022-04-26 15:49:22 +01:00
dbg-phis-merging-in-ldv.mir
dbg-phis-with-loops.mir
deref-spills-with-size.mir [DebugInfo][InstrRef] Describe value sizes when spilt to stack 2022-05-12 15:52:55 +01:00
follow-spill-of-indir-value.mir [DebugInfo][InstrRef] Describe value sizes when spilt to stack 2022-05-12 15:52:55 +01:00
follow-spill-of-live-value.mir
ignore-dbg-value-list.mir
instr-ref-roundtrip.mir
lit.local.cfg
livedebugvalues_illegal_locs.mir [DebugInfo][InstrRef] Don't fire assertions if debug-info is faulty 2022-02-10 11:25:08 +00:00
livedebugvalues_instrref_tolocs.mir
livedebugvalues_recover_clobbers.mir [DebugInfo][InstrRef] Prefer stack locations for variables 2022-03-17 14:26:15 +00:00
livedebugvalues_stackslot_subregs.mir
livedebugvalues_subreg_substitutions.mir
memory-operand-folding-tieddef.mir
memory-operand-folding.mir
memory-operand-load-folding.mir
memory-operand-tracking.mir
no-duplicates.mir
no-metainstrs.mir
out-of-scope-blocks.mir [DebugInfo][InstrRef] Avoid dropping fragment info during PHI elimination 2021-11-30 11:32:31 +00:00
phi-coalesce-subreg.mir
phi-coalescing.mir
phi-on-stack-coalesced.mir Reapply D124184, [DebugInfo][InstrRef] Add a size operand to DBG_PHI 2022-04-26 15:49:22 +01:00
phi-on-stack-coalesced2.mir Reapply D124184, [DebugInfo][InstrRef] Add a size operand to DBG_PHI 2022-04-26 15:49:22 +01:00
phi-regallocd-to-stack.mir Reapply D124184, [DebugInfo][InstrRef] Add a size operand to DBG_PHI 2022-04-26 15:49:22 +01:00
phi-through-regalloc.mir
pick-vphi-in-shifting-loop.mir
restore-clobber-with-indirectness.mir
restore-to-rsp-crash.mir
single-assign-propagation.mir [DebugInfo][InstrRef] Fix a tombstone-in-DenseMap crash from D117877 2022-02-02 15:08:49 +00:00
spill-slot-limits.mir Re-apply 3fab2d138e, now with a triple added 2022-02-02 11:04:00 +00:00
stack-coloring-dbg-phi.mir
substitusions-roundtrip.mir
survives-livedebugvars.mir
twoaddr-to-threeaddr-sub.mir
win32-chkctk-modifies-esp.mir
x86-drop-compare-inst.mir
x86-fixup-bw-inst-subreb.mir
x86-fp-stackifier-drop-locations.mir
x86-lea-fixup-2.mir
x86-lea-fixup.mir [DebugInfo][InstrRef] Avoid duplicate instruction numbers in x86-lea-fixup 2022-02-10 16:36:50 +00:00