llvm-project/llvm/test/DebugInfo/MIR/X86
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
..
avoid-single-entry-value-location.mir
backup-entry-values-usage.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
bit-piece-dh.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
call-site-gnu-vs-dwarf5-attrs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
call-site-param-mov16.mir
callsite-stack-value.mir [DebugInfo] retainedTypes should not have subprograms 2021-10-15 12:42:25 -04:00
clobbered-fragments.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
complex-entryvalue.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-call-site-spilled-arg-multiple-defs.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-call-site-spilled-arg.mir [NFC][llvm] Inclusive language: replace master with main in dbg-call-site-spilled-arg.mir 2021-11-25 12:34:39 -06:00
dbg-stack-value-range.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-copy-super-sub.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-interpretation.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-lea-interpretation.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-partial-describe.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-reference.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-reg-shuffle.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbgcall-site-two-fwd-reg-defs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dbginfo-entryvals.mir [LiveDebugValues][InstrRef][2/2] Emit entry value variable locations 2021-06-30 23:07:39 +01:00
debug-call-site-param.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
debug-entry-value-operation.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
debug-loc-0.mir Do not emit prologue_end for line 0 locs if there is a non-zero loc present 2021-10-07 13:54:28 -07:00
dvl-livedebugvalues-clobber.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
dvl-livedebugvalues-join.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
dvl-livedebugvalues-movements.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
dvl-livedebugvalues-spillrestore.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
dvl-livedebugvars-movements.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
dvl-livedebugvars-stackptr.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
empty-inline.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
entry-value-of-modified-param.mir [DebugInfo][InstrRef][NFC] "Final" x86 test cleanup 2021-11-29 22:56:09 +00:00
entry-values-diamond-bbs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
kill-after-spill.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
kill-entry-value-after-diamond-bbs.mir [DebugInfo][InstrRef][NFC] "Final" x86 test cleanup 2021-11-29 22:56:09 +00:00
lit.local.cfg
live-debug-values-3preds.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
live-debug-values-bad-transfer.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
live-debug-values-cutoffs.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
live-debug-values-entry-transfer.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
live-debug-values-fragments.mir [DebugInfo][InstrRef] Terminate overlapping variable fragments 2021-11-29 23:37:20 +00:00
live-debug-values-reg-copy.mir CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
live-debug-values-restore-collide.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
live-debug-values-restore.mir [DebugInfo][InstrRef] Prefer stack locations for variables 2022-03-17 14:26:15 +00:00
live-debug-values-spill.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
live-debug-values-stack-clobber.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
live-debug-values.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
live-debug-vars-unused-arg-debugonly.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
live-debug-vars-unused-arg.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
livedebugvalues-ignores-metaInstructions.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-limit.mir
livedebugvalues_basic_diamond.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_basic_diamond_match_clobber.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_basic_diamond_match_move.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_basic_diamond_one_clobber.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_basic_diamond_one_move.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_basic_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
livedebugvalues_bb_to_bb.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_bb_to_bb_clobbered.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_bb_to_bb_move_to_clobber.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_load_in_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
livedebugvalues_loop_break.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_loop_break_clobbered.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_loop_clobbered.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_loop_diamond.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_loop_diamond_clobber.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_loop_diamond_move.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_loop_early_clobber.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_loop_terminated.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_loop_two_backedge.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_loop_two_backedge_clobbered.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_loop_within_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
livedebugvalues_loop_within_loop_clobbered.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_loop_within_loop_moved.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_loop_within_loop_outer_moved.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_many_loop_heads.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
livedebugvars-crossbb-interval.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
machine-cse.mir
machinesink-subreg.mir
machinesink.mir
mlicm-hoist-post-regalloc.mir [DebugInfo][NFC] Force some tests to not use instruction-referencing 2021-11-17 11:51:29 +00:00
mlicm-hoist-pre-regalloc.mir CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
multiple-param-dbg-value-entry.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-cfi-loc.mir
piece-entryval.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
postra-subreg-sink.mir
prolog-epilog-indirection.mir CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
propagate-entry-value-cross-bbs.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
regcoalescer.mir RegisterCoalescer: Fix iterating through use operands. 2021-06-21 09:17:54 -07:00
regcoalescing-clears-dead-dbgvals.mir CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
remove-entry-value-from-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
remove-redundant-dbg-vals.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00
sink-leaves-undef.mir CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
unreachable-block-call-site.mir [X86] Update RET/LRET instruction to use the same naming convention as IRET (PR36876). NFC 2021-11-07 15:06:54 +00:00