diff options
author | Adam Nemet <anemet@apple.com> | 2016-03-09 05:33:21 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2016-03-09 05:33:21 +0000 |
commit | 34785ecff11854110344a4c8ab2d6165b883fb2b (patch) | |
tree | d35a72a0330c2dd94dc03326fe9fec38700adc63 /llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp | |
parent | 46adc28236afaa00fd423c4468ea686e4cf84a39 (diff) | |
download | bcm5719-llvm-34785ecff11854110344a4c8ab2d6165b883fb2b.tar.gz bcm5719-llvm-34785ecff11854110344a4c8ab2d6165b883fb2b.zip |
[LoopDataPrefetch] Add stats and debug output
llvm-svn: 262998
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp index 5d0a5906509..3d25e099c3e 100644 --- a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp +++ b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp @@ -43,6 +43,8 @@ static cl::opt<bool> PrefetchWrites("loop-prefetch-writes", cl::Hidden, cl::init(false), cl::desc("Prefetch write addresses")); +STATISTIC(NumPrefetches, "Number of prefetches inserted"); + namespace llvm { void initializeLoopDataPrefetchPass(PassRegistry&); } @@ -149,6 +151,10 @@ bool LoopDataPrefetch::runOnLoop(Loop *L) { if (!ItersAhead) ItersAhead = 1; + DEBUG(dbgs() << "Prefetching " << ItersAhead + << " iterations ahead (loop size: " << LoopSize << ") in " + << L->getHeader()->getParent()->getName() << ": " << *L); + SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, 16> PrefLoads; for (Loop::block_iterator I = L->block_begin(), IE = L->block_end(); I != IE; ++I) { @@ -219,6 +225,9 @@ bool LoopDataPrefetch::runOnLoop(Loop *L) { {PrefPtrValue, ConstantInt::get(I32, MemI->mayReadFromMemory() ? 0 : 1), ConstantInt::get(I32, 3), ConstantInt::get(I32, 1)}); + ++NumPrefetches; + DEBUG(dbgs() << " Access: " << *PtrValue << ", SCEV: " << *LSCEV + << "\n"); MadeChange = true; } |