llvm-project/llvm/test/Instrumentation/AddressSanitizer
Vedant Kumar 8e77b33b3c [Local] Do not move around dbg.declares during replaceDbgDeclare
replaceDbgDeclare is used to update the descriptions of stack variables
when they are moved (e.g. by ASan or SafeStack). A side effect of
replaceDbgDeclare is that it moves dbg.declares around in the
instruction stream (typically by hoisting them into the entry block).
This behavior was introduced in llvm/r227544 to fix an assertion failure
(llvm.org/PR22386), but no longer appears to be necessary.

Hoisting a dbg.declare generally does not create problems. Usually,
dbg.declare either describes an argument or an alloca in the entry
block, and backends have special handling to emit locations for these.
In optimized builds, LowerDbgDeclare places dbg.values in the right
spots regardless of where the dbg.declare is. And no one uses
replaceDbgDeclare to handle things like VLAs.

However, there doesn't seem to be a positive case for moving
dbg.declares around anymore, and this reordering can get in the way of
understanding other bugs. I propose getting rid of it.

Testing: stage2 RelWithDebInfo sanitized build, check-llvm

rdar://59397340

Differential Revision: https://reviews.llvm.org/D74517
2020-02-13 14:35:02 -08:00
..
X86 [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
adaptive_global_redzones.ll
asan-detect-invalid-pointer-pair.ll [asan] Add options -asan-detect-invalid-pointer-cmp and -asan-detect-invalid-pointer-sub options. 2019-03-28 10:51:24 +00:00
asan-masked-load-store.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
asan-vs-gvn.ll
asan_address_space_attr.ll
basic-msvc64.ll
basic-myriad.ll
basic.ll [NewPM] Second attempt at porting ASan 2019-02-13 22:22:48 +00:00
debug-info-alloca.ll [asan] Remove debug locations from alloca prologue instrumentation 2019-12-03 11:24:17 +01:00
debug-info-global-var.ll
debug_info.ll [Local] Do not move around dbg.declares during replaceDbgDeclare 2020-02-13 14:35:02 -08:00
debug_info_noninstrumented_alloca.ll
debug_info_noninstrumented_alloca2.ll
do-not-instrument-globals-darwin.ll
do-not-instrument-globals-linux.ll
do-not-instrument-internal-globals.ll
do-not-instrument-profiling-globals.ll
do-not-instrument-promotable-allocas.ll
do-not-instrument-sanitizers.ll
do-not-touch-comdat-global.ll
do-not-touch-odr-global.ll [asan] Don't check ODR violations for particular types of globals 2018-12-13 09:47:39 +00:00
do-not-touch-threadlocal.ll
dynamic-shadow-darwin.ll [ASan] Use dynamic shadow on 32-bit iOS and simulators 2019-06-21 21:01:39 +00:00
experiment-call.ll
experiment.ll
force-dynamic-shadow.ll
freebsd.ll
global_addrspace.ll [AddressSanitizer] Only instrument globals of default address space 2019-10-30 09:32:19 +01:00
global_cstring_darwin.ll [asan] Prevent folding of globals with redzones 2018-12-20 00:30:18 +00:00
global_lto_merge.ll
global_metadata.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
global_metadata_array.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
global_metadata_bitcasts.ll [asan] In llvm.asan.globals, allow entries to be non-GlobalVariable and skip over them 2018-12-18 21:20:17 +00:00
global_metadata_darwin.ll
global_metadata_external_comdat.ll
global_metadata_windows.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
instrument-dynamic-allocas.ll
instrument-no-return.ll [Sanitizers] UBSan unreachable incompatible with Kernel ASan 2019-02-04 23:37:50 +00:00
instrument-stack.ll
instrument_global.ll
instrument_initializer_metadata.ll [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
instrument_load_then_store.ll
instrumentation-with-call-threshold.ll
keep_going.ll
lifetime-throw.ll
lifetime-uar-uas.ll
lifetime.ll
local_alias.ll [asan] Don't check ODR violations for particular types of globals 2018-12-13 09:47:39 +00:00
local_stack_base.ll [Local] Do not move around dbg.declares during replaceDbgDeclare 2020-02-13 14:35:02 -08:00
localescape.ll [EH] Rename llvm.x86.seh.recoverfp intrinsic to llvm.eh.recoverfp 2019-01-16 00:37:13 +00:00
no-globals.ll
odr-check-ignore.ll [asan] Restore ODR-violation detection on vtables 2018-12-18 22:23:30 +00:00
ps4.ll
scale-offset.ll
stack-poisoning-and-lifetime-be.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
stack-poisoning-and-lifetime.ll Asan use-after-scope: don't poison allocas if there were untraced lifetime intrinsics in the function (PR41481) 2019-04-16 07:54:20 +00:00
stack-poisoning-byval-args.ll
stack-poisoning.ll
stack_dynamic_alloca.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
stack_layout.ll
str-nobuiltin.ll
test64.ll
twice.ll
ubsan.ll
version-mismatch-check.ll [ASan] Version mismatch check follow-up 2019-08-29 20:20:05 +00:00
win-sorted-sections.ll
win-string-literal.ll [asan] Undo special treatment of linkonce_odr and weak_odr 2018-12-20 00:30:27 +00:00
with-ifunc.ll