llvm-project/llvm/test/Transforms/SafeStack
Evgeniy Stepanov d1aad26589 [safestack] Fast access to the unsafe stack pointer on AArch64/Android.
Android libc provides a fixed TLS slot for the unsafe stack pointer,
and this change implements direct access to that slot on AArch64 via
__builtin_thread_pointer() + offset.

This change also moves more code into TargetLowering and its
target-specific subclasses to get rid of target-specific codegen
in SafeStackPass.

This change does not touch the ARM backend because ARM lowers
builting_thread_pointer as aeabi_read_tp, which is not available
on Android.

The previous iteration of this change was reverted in r250461. This
version leaves the generic, compiler-rt based implementation in
SafeStack.cpp instead of moving it to TargetLoweringBase in order to
allow testing without a TargetMachine.

llvm-svn: 251324
2015-10-26 18:28:25 +00:00
..
AArch64 [safestack] Fast access to the unsafe stack pointer on AArch64/Android. 2015-10-26 18:28:25 +00:00
ARM [safestack] Fix compiler crash in the presence of stack restores. 2015-09-24 01:23:51 +00:00
X86 [safestack] Fix a stupid mix-up in the direct-tls code path. 2015-09-30 00:01:47 +00:00
addr-taken.ll
array-aligned.ll
array.ll
call.ll
cast.ll
constant-gep-call.ll
constant-gep.ll
constant-geps.ll
debug-loc.ll Fix debug info with SafeStack. 2015-09-30 19:55:43 +00:00
dynamic-alloca.ll
escape-addr-pointer.ll
escape-bitcast-store.ll
escape-bitcast-store2.ll
escape-call.ll
escape-casted-pointer.ll
escape-gep-call.ll
escape-gep-invoke.ll
escape-gep-negative.ll
escape-gep-ptrtoint.ll
escape-gep-store.ll
escape-phi-call.ll
escape-select-call.ll
escape-vector.ll
invoke.ll
no-attr.ll SafeStack: Create the unsafe stack pointer on demand. 2015-06-22 20:26:54 +00:00
phi-cycle.ll
setjmp.ll
setjmp2.ll
struct.ll