llvm-project/llvm/test/DebugInfo
Jeremy Morse bf2b2f08b0 [DebugInfo] Honour variable fragments in LiveDebugValues
This patch makes the LiveDebugValues pass consider fragments when propagating
DBG_VALUE insts between blocks, fixing PR41979. Fragment info for a variable
location is added to the open-ranges key, which allows distinct fragments to be
tracked separately. To handle overlapping fragments things become slightly
funkier. To avoid excessive searching for overlaps in the data-flow part of
LiveDebugValues, this patch:
 * Pre-computes pairings of fragments that overlap, for each DILocalVariable
 * During data-flow, whenever something happens that causes an open range to
   be terminated (via erase), any fragments pre-determined to overlap are
   also terminated.

The effect of which is that when encountering a DBG_VALUE fragment that
overlaps others, the overlapped fragments do not get propagated to other
blocks. We still rely on later location-list building to correctly handle
overlapping fragments within blocks.

It's unclear whether a mixture of DBG_VALUEs with and without fragmented
expressions are legitimate. To avoid suprises, this patch interprets a
DBG_VALUE with no fragment as overlapping any DBG_VALUE _with_ a fragment.

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

llvm-svn: 363256
2019-06-13 12:51:57 +00:00
..
AArch64 Revert "[DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion" 2019-06-12 08:34:51 +00:00
AMDGPU AMDGPU: Fix tests using old number for constant address space 2018-09-10 02:54:25 +00:00
ARM [DebugInfo] Honour variable fragments in LiveDebugValues 2019-06-13 12:51:57 +00:00
COFF [DebugInfo] Use FrameDestroy to extend stack locations to end-of-function 2019-06-13 10:03:17 +00:00
Generic [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
Inputs [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
Lanai
MIR [DebugInfo] Honour variable fragments in LiveDebugValues 2019-06-13 12:51:57 +00:00
MSP430 MachineOperand/MIParser: Do not print debug-use flag, infer it 2018-10-30 23:28:27 +00:00
Mips [mips][micromips] Fix how values in .gcc_except_table are calculated 2019-02-07 22:57:33 +00:00
NVPTX [NVPTX][DEBUGINFO]Temp workaround for crash of ptxas: disable packed bytes in debug sections. 2019-03-08 21:29:17 +00:00
PDB [codeview] Finish support for reading and writing S_ANNOTATION records 2019-05-15 20:53:39 +00:00
PowerPC [DWARF] - Emit the correct value for DW_AT_addr_base. 2018-09-20 09:17:36 +00:00
RISCV [DebugInfo] Generate fixups as emitting DWARF .debug_line. 2018-08-01 02:18:06 +00:00
Sparc Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
SystemZ Replace "no-frame-pointer-*" function attributes with "frame-pointer" 2019-01-14 10:55:55 +00:00
WebAssembly [WebAssembly] Remove trailing whitespaces in tests (NFC) 2019-03-06 02:00:22 +00:00
X86 [DebugInfo] Use FrameDestroy to extend stack locations to end-of-function 2019-06-13 10:03:17 +00:00
arange-overlap.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#1) 2019-01-31 14:11:17 +00:00
arm-relocs.test
check-debugify-preserves-analyses.ll
cross-cu-inlining.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#1) 2019-01-31 14:11:17 +00:00
cross-cu-scope.ll Specify REQUIRES: default_triple in two debuginfo tests 2018-11-06 00:16:32 +00:00
debugify-bogus-dbg-value.ll [Debugify] Allow unsigned values narrower than their variables 2018-07-06 17:32:40 +00:00
debugify-each.ll
debugify-export.ll [Debugify] Export per-pass debug info loss statistics 2018-07-24 00:41:29 +00:00
debugify-report-missing-locs-only.ll Tighten up a test for -check-debugify, NFC 2018-07-02 17:08:36 +00:00
debugify.ll [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
debuglineinfo-macho.test
debuglineinfo-path.ll [llvm-nm][llvm-readelf] Avoid single-dash -long-option in tests 2019-04-27 16:12:14 +00:00
debuglineinfo.test Reapply: DebugInfo: Assume an absence of ranges or high_pc on a CU means the CU is empty (devoid of code addresses) 2018-12-21 22:25:01 +00:00
debugmacinfo.test
dwarfdump-64-bit-dwarf.test [CommandLine] Don't allow unlimitted dashes for options. Part 1 or 5 2019-04-29 18:34:18 +00:00
dwarfdump-accel.test
dwarfdump-bad-lookup-address.test [DWARF] check whether the DIE is valid before querying for information 2019-04-03 17:13:45 +00:00
dwarfdump-debug-frame-simple.test
dwarfdump-decompression-corrupt.test
dwarfdump-decompression-error.test
dwarfdump-dump-flags.test
dwarfdump-dump-gdbindex.test [DWARF] Fix typo, .gnu_index -> .gdb_index 2018-11-02 20:34:40 +00:00
dwarfdump-dwp.test
dwarfdump-implicit-const.test
dwarfdump-invalid-line-table.test
dwarfdump-invalid.test
dwarfdump-macho-relocs.test
dwarfdump-macho-universal.test
dwarfdump-objc.test
dwarfdump-pubnames.test
dwarfdump-ranges.test Revert "[DWARF] reposting r342048, which was reverted in r342056 due to buildbot errors. Adjusted 2 test cases for ARM and darwin and fixed a bug with the original change in dsymutil." 2018-09-17 15:40:01 +00:00
dwarfdump-type-units.test
dwarfdump-zlib.test
dwo.ll
gcc-local-mem-func.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#1) 2019-01-31 14:11:17 +00:00
high-pc-constant.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#1) 2019-01-31 14:11:17 +00:00
invalid-relocations.test [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
macro_link.ll
member-pointers.o
missing-abstract-variable.o
omit-empty.ll
pr34186.ll
pr34672.ll
precomp.test [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
skeletoncu.ll
strip-DIGlobalVariable.ll
strip-loop-metadata.ll
strip-module-flags.ll
symbolize-64bit-address.test [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
symbolize-absolute-path-in-debug-line.s [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
symbolize-demangling.s [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#2) 2019-01-31 14:17:33 +00:00
symbolize-directory.s Fix more Windows bots after r360015. 2019-05-06 19:12:25 +00:00
symbolize-gnu-debuglink-fallback.test [DebugInfo] Fix /usr/lib/debug llvm-symbolizer lookup with relative paths 2019-02-11 18:05:48 +00:00
symbolize-gnu-debuglink-no-realpath.test [DebugInfo] Fix mkdir use in test 2019-02-01 21:14:21 +00:00
symbolize-gnu-debuglink.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#3) 2019-01-31 14:22:50 +00:00
symbolize-inlined.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#3) 2019-01-31 14:22:50 +00:00
symbolize-macho-universal-unknown-arch.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#2) 2019-01-31 14:17:33 +00:00
symbolize-macho-universal.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#2) 2019-01-31 14:17:33 +00:00
symbolize-missing-file.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#3) 2019-01-31 14:22:50 +00:00
symbolize-no-debug-str.test [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
symbolize-shared-abbrev.s [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
symbolize-split-dwarf-empty.test [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer 2019-02-01 10:24:55 +00:00
symbolize-split-dwarf-no-skel-address.test [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer 2019-02-01 10:24:55 +00:00
symbolize-stripped-sections.test [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
symbolize-stripped.test [llvm-symbolizer][test] Extract tests from llvm-symbolizer.test and simplify (#1) 2019-01-31 14:11:17 +00:00
symbolize-tu.test [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer 2019-02-01 10:24:55 +00:00
symbolize-zlib.test [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer 2019-02-01 10:24:55 +00:00
symbolize.test [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer 2019-02-01 10:24:55 +00:00
typeunit-header.test
unrolled-loop-remainder.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00