diff options
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/CGSCCPassManager.cpp | 34 | ||||
-rw-r--r-- | llvm/lib/Analysis/LazyCallGraph.cpp | 5 |
2 files changed, 19 insertions, 20 deletions
diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp index 5d1d8a9c6e0..7be0afb70b4 100644 --- a/llvm/lib/Analysis/CGSCCPassManager.cpp +++ b/llvm/lib/Analysis/CGSCCPassManager.cpp @@ -17,7 +17,7 @@ static cl::opt<bool> DebugPM("debug-cgscc-pass-manager", cl::Hidden, cl::desc("Print CGSCC pass management debugging information")); -PreservedAnalyses CGSCCPassManager::run(LazyCallGraph::SCC *C, +PreservedAnalyses CGSCCPassManager::run(LazyCallGraph::SCC &C, CGSCCAnalysisManager *AM) { PreservedAnalyses PA = PreservedAnalyses::all(); @@ -53,16 +53,16 @@ void CGSCCAnalysisManager::clear() { } CGSCCAnalysisManager::ResultConceptT & -CGSCCAnalysisManager::getResultImpl(void *PassID, LazyCallGraph::SCC *C) { +CGSCCAnalysisManager::getResultImpl(void *PassID, LazyCallGraph::SCC &C) { CGSCCAnalysisResultMapT::iterator RI; bool Inserted; std::tie(RI, Inserted) = CGSCCAnalysisResults.insert(std::make_pair( - std::make_pair(PassID, C), CGSCCAnalysisResultListT::iterator())); + std::make_pair(PassID, &C), CGSCCAnalysisResultListT::iterator())); // 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) { - CGSCCAnalysisResultListT &ResultList = CGSCCAnalysisResultLists[C]; + CGSCCAnalysisResultListT &ResultList = CGSCCAnalysisResultLists[&C]; ResultList.emplace_back(PassID, lookupPass(PassID).run(C, this)); RI->second = std::prev(ResultList.end()); } @@ -72,27 +72,27 @@ CGSCCAnalysisManager::getResultImpl(void *PassID, LazyCallGraph::SCC *C) { CGSCCAnalysisManager::ResultConceptT * CGSCCAnalysisManager::getCachedResultImpl(void *PassID, - LazyCallGraph::SCC *C) const { + LazyCallGraph::SCC &C) const { CGSCCAnalysisResultMapT::const_iterator RI = - CGSCCAnalysisResults.find(std::make_pair(PassID, C)); + CGSCCAnalysisResults.find(std::make_pair(PassID, &C)); return RI == CGSCCAnalysisResults.end() ? nullptr : &*RI->second->second; } -void CGSCCAnalysisManager::invalidateImpl(void *PassID, LazyCallGraph::SCC *C) { +void CGSCCAnalysisManager::invalidateImpl(void *PassID, LazyCallGraph::SCC &C) { CGSCCAnalysisResultMapT::iterator RI = - CGSCCAnalysisResults.find(std::make_pair(PassID, C)); + CGSCCAnalysisResults.find(std::make_pair(PassID, &C)); if (RI == CGSCCAnalysisResults.end()) return; - CGSCCAnalysisResultLists[C].erase(RI->second); + CGSCCAnalysisResultLists[&C].erase(RI->second); } -void CGSCCAnalysisManager::invalidateImpl(LazyCallGraph::SCC *C, +void CGSCCAnalysisManager::invalidateImpl(LazyCallGraph::SCC &C, const PreservedAnalyses &PA) { // Clear all the invalidated results associated specifically with this // function. SmallVector<void *, 8> InvalidatedPassIDs; - CGSCCAnalysisResultListT &ResultsList = CGSCCAnalysisResultLists[C]; + CGSCCAnalysisResultListT &ResultsList = CGSCCAnalysisResultLists[&C]; for (CGSCCAnalysisResultListT::iterator I = ResultsList.begin(), E = ResultsList.end(); I != E;) @@ -104,14 +104,14 @@ void CGSCCAnalysisManager::invalidateImpl(LazyCallGraph::SCC *C, } while (!InvalidatedPassIDs.empty()) CGSCCAnalysisResults.erase( - std::make_pair(InvalidatedPassIDs.pop_back_val(), C)); - CGSCCAnalysisResultLists.erase(C); + std::make_pair(InvalidatedPassIDs.pop_back_val(), &C)); + CGSCCAnalysisResultLists.erase(&C); } char CGSCCAnalysisManagerModuleProxy::PassID; CGSCCAnalysisManagerModuleProxy::Result -CGSCCAnalysisManagerModuleProxy::run(Module *M) { +CGSCCAnalysisManagerModuleProxy::run(Module &M) { assert(CGAM->empty() && "CGSCC analyses ran prior to the module proxy!"); return Result(*CGAM); } @@ -123,7 +123,7 @@ CGSCCAnalysisManagerModuleProxy::Result::~Result() { } bool CGSCCAnalysisManagerModuleProxy::Result::invalidate( - Module *M, const PreservedAnalyses &PA) { + Module &M, const PreservedAnalyses &PA) { // If this proxy isn't marked as preserved, then we can't even invalidate // individual CGSCC analyses, there may be an invalid set of SCC objects in // the cache making it impossible to incrementally preserve them. @@ -140,7 +140,7 @@ char ModuleAnalysisManagerCGSCCProxy::PassID; char FunctionAnalysisManagerCGSCCProxy::PassID; FunctionAnalysisManagerCGSCCProxy::Result -FunctionAnalysisManagerCGSCCProxy::run(LazyCallGraph::SCC *C) { +FunctionAnalysisManagerCGSCCProxy::run(LazyCallGraph::SCC &C) { assert(FAM->empty() && "Function analyses ran prior to the CGSCC proxy!"); return Result(*FAM); } @@ -152,7 +152,7 @@ FunctionAnalysisManagerCGSCCProxy::Result::~Result() { } bool FunctionAnalysisManagerCGSCCProxy::Result::invalidate( - LazyCallGraph::SCC *C, const PreservedAnalyses &PA) { + LazyCallGraph::SCC &C, const PreservedAnalyses &PA) { // If this proxy isn't marked as preserved, then we can't even invalidate // individual function analyses, there may be an invalid set of Function // objects in the cache making it impossible to incrementally preserve them. diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index 767da4e31d1..c8d0410c1e0 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -708,11 +708,11 @@ static void printSCC(raw_ostream &OS, LazyCallGraph::SCC &SCC) { OS << "\n"; } -PreservedAnalyses LazyCallGraphPrinterPass::run(Module *M, +PreservedAnalyses LazyCallGraphPrinterPass::run(Module &M, ModuleAnalysisManager *AM) { LazyCallGraph &G = AM->getResult<LazyCallGraphAnalysis>(M); - OS << "Printing the call graph for module: " << M->getModuleIdentifier() + OS << "Printing the call graph for module: " << M.getModuleIdentifier() << "\n\n"; SmallPtrSet<LazyCallGraph::Node *, 16> Printed; @@ -724,5 +724,4 @@ PreservedAnalyses LazyCallGraphPrinterPass::run(Module *M, printSCC(OS, SCC); return PreservedAnalyses::all(); - } |