[LoopDataPrefetch/Aarch64] Allow selective prefetching of large-strided accesses
authorAdam Nemet <anemet@apple.com>
Fri, 18 Mar 2016 00:27:38 +0000 (00:27 +0000)
committerAdam Nemet <anemet@apple.com>
Fri, 18 Mar 2016 00:27:38 +0000 (00:27 +0000)
commit6d8beeca5302984e845d9c6d7bf0a9e4a5ca98f9
treeb08c60faf3269ff2160ae9f7e5fd185f56d4d643
parent53e758fc55687de06d905d34e7cb58a9560093d2
[LoopDataPrefetch/Aarch64] Allow selective prefetching of large-strided accesses

Summary:
And use this TTI for Cyclone.  As it was explained in the original RFC
(http://thread.gmane.org/gmane.comp.compilers.llvm.devel/92758), the HW
prefetcher work up to 2KB strides.

I am also adding tests for this and the previous change (D17943):

* Cyclone prefetching accesses with a large stride
* Cyclone not prefetching accesses with a small stride
* Generic Aarch64 subtarget not prefetching either

Reviewers: hfinkel

Subscribers: aemerson, rengolin, llvm-commits, mzolotukhin

Differential Revision: http://reviews.llvm.org/D17945

llvm-svn: 263771
llvm/include/llvm/Analysis/TargetTransformInfo.h
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
llvm/lib/Analysis/TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
llvm/test/Transforms/LoopDataPrefetch/AArch64/large-stride.ll [new file with mode: 0644]
llvm/test/Transforms/LoopDataPrefetch/AArch64/lit.local.cfg [new file with mode: 0644]