summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-03-09 05:33:21 +0000
committerAdam Nemet <anemet@apple.com>2016-03-09 05:33:21 +0000
commit34785ecff11854110344a4c8ab2d6165b883fb2b (patch)
treed35a72a0330c2dd94dc03326fe9fec38700adc63 /llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
parent46adc28236afaa00fd423c4468ea686e4cf84a39 (diff)
downloadbcm5719-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.cpp9
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;
}
OpenPOWER on IntegriCloud