1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Transforms/SafeStack
Evgeniy Stepanov cabb944249 [safestack] Rewrite isAllocaSafe using SCEV.
Use ScalarEvolution to calculate memory access bounds.
Handle function calls based on readnone/nocapture attributes.
Handle memory intrinsics with constant size.

This change improves both recall and precision of IsAllocaSafe.
See the new tests (ex. BitCastWide) for the kind of code that was wrongly
classified as safe.

SCEV efficiency seems to be limited by the fact the SafeStack runs late
(in CodeGenPrepare), and many loops are unrolled or otherwise not in LCSSA.

llvm-svn: 253083
2015-11-13 21:21:42 +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 [safestack] Rewrite isAllocaSafe using SCEV. 2015-11-13 21:21:42 +00:00
cast.ll [safestack] Rewrite isAllocaSafe using SCEV. 2015-11-13 21:21:42 +00:00
constant-gep-call.ll
constant-gep.ll
constant-geps.ll
debug-loc.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dynamic-alloca.ll
escape-addr-pointer.ll
escape-bitcast-store2.ll
escape-bitcast-store.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
ret.ll [safestack] Rewrite isAllocaSafe using SCEV. 2015-11-13 21:21:42 +00:00
setjmp2.ll
setjmp.ll
store.ll [safestack] Rewrite isAllocaSafe using SCEV. 2015-11-13 21:21:42 +00:00
struct.ll