llvm-project/llvm/test/DebugInfo
Jeremy Morse 291713a596 [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs
In this patch SelectionDAG tries to salvage any dbg.values that are going to be
dropped, in case they can be recovered from Values in the current BB. It also
strengthens SelectionDAGs handling of dangling debug data, so that dbg.values
are *always* emitted (as Undef or otherwise) instead of dangling forever.

The motivation behind this patch exists in the new test case: a memory address
(here a bitcast and GEP) exist in one basic block, and a dbg.value referring to
the address is left in the 'next' block. The base pointer is live across all
basic blocks. In current llvm trunk the dbg.value cannot be encoded, and it
isn't even emitted as an Undef DBG_VALUE.

The change is simply: if we're definitely going to drop a dbg.value, repeatedly
apply salvageDebugInfo to its operand until either we find something that can
be encoded, or we can't salvage any further in which case we produce an Undef
DBG_VALUE. To know when we're "definitely going to drop a dbg.value",
SelectionDAG signals SelectionDAGBuilder when all IR instructions have been
encoded to force salvaging. This ensures that any dbg.value that's dangling
after DAG creation will have a corresponding DBG_VALUE encoded. 

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

llvm-svn: 353954
2019-02-13 16:33:05 +00:00
..
AArch64 [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs 2019-02-13 09:34:07 +00:00
AMDGPU AMDGPU: Fix tests using old number for constant address space 2018-09-10 02:54:25 +00:00
ARM [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs 2019-02-13 09:34:07 +00:00
COFF [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs 2019-02-13 09:34:07 +00:00
Generic [DebugInfo] Don't salvage load operations (PR40628). 2019-02-12 10:54:30 +00:00
Inputs [DebugInfo][llvm-symbolizer]Add some tests for edge cases when symbolizing 2019-02-06 10:13:14 +00:00
Lanai
MIR [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs 2019-02-13 09:34:07 +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 [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs 2019-02-13 09:34:07 +00:00
PDB Support skewed stream arrays. 2018-12-06 16:55:00 +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] Fix updating/moving DBG_VALUEs in RegStackify 2019-01-15 18:14:12 +00:00
X86 [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs 2019-02-13 16:33:05 +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 [opt] Introduce -strip-named-metadata 2018-06-05 00:56:08 +00:00
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] Add a quiet mode to suppress warnings 2018-06-06 19:05:41 +00:00
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 Specify REQUIRES: default_triple in two debuginfo tests 2018-11-06 00:16:32 +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
dwarfdump-accel.test
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
macro_link.ll
member-pointers.o
missing-abstract-variable.o
omit-empty.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr34186.ll
pr34672.ll
precomp.test [Debuginfo][COFF] Minimal serialization support for precompiled types records 2018-04-09 20:17:56 +00:00
skeletoncu.ll
strip-DIGlobalVariable.ll
strip-loop-metadata.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
strip-module-flags.ll [opt] Introduce -strip-named-metadata 2018-06-05 00:56:08 +00:00
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-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