|
LLVM
4.0.0
|
The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. More...
#include <CGSCCPassManager.h>
Public Member Functions | |
| ModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass, bool DebugLogging=false) | |
| 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 290 of file CGSCCPassManager.h.
|
inlineexplicit |
Definition at line 293 of file CGSCCPassManager.h.
|
inline |
Definition at line 297 of file CGSCCPassManager.h.
|
inline |
Definition at line 300 of file CGSCCPassManager.h.
|
inline |
Definition at line 309 of file CGSCCPassManager.h.
References llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::swap.
|
inline |
Runs the CGSCC pass across every SCC in the module.
Definition at line 315 of file CGSCCPassManager.h.
References llvm::PreservedAnalyses::all(), assert(), llvm::LazyCallGraph::SCC::begin(), C, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dbgs(), llvm::PriorityWorklist< T, SmallVector< T, N >, SmallDenseMap< T, ptrdiff_t > >::empty(), llvm::LazyCallGraph::SCC::end(), llvm::LazyCallGraph::SCC::getOuterRefSCC(), 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::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::PreservedAnalyses::preserve(), llvm::PreservedAnalyses::preserveSet(), llvm::reverse(), llvm::CGSCCUpdateResult::UpdatedC, and llvm::CGSCCUpdateResult::UpdatedRC.
|
friend |
Definition at line 302 of file CGSCCPassManager.h.
Referenced by llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::operator=().
1.8.6