llvm-project/llvm/test/Instrumentation/AddressSanitizer
Evgeniy Stepanov cff19ee233 [asan] Prevent rematerialization of &__asan_shadow.
Summary:
In the mode when ASan shadow base is computed as the address of an
external global (__asan_shadow, currently on android/arm32 only),
regalloc prefers to rematerialize this value to save register spills.
Even in -Os. On arm32 it is rather expensive (2 loads + 1 constant
pool entry).

This changes adds an inline asm in the function prologue to suppress
this behavior. It reduces AsanTest binary size by 7%.

Reviewers: pcc, vitalybuka

Subscribers: aemerson, kristof.beyls, hiraditya, llvm-commits

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

llvm-svn: 318235
2017-11-15 00:11:51 +00:00
..
X86 Fix for Bug 34475 - LOCK/REP/REPNE prefixes emitted as instruction on their own. 2017-11-03 15:25:13 +00:00
adaptive_global_redzones.ll
asan-masked-load-store.ll
asan-vs-gvn.ll Update some code.google.com links 2017-11-13 23:47:58 +00:00
asan_address_space_attr.ll
basic-msvc64.ll
basic.ll Add element-atomic mem intrinsic canary tests for Address Sanitizer. 2017-07-18 01:06:52 +00:00
debug-info-global-var.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
debug_info.ll Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00: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
do-not-touch-threadlocal.ll
experiment-call.ll
experiment.ll
force-dynamic-shadow.ll Add -asan-force-dynamic-shadow test 2017-08-07 07:12:33 +00:00
freebsd.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
global_cstring_darwin.ll
global_metadata.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
global_metadata_array.ll [asan] Let the frontend disable gc-sections optimization for asan globals. 2017-04-24 19:34:13 +00:00
global_metadata_darwin.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
global_metadata_windows.ll [asan] Upgrade private linkage globals to internal linkage on COFF 2017-10-31 16:16:08 +00:00
instrument-dynamic-allocas.ll
instrument-no-return.ll
instrument-stack.ll
instrument_global.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
instrument_initializer_metadata.ll
instrument_load_then_store.ll [asan] Delay creation of asan ctor. 2017-04-06 19:55:09 +00:00
instrumentation-with-call-threshold.ll
keep_going.ll
lifetime-throw.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
lifetime-uar-uas.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
local_alias.ll
localescape.ll
no-globals.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
ps4.ll [AddressSanitizer] Add PS4 offset 2017-02-23 17:10:28 +00:00
scale-offset.ll
stack-poisoning-and-lifetime-be.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
stack-poisoning-and-lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
stack-poisoning-byval-args.ll [asan] Fix instruction emission ordering with dynamic shadow. 2017-08-09 17:59:43 +00:00
stack-poisoning.ll
stack_dynamic_alloca.ll
stack_layout.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
str-nobuiltin.ll
test64.ll
twice.ll
ubsan.ll
with-ifunc.ll [asan] Prevent rematerialization of &__asan_shadow. 2017-11-15 00:11:51 +00:00