1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/DebugInfo
Jeremy Morse e640a69d80 [DebugInfo] Nerf placeDbgValues, with prejudice
CodeGenPrepare::placeDebugValues moves variable location intrinsics to be
immediately after the Value they refer to. This makes tracking of locations
very easy; but it changes the order in which assignments appear to the
debugger, from the source programs order to the order in which the
optimised program computes values. This then leads to PR43986 and PR38754,
where variable locations that were in a conditional block are made
unconditional, which is highly misleading.

This patch adjusts placeDbgValues to only re-order variable location
intrinsics if they use a Value before it is defined, significantly reducing
the damage that it does. This is still not 100% safe, but the rest of
CodeGenPrepare needs polishing to correctly update debug info when
optimisations are performed to fully fix this.

This will probably break downstream debuginfo tests -- if the
instruction-stream position of variable location changes isn't the focus of
the test, an easy fix should be to manually apply placeDbgValues' behaviour
to the failing tests, moving dbg.value intrinsics next to SSA variable
definitions thus:

  %foo = inst1
  %bar = ...
  %baz = ...
  void call @llvm.dbg.value(metadata i32 %foo, ...

to

  %foo = inst1
  void call @llvm.dbg.value(metadata i32 %foo, ...
  %bar = ...
  %baz = ...

This should return your test to exercising whatever it was testing before.

Differential Revision: https://reviews.llvm.org/D58453
2019-12-09 12:52:10 +00:00
..
AArch64 [ISEL][ARM][AARCH64] Tracking simple parameter forwarding registers 2019-10-08 09:43:05 +00:00
AMDGPU
ARM [DebugInfo] Remove the DIFlagArgumentNotModified debug info flag 2019-11-20 13:18:40 +01:00
COFF [DebugInfo] Nerf placeDbgValues, with prejudice 2019-12-09 12:52:10 +00:00
Generic Attempt to fix a debuginfo test that wasn't as generic as I thought 2019-12-06 12:51:58 +00:00
Inputs [llvm-symbolizer] Support debug file lookup using build ID 2019-12-04 15:07:56 -08:00
Lanai
Mips Re-commit "DWARF location lists: Add section index dumping" 2019-11-18 15:30:10 +01:00
MIR [DebugInfo] Make describeLoadedValue() reg aware 2019-12-09 10:47:49 +01:00
MSP430
NVPTX [DebugInfo] Nerf placeDbgValues, with prejudice 2019-12-09 12:52:10 +00:00
PDB
PowerPC
RISCV [Object][RISCV][test] Improve DebugInfo/RISCV/relax-debug-frame.ll 2019-11-26 09:16:55 -08:00
Sparc [DebugInfo] Remove the DIFlagArgumentNotModified debug info flag 2019-11-20 13:18:40 +01:00
SystemZ
WebAssembly LiveIntervals: Split live intervals on multiple dead defs 2019-10-30 08:50:46 -05:00
X86 [DebugInfo] Nerf placeDbgValues, with prejudice 2019-12-09 12:52:10 +00:00
arange-overlap.test
arm-relocs.test
check-debugify-preserves-analyses.ll
cross-cu-inlining.test
cross-cu-scope.ll
debugify-bogus-dbg-value.ll
debugify-each.ll
debugify-export.ll
debugify-report-missing-locs-only.ll
debugify.ll
debuglineinfo-macho.test
debuglineinfo-path.ll
debuglineinfo.test
debugmacinfo-dwo.test [DebugInfo] Support for debug_macinfo.dwo section in llvm and llvm-dwarfdump. 2019-12-03 08:54:12 +05:30
debugmacinfo.test
dwarfdump-64-bit-dwarf.test
dwarfdump-accel.test
dwarfdump-bad-lookup-address.test
dwarfdump-debug-frame-simple.test
dwarfdump-decompression-corrupt.test
dwarfdump-decompression-error.test
dwarfdump-dump-flags.test
dwarfdump-dump-gdbindex.test
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
dwarfdump-type-units.test
dwarfdump-zlib.test
dwo.ll
gcc-local-mem-func.test
high-pc-constant.test
invalid-relocations.test
macro_link.ll
member-pointers.o
missing-abstract-variable.o
omit-empty.ll
pr34186.ll
pr34672.ll
precomp.test
skeletoncu.ll
strip-DIGlobalVariable.ll
strip-loop-metadata.ll
strip-module-flags.ll
symbolize-64bit-address.test
symbolize-absolute-path-in-debug-line.s
symbolize-build-id.test [llvm-symbolizer] Support debug file lookup using build ID 2019-12-04 15:07:56 -08:00
symbolize-demangling.s
symbolize-directory.s
symbolize-gnu-debuglink-fallback.test
symbolize-gnu-debuglink-no-realpath.test
symbolize-gnu-debuglink.test
symbolize-inlined.test [test][tools] Add missing and improve testing 2019-12-09 12:24:23 +00:00
symbolize-macho-universal-unknown-arch.test
symbolize-macho-universal.test
symbolize-missing-file.test
symbolize-no-debug-str.test
symbolize-shared-abbrev.s
symbolize-split-dwarf-empty.test
symbolize-split-dwarf-no-skel-address.test
symbolize-stripped-sections.test
symbolize-stripped.test
symbolize-tu.test
symbolize-zlib.test
symbolize.test
typeunit-header.test
unrolled-loop-remainder.ll