LLVM
8.0.1
|
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. More... | |
bool | invalidate (Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &Inv) |
Handler for invalidation of the Module. More... | |
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 173 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 175 of file CGSCCPassManager.h.
|
inline |
Accessor for the analysis manager.
Definition at line 179 of file CGSCCPassManager.h.
References G, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::invalidate(), and llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::run().
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.