diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-11-15 00:11:51 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-11-15 00:11:51 +0000 |
commit | cff19ee2330f86e3f3cc320b89e928c97437b932 (patch) | |
tree | f18f594c4523b2ffc7c5f302e19c9cba455205bf /llvm/lib/CodeGen/MachineFunction.cpp | |
parent | 8202521cf57bf1cbe77e3fe3228e15580b1388d3 (diff) | |
download | llvm-cff19ee2330f86e3f3cc320b89e928c97437b932.zip llvm-cff19ee2330f86e3f3cc320b89e928c97437b932.tar.gz llvm-cff19ee2330f86e3f3cc320b89e928c97437b932.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
0 files changed, 0 insertions, 0 deletions