LLVM 20.0.0git
|
We need a specialized result for the CGSCCAnalysisManagerModuleProxy
so it can have access to the call graph in order to walk all the SCCs when invalidating things.
More...
#include "llvm/Analysis/CGSCCPassManager.h"
Public Member Functions | |
Result (CGSCCAnalysisManager &InnerAM, LazyCallGraph &G) | |
CGSCCAnalysisManager & | getManager () |
Accessor for the analysis manager. | |
bool | invalidate (Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &Inv) |
Handler for invalidation of the Module. | |
We need a specialized result for the CGSCCAnalysisManagerModuleProxy
so it can have access to the call graph in order to walk all the SCCs when invalidating things.
Definition at line 172 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 174 of file CGSCCPassManager.h.
|
inline |
Accessor for the analysis manager.
Definition at line 178 of file CGSCCPassManager.h.
bool llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate | ( | Module & | M, |
const PreservedAnalyses & | PA, | ||
ModuleAnalysisManager::Invalidator & | Inv | ||
) |
Handler for invalidation of the Module.
If the proxy analysis itself is preserved, then we assume that the set of SCCs in the Module hasn't changed. Thus any pointers to SCCs in the CGSCCAnalysisManager are still valid, and we don't need to call clear
on the CGSCCAnalysisManager.
Regardless of whether this analysis is marked as preserved, all of the analyses in the CGSCCAnalysisManager
are potentially invalidated based on the set of preserved analyses.
Definition at line 579 of file CGSCCPassManager.cpp.
References llvm::PreservedAnalyses::abandon(), llvm::PreservedAnalyses::allAnalysesInSetPreserved(), llvm::PreservedAnalyses::areAllPreserved(), llvm::CallingConv::C, G, llvm::PreservedAnalyses::getChecker(), and llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate().