llvm-project/llvm/test/Instrumentation
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
..
AddressSanitizer [asan] Prevent rematerialization of &__asan_shadow. 2017-11-15 00:11:51 +00:00
BoundsChecking [PM] Port BoundsChecking to the new PM. 2017-11-14 01:30:04 +00:00
DataFlowSanitizer [dfsan] Add explicit zero extensions for shadow parameters in function wrappers. 2017-08-17 14:14:25 +00:00
EfficiencySanitizer Add element-atomic mem intrinsic canary tests for Efficiency Sanitizer. 2017-07-18 01:06:53 +00:00
InstrProfiling [InstrProf] Don't take the address of alwaysinline available_externally functions 2017-06-13 22:12:35 +00:00
MemorySanitizer Update some code.google.com links 2017-11-13 23:47:58 +00:00
SanitizerCoverage [SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer 2017-08-30 22:49:31 +00:00
ThreadSanitizer Enhance synchscope representation 2017-07-11 22:23:00 +00:00