LLVM
17.0.0git
|
The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. More...
#include "llvm/Analysis/CGSCCPassManager.h"
Public Types | |
using | PassConceptT = detail::PassConcept< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & > |
Public Member Functions | |
ModuleToPostOrderCGSCCPassAdaptor (std::unique_ptr< PassConceptT > Pass) | |
ModuleToPostOrderCGSCCPassAdaptor (ModuleToPostOrderCGSCCPassAdaptor &&Arg) | |
ModuleToPostOrderCGSCCPassAdaptor & | operator= (ModuleToPostOrderCGSCCPassAdaptor RHS) |
PreservedAnalyses | run (Module &M, ModuleAnalysisManager &AM) |
Runs the CGSCC pass across every SCC in the module. More... | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
![]() | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static bool | isRequired () |
![]() | |
static StringRef | name () |
Gets the name of the pass we are mixed into. More... | |
Friends | |
void | swap (ModuleToPostOrderCGSCCPassAdaptor &LHS, ModuleToPostOrderCGSCCPassAdaptor &RHS) |
The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one.
Designed to allow composition of a CGSCCPass(Manager) and a ModulePassManager. Note that this pass must be run with a module analysis manager as it uses the LazyCallGraph analysis. It will also run the CGSCCAnalysisManagerModuleProxy
analysis prior to running the CGSCC pass over the module to enable a FunctionAnalysisManager
to be used within this run safely.
Definition at line 329 of file CGSCCPassManager.h.
using llvm::ModuleToPostOrderCGSCCPassAdaptor::PassConceptT = detail::PassConcept<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult &> |
Definition at line 334 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 336 of file CGSCCPassManager.h.
|
inline |
Definition at line 339 of file CGSCCPassManager.h.
|
inlinestatic |
Definition at line 363 of file CGSCCPassManager.h.
|
inline |
Definition at line 348 of file CGSCCPassManager.h.
|
inline |
Definition at line 356 of file CGSCCPassManager.h.
PreservedAnalyses llvm::ModuleToPostOrderCGSCCPassAdaptor::run | ( | Module & | M, |
ModuleAnalysisManager & | AM | ||
) |
Runs the CGSCC pass across every SCC in the module.
Definition at line 138 of file CGSCCPassManager.cpp.
References llvm::PreservedAnalyses::all(), assert(), llvm::LazyCallGraph::buildRefSCCs(), CGAM, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, 4, DenseMapInfo< ValueT >, detail::DenseSetPair< ValueT > >, DenseMapInfo< ValueT > >::clear(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::CGSCCUpdateResult::CrossSCCPA, llvm::dbgs(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::empty(), FAM, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::insert(), llvm::PreservedAnalyses::intersect(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::CGSCCUpdateResult::InvalidatedSCCs, LLVM_DEBUG, M, llvm::make_early_inc_range(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::pop_back_val(), llvm::LazyCallGraph::postorder_ref_sccs(), llvm::reverse(), llvm::PassInstrumentation::runAfterPass(), llvm::PassInstrumentation::runAfterPassInvalidated(), llvm::PassInstrumentation::runBeforePass(), and llvm::CGSCCUpdateResult::UpdatedC.
|
friend |
Definition at line 342 of file CGSCCPassManager.h.
Referenced by operator=().