diff options
Diffstat (limited to 'llvm/lib/IR/PassManager.cpp')
-rw-r--r-- | llvm/lib/IR/PassManager.cpp | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/llvm/lib/IR/PassManager.cpp b/llvm/lib/IR/PassManager.cpp index 39270edc387..121ec001fd1 100644 --- a/llvm/lib/IR/PassManager.cpp +++ b/llvm/lib/IR/PassManager.cpp @@ -19,7 +19,7 @@ static cl::opt<bool> DebugPM("debug-pass-manager", cl::Hidden, cl::desc("Print pass management debugging information")); -PreservedAnalyses ModulePassManager::run(Module *M, ModuleAnalysisManager *AM) { +PreservedAnalyses ModulePassManager::run(Module &M, ModuleAnalysisManager *AM) { PreservedAnalyses PA = PreservedAnalyses::all(); if (DebugPM) @@ -34,7 +34,7 @@ PreservedAnalyses ModulePassManager::run(Module *M, ModuleAnalysisManager *AM) { AM->invalidate(M, PassPA); PA.intersect(std::move(PassPA)); - M->getContext().yield(); + M.getContext().yield(); } if (DebugPM) @@ -44,11 +44,11 @@ PreservedAnalyses ModulePassManager::run(Module *M, ModuleAnalysisManager *AM) { } ModuleAnalysisManager::ResultConceptT & -ModuleAnalysisManager::getResultImpl(void *PassID, Module *M) { +ModuleAnalysisManager::getResultImpl(void *PassID, Module &M) { ModuleAnalysisResultMapT::iterator RI; bool Inserted; std::tie(RI, Inserted) = ModuleAnalysisResults.insert(std::make_pair( - PassID, std::unique_ptr<detail::AnalysisResultConcept<Module *>>())); + PassID, std::unique_ptr<detail::AnalysisResultConcept<Module &>>())); // If we don't have a cached result for this module, look up the pass and run // it to produce a result, which we then add to the cache. @@ -59,17 +59,17 @@ ModuleAnalysisManager::getResultImpl(void *PassID, Module *M) { } ModuleAnalysisManager::ResultConceptT * -ModuleAnalysisManager::getCachedResultImpl(void *PassID, Module *M) const { +ModuleAnalysisManager::getCachedResultImpl(void *PassID, Module &M) const { ModuleAnalysisResultMapT::const_iterator RI = ModuleAnalysisResults.find(PassID); return RI == ModuleAnalysisResults.end() ? nullptr : &*RI->second; } -void ModuleAnalysisManager::invalidateImpl(void *PassID, Module *M) { +void ModuleAnalysisManager::invalidateImpl(void *PassID, Module &M) { ModuleAnalysisResults.erase(PassID); } -void ModuleAnalysisManager::invalidateImpl(Module *M, +void ModuleAnalysisManager::invalidateImpl(Module &M, const PreservedAnalyses &PA) { // FIXME: This is a total hack based on the fact that erasure doesn't // invalidate iteration for DenseMap. @@ -80,7 +80,7 @@ void ModuleAnalysisManager::invalidateImpl(Module *M, ModuleAnalysisResults.erase(I); } -PreservedAnalyses FunctionPassManager::run(Function *F, +PreservedAnalyses FunctionPassManager::run(Function &F, FunctionAnalysisManager *AM) { PreservedAnalyses PA = PreservedAnalyses::all(); @@ -96,7 +96,7 @@ PreservedAnalyses FunctionPassManager::run(Function *F, AM->invalidate(F, PassPA); PA.intersect(std::move(PassPA)); - F->getContext().yield(); + F.getContext().yield(); } if (DebugPM) @@ -119,16 +119,16 @@ void FunctionAnalysisManager::clear() { } FunctionAnalysisManager::ResultConceptT & -FunctionAnalysisManager::getResultImpl(void *PassID, Function *F) { +FunctionAnalysisManager::getResultImpl(void *PassID, Function &F) { FunctionAnalysisResultMapT::iterator RI; bool Inserted; std::tie(RI, Inserted) = FunctionAnalysisResults.insert(std::make_pair( - std::make_pair(PassID, F), FunctionAnalysisResultListT::iterator())); + std::make_pair(PassID, &F), FunctionAnalysisResultListT::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) { - FunctionAnalysisResultListT &ResultList = FunctionAnalysisResultLists[F]; + FunctionAnalysisResultListT &ResultList = FunctionAnalysisResultLists[&F]; ResultList.emplace_back(PassID, lookupPass(PassID).run(F, this)); RI->second = std::prev(ResultList.end()); } @@ -137,27 +137,27 @@ FunctionAnalysisManager::getResultImpl(void *PassID, Function *F) { } FunctionAnalysisManager::ResultConceptT * -FunctionAnalysisManager::getCachedResultImpl(void *PassID, Function *F) const { +FunctionAnalysisManager::getCachedResultImpl(void *PassID, Function &F) const { FunctionAnalysisResultMapT::const_iterator RI = - FunctionAnalysisResults.find(std::make_pair(PassID, F)); + FunctionAnalysisResults.find(std::make_pair(PassID, &F)); return RI == FunctionAnalysisResults.end() ? nullptr : &*RI->second->second; } -void FunctionAnalysisManager::invalidateImpl(void *PassID, Function *F) { +void FunctionAnalysisManager::invalidateImpl(void *PassID, Function &F) { FunctionAnalysisResultMapT::iterator RI = - FunctionAnalysisResults.find(std::make_pair(PassID, F)); + FunctionAnalysisResults.find(std::make_pair(PassID, &F)); if (RI == FunctionAnalysisResults.end()) return; - FunctionAnalysisResultLists[F].erase(RI->second); + FunctionAnalysisResultLists[&F].erase(RI->second); } -void FunctionAnalysisManager::invalidateImpl(Function *F, +void FunctionAnalysisManager::invalidateImpl(Function &F, const PreservedAnalyses &PA) { // Clear all the invalidated results associated specifically with this // function. SmallVector<void *, 8> InvalidatedPassIDs; - FunctionAnalysisResultListT &ResultsList = FunctionAnalysisResultLists[F]; + FunctionAnalysisResultListT &ResultsList = FunctionAnalysisResultLists[&F]; for (FunctionAnalysisResultListT::iterator I = ResultsList.begin(), E = ResultsList.end(); I != E;) @@ -169,15 +169,15 @@ void FunctionAnalysisManager::invalidateImpl(Function *F, } while (!InvalidatedPassIDs.empty()) FunctionAnalysisResults.erase( - std::make_pair(InvalidatedPassIDs.pop_back_val(), F)); + std::make_pair(InvalidatedPassIDs.pop_back_val(), &F)); if (ResultsList.empty()) - FunctionAnalysisResultLists.erase(F); + FunctionAnalysisResultLists.erase(&F); } char FunctionAnalysisManagerModuleProxy::PassID; FunctionAnalysisManagerModuleProxy::Result -FunctionAnalysisManagerModuleProxy::run(Module *M) { +FunctionAnalysisManagerModuleProxy::run(Module &M) { assert(FAM->empty() && "Function analyses ran prior to the module proxy!"); return Result(*FAM); } @@ -189,7 +189,7 @@ FunctionAnalysisManagerModuleProxy::Result::~Result() { } bool FunctionAnalysisManagerModuleProxy::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 function analyses, there may be an invalid set of Function // objects in the cache making it impossible to incrementally preserve them. |