LLVM
8.0.1
|
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 Member Functions | |
ModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass) | |
ModuleToPostOrderCGSCCPassAdaptor (const ModuleToPostOrderCGSCCPassAdaptor &Arg) | |
ModuleToPostOrderCGSCCPassAdaptor (ModuleToPostOrderCGSCCPassAdaptor &&Arg) | |
ModuleToPostOrderCGSCCPassAdaptor & | operator= (ModuleToPostOrderCGSCCPassAdaptor RHS) |
PreservedAnalyses | run (Module &M, ModuleAnalysisManager &AM) |
Runs the CGSCC pass across every SCC in the module. More... | |
Friends | |
void | swap (ModuleToPostOrderCGSCCPassAdaptor &LHS, ModuleToPostOrderCGSCCPassAdaptor &RHS) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. More... | |
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.
|
inlineexplicit |
Definition at line 318 of file CGSCCPassManager.h.
|
inline |
Definition at line 323 of file CGSCCPassManager.h.
|
inline |
Definition at line 327 of file CGSCCPassManager.h.
|
inline |
Definition at line 336 of file CGSCCPassManager.h.
References std::swap().
|
inline |
Runs the CGSCC pass across every SCC in the module.
Definition at line 342 of file CGSCCPassManager.h.
References llvm::PreservedAnalyses::all(), assert(), llvm::LazyCallGraph::SCC::begin(), llvm::LazyCallGraph::buildRefSCCs(), C, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dbgs(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::empty(), llvm::LazyCallGraph::SCC::end(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::getManager(), llvm::LazyCallGraph::SCC::getOuterRefSCC(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::insert(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::CGSCCUpdateResult::InvalidatedSCCs, LLVM_DEBUG, Pass, llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::pop_back_val(), llvm::LazyCallGraph::postorder_ref_scc_begin(), llvm::LazyCallGraph::postorder_ref_scc_end(), llvm::reverse(), llvm::PassInstrumentation::runAfterPass(), llvm::PassInstrumentation::runAfterPassInvalidated(), llvm::PassInstrumentation::runBeforePass(), llvm::CGSCCUpdateResult::UpdatedC, and llvm::CGSCCUpdateResult::UpdatedRC.
|
friend |
Definition at line 330 of file CGSCCPassManager.h.