summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-03-18 00:27:43 +0000
committerAdam Nemet <anemet@apple.com>2016-03-18 00:27:43 +0000
commit709e3046ee3c473b373fe5ec61e4d6e467991898 (patch)
tree48c80521787e640be1608d9991f919853facfb6f /llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
parent6d8beeca5302984e845d9c6d7bf0a9e4a5ca98f9 (diff)
downloadbcm5719-llvm-709e3046ee3c473b373fe5ec61e4d6e467991898.tar.gz
bcm5719-llvm-709e3046ee3c473b373fe5ec61e4d6e467991898.zip
[LoopDataPrefetch] Add TTI to limit the number of iterations to prefetch ahead
Summary: It can hurt performance to prefetch ahead too much. Be conservative for now and don't prefetch ahead more than 3 iterations on Cyclone. Reviewers: hfinkel Subscribers: llvm-commits, mzolotukhin Differential Revision: http://reviews.llvm.org/D17949 llvm-svn: 263772
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
index 8e0322150b3..f55f3193dde 100644
--- a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
@@ -171,6 +171,9 @@ bool LoopDataPrefetch::runOnLoop(Loop *L) {
if (!ItersAhead)
ItersAhead = 1;
+ if (ItersAhead > TTI->getMaxPrefetchIterationsAhead())
+ return MadeChange;
+
DEBUG(dbgs() << "Prefetching " << ItersAhead
<< " iterations ahead (loop size: " << LoopSize << ") in "
<< L->getHeader()->getParent()->getName() << ": " << *L);
OpenPOWER on IntegriCloud