aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/CGSCCPassManager.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2015-01-06 02:50:06 +0000
committerChandler Carruth <chandlerc@gmail.com>2015-01-06 02:50:06 +0000
commit0b576b377f8b3bc2166179b9d141c4237725fdf7 (patch)
tree115be45d58536bf1f6edb3ce36e1db4c3c469a23 /llvm/lib/Analysis/CGSCCPassManager.cpp
parentbdbdd3fd4e79589b172ee41d4694b8b6a2d6da73 (diff)
downloadllvm-0b576b377f8b3bc2166179b9d141c4237725fdf7.zip
llvm-0b576b377f8b3bc2166179b9d141c4237725fdf7.tar.gz
llvm-0b576b377f8b3bc2166179b9d141c4237725fdf7.tar.bz2
[PM] Add a collection of no-op analysis passes and switch the new pass
manager tests to use them and be significantly more comprehensive. This, naturally, uncovered a bug where the CGSCC pass manager wasn't printing analyses when they were run. The only remaining core manipulator is I think an invalidate pass similar to the require pass. That'll be next. =] llvm-svn: 225240
Diffstat (limited to 'llvm/lib/Analysis/CGSCCPassManager.cpp')
-rw-r--r--llvm/lib/Analysis/CGSCCPassManager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp
index ad7eea8..9a3ebea 100644
--- a/llvm/lib/Analysis/CGSCCPassManager.cpp
+++ b/llvm/lib/Analysis/CGSCCPassManager.cpp
@@ -62,8 +62,11 @@ CGSCCAnalysisManager::getResultImpl(void *PassID, LazyCallGraph::SCC &C) {
// If we don't have a cached result for this function, look up the pass and
// run it to produce a result, which we then add to the cache.
if (Inserted) {
+ auto &P = lookupPass(PassID);
+ if (DebugPM)
+ dbgs() << "Running CGSCC analysis: " << P.name() << "\n";
CGSCCAnalysisResultListT &ResultList = CGSCCAnalysisResultLists[&C];
- ResultList.emplace_back(PassID, lookupPass(PassID).run(C, this));
+ ResultList.emplace_back(PassID, P.run(C, this));
RI->second = std::prev(ResultList.end());
}