diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2015-01-06 02:50:06 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2015-01-06 02:50:06 +0000 |
commit | 0b576b377f8b3bc2166179b9d141c4237725fdf7 (patch) | |
tree | 115be45d58536bf1f6edb3ce36e1db4c3c469a23 /llvm/lib/Analysis/CGSCCPassManager.cpp | |
parent | bdbdd3fd4e79589b172ee41d4694b8b6a2d6da73 (diff) | |
download | llvm-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.cpp | 5 |
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()); } |