forked from OSchip/llvm-project
964f4663c4
Use a combination of !associated, comdat, @llvm.compiler.used and custom sections to allow dead stripping of globals and their asan metadata. Sometimes. Currently this works on LLD, which supports SHF_LINK_ORDER with sh_link pointing to the associated section. This also works on BFD, which seems to treat comdats as all-or-nothing with respect to linker GC. There is a weird quirk where the "first" global in each link is never GC-ed because of the section symbols. At this moment it does not work on Gold (as in the globals are never stripped). This is a second re-land of r298158. This time, this feature is limited to -fdata-sections builds. llvm-svn: 301587 |
||
---|---|---|
.. | ||
X86 | ||
adaptive_global_redzones.ll | ||
asan-masked-load-store.ll | ||
asan-vs-gvn.ll | ||
asan_address_space_attr.ll | ||
basic-msvc64.ll | ||
basic.ll | ||
debug-info-global-var.ll | ||
debug_info.ll | ||
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 | ||
do-not-touch-threadlocal.ll | ||
experiment-call.ll | ||
experiment.ll | ||
freebsd.ll | ||
global_cstring_darwin.ll | ||
global_metadata.ll | ||
global_metadata_array.ll | ||
global_metadata_darwin.ll | ||
global_metadata_windows.ll | ||
instrument-dynamic-allocas.ll | ||
instrument-no-return.ll | ||
instrument-stack.ll | ||
instrument_global.ll | ||
instrument_initializer_metadata.ll | ||
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 | ||
localescape.ll | ||
no-globals.ll | ||
ps4.ll | ||
scale-offset.ll | ||
stack-poisoning-and-lifetime-be.ll | ||
stack-poisoning-and-lifetime.ll | ||
stack-poisoning.ll | ||
stack_dynamic_alloca.ll | ||
stack_layout.ll | ||
str-nobuiltin.ll | ||
test64.ll | ||
twice.ll | ||
ubsan.ll |