LLVM 20.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. | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Public Member Functions inherited from llvm::PassInfoMixin< ModuleToPostOrderCGSCCPassAdaptor > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static bool | isRequired () |
Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleToPostOrderCGSCCPassAdaptor > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
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 313 of file CGSCCPassManager.h.
using llvm::ModuleToPostOrderCGSCCPassAdaptor::PassConceptT = detail::PassConcept<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult &> |
Definition at line 316 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 320 of file CGSCCPassManager.h.
|
inline |
Definition at line 323 of file CGSCCPassManager.h.
|
inlinestatic |
Definition at line 347 of file CGSCCPassManager.h.
|
inline |
Definition at line 332 of file CGSCCPassManager.h.
|
inline |
Definition at line 340 of file CGSCCPassManager.h.
References OS.
PreservedAnalyses llvm::ModuleToPostOrderCGSCCPassAdaptor::run | ( | Module & | M, |
ModuleAnalysisManager & | AM | ||
) |
Runs the CGSCC pass across every SCC in the module.
Definition at line 136 of file CGSCCPassManager.cpp.
References llvm::PreservedAnalyses::all(), assert(), llvm::LazyCallGraph::buildRefSCCs(), llvm::CallingConv::C, CGAM, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::clear(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::CGSCCUpdateResult::CrossSCCPA, llvm::dbgs(), llvm::PriorityWorklist< T, VectorT, MapT >::empty(), FAM, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PriorityWorklist< T, VectorT, MapT >::insert(), llvm::PreservedAnalyses::intersect(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::CGSCCUpdateResult::InvalidatedSCCs, LLVM_DEBUG, llvm::make_early_inc_range(), llvm::PriorityWorklist< T, VectorT, MapT >::pop_back_val(), llvm::LazyCallGraph::postorder_ref_sccs(), llvm::LazyCallGraph::removeDeadFunctions(), llvm::reverse(), llvm::PassInstrumentation::runAfterPass(), llvm::PassInstrumentation::runAfterPassInvalidated(), llvm::PassInstrumentation::runBeforePass(), llvm::CGSCCUpdateResult::UpdatedC, and llvm::LazyCallGraph::verify().
|
friend |
Definition at line 326 of file CGSCCPassManager.h.
Referenced by operator=().