llvm-project/llvm/test/DebugInfo/MIR/InstrRef
Jeremy Morse 12a2f7494e [DebugInfo][InstrRef] Prefer stack locations for variables
This patch adjusts what location is picked for a known variable value --
preferring to leave locations on the stack, even when a value is re-loaded
into a register. The benefit is reduced location list entropy, on a
clang-3.4 build I found that .debug_loclists reduces in size by 6%, from
29Mb down to 27Mb.

Testing: a few tests need the stack slot to be written to explicitly, to
force LiveDebugValues into restoring the variable location to a register.
I've added an explicit test for the desired behaviour in
livedebugvalues_recover_clobbers.mir .

Differential Revision: https://reviews.llvm.org/D120732
2022-03-17 14:26:15 +00: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 [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbg-phis-in-ldv.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbg-phis-merging-in-ldv.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbg-phis-with-loops.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
follow-spill-of-live-value.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
ignore-dbg-value-list.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
instr-ref-roundtrip.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
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 [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
livedebugvalues_recover_clobbers.mir [DebugInfo][InstrRef] Prefer stack locations for variables 2022-03-17 14:26:15 +00:00
livedebugvalues_stackslot_subregs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
livedebugvalues_subreg_substitutions.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
memory-operand-folding-tieddef.mir [DebugInfo] Follow up to ee3eee71e, x86 tests need an x86 triple 2021-10-25 16:43:50 +01:00
memory-operand-folding.mir [DebugInfo] Follow up to ee3eee71e, x86 tests need an x86 triple 2021-10-25 16:43:50 +01:00
memory-operand-load-folding.mir [DebugInfo] Follow up to ee3eee71e, x86 tests need an x86 triple 2021-10-25 16:43:50 +01:00
memory-operand-tracking.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
no-duplicates.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
no-metainstrs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
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 [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
phi-coalescing.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
phi-regallocd-to-stack.mir
phi-through-regalloc.mir
pick-vphi-in-shifting-loop.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
restore-clobber-with-indirectness.mir [DebugInfo][InstrRef] Preserve properties of restored variables 2021-11-29 21:57:24 +00:00
restore-to-rsp-crash.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
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 [DebugInfo][InstrRef] Avoid stack-slot-coloring changing codegen due to DI 2021-08-25 12:04:59 +01:00
substitusions-roundtrip.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
survives-livedebugvars.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
twoaddr-to-threeaddr-sub.mir
win32-chkctk-modifies-esp.mir [DebugInfo][InstrRef] Cope with win32 calls changing SP in LiveDebugValues 2021-11-24 19:56:21 +00:00
x86-drop-compare-inst.mir
x86-fixup-bw-inst-subreb.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
x86-fp-stackifier-drop-locations.mir [DebugInfo][InstrRef] Fix over-droppage of locations in X86FloatingPoint 2021-08-24 10:24:07 +01:00
x86-lea-fixup-2.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
x86-lea-fixup.mir [DebugInfo][InstrRef] Avoid duplicate instruction numbers in x86-lea-fixup 2022-02-10 16:36:50 +00:00