diff options
| author | Adam Nemet <anemet@apple.com> | 2016-03-18 00:27:43 +0000 |
|---|---|---|
| committer | Adam Nemet <anemet@apple.com> | 2016-03-18 00:27:43 +0000 |
| commit | 709e3046ee3c473b373fe5ec61e4d6e467991898 (patch) | |
| tree | 48c80521787e640be1608d9991f919853facfb6f /llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp | |
| parent | 6d8beeca5302984e845d9c6d7bf0a9e4a5ca98f9 (diff) | |
| download | bcm5719-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.cpp | 3 |
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); |

