|
LLVM 22.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 |
Public Member Functions | |
| ModuleToPostOrderCGSCCPassAdaptor (std::unique_ptr< PassConceptT > Pass) | |
| ModuleToPostOrderCGSCCPassAdaptor (ModuleToPostOrderCGSCCPassAdaptor &&Arg) | |
| ModuleToPostOrderCGSCCPassAdaptor & | operator= (ModuleToPostOrderCGSCCPassAdaptor RHS) |
| LLVM_ABI 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 315 of file CGSCCPassManager.h.
Definition at line 318 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 322 of file CGSCCPassManager.h.
References llvm::move().
Referenced by ModuleToPostOrderCGSCCPassAdaptor(), operator=(), and swap.
|
inline |
Definition at line 325 of file CGSCCPassManager.h.
References ModuleToPostOrderCGSCCPassAdaptor(), and llvm::move().
|
inlinestatic |
Definition at line 349 of file CGSCCPassManager.h.
|
inline |
Definition at line 334 of file CGSCCPassManager.h.
References ModuleToPostOrderCGSCCPassAdaptor(), RHS, and swap.
|
inline |
Definition at line 342 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 143 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::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 328 of file CGSCCPassManager.h.
References LHS, ModuleToPostOrderCGSCCPassAdaptor(), RHS, and std::swap().
Referenced by operator=().