diff options
author | Silviu Baranga <silviu.baranga@arm.com> | 2015-08-10 14:50:54 +0000 |
---|---|---|
committer | Silviu Baranga <silviu.baranga@arm.com> | 2015-08-10 14:50:54 +0000 |
commit | 61bdc51339875e7674723191b3822784bcbf79b5 (patch) | |
tree | 35a7911498a9af66211c57c14890e67f67a6946e /llvm/lib/Transforms | |
parent | e29ab2bfabd12d06214a4a516ea9a2d44b5f1a0b (diff) | |
download | bcm5719-llvm-61bdc51339875e7674723191b3822784bcbf79b5.tar.gz bcm5719-llvm-61bdc51339875e7674723191b3822784bcbf79b5.zip |
[TTI] Add a hook for specifying per-target defaults for Interleaved Accesses
Summary:
This adds a hook to TTI which enables us to selectively turn on by default
interleaved access vectorization for targets on which we have have performed
the required benchmarking.
Reviewers: rengolin
Subscribers: rengolin, llvm-commits
Differential Revision: http://reviews.llvm.org/D11901
llvm-svn: 244449
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index 139b7fd9632..53074b0f9d6 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -3880,9 +3880,15 @@ bool LoopVectorizationLegality::canVectorize() { : "") << "!\n"); + bool UseInterleaved = TTI->enableInterleavedAccessVectorization(); + + // If an override option has been passed in for interleaved accesses, use it. + if (EnableInterleavedMemAccesses.getNumOccurrences() > 0) + UseInterleaved = EnableInterleavedMemAccesses; + // Analyze interleaved memory accesses. - if (EnableInterleavedMemAccesses) - InterleaveInfo.analyzeInterleaving(Strides); + if (UseInterleaved) + InterleaveInfo.analyzeInterleaving(Strides); // Okay! We can vectorize. At this point we don't have any other mem analysis // which may limit our maximum vectorization factor, so just return true with |