LLVM  8.0.1
Public Member Functions | Friends | List of all members
llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > Class Template Reference

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"

Inheritance diagram for llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >:
Inheritance graph
[legend]
Collaboration diagram for llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >:
Collaboration graph
[legend]

Public Member Functions

 ModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass)
 
 ModuleToPostOrderCGSCCPassAdaptor (const ModuleToPostOrderCGSCCPassAdaptor &Arg)
 
 ModuleToPostOrderCGSCCPassAdaptor (ModuleToPostOrderCGSCCPassAdaptor &&Arg)
 
ModuleToPostOrderCGSCCPassAdaptoroperator= (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...
 

Detailed Description

template<typename CGSCCPassT>
class llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >

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.

Constructor & Destructor Documentation

◆ ModuleToPostOrderCGSCCPassAdaptor() [1/3]

template<typename CGSCCPassT >
llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::ModuleToPostOrderCGSCCPassAdaptor ( CGSCCPassT  Pass)
inlineexplicit

Definition at line 318 of file CGSCCPassManager.h.

◆ ModuleToPostOrderCGSCCPassAdaptor() [2/3]

template<typename CGSCCPassT >
llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::ModuleToPostOrderCGSCCPassAdaptor ( const ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > &  Arg)
inline

Definition at line 323 of file CGSCCPassManager.h.

◆ ModuleToPostOrderCGSCCPassAdaptor() [3/3]

template<typename CGSCCPassT >
llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::ModuleToPostOrderCGSCCPassAdaptor ( ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > &&  Arg)
inline

Definition at line 327 of file CGSCCPassManager.h.

Member Function Documentation

◆ operator=()

template<typename CGSCCPassT >
ModuleToPostOrderCGSCCPassAdaptor& llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::operator= ( ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >  RHS)
inline

Definition at line 336 of file CGSCCPassManager.h.

References std::swap().

◆ run()

template<typename CGSCCPassT >
PreservedAnalyses llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run ( Module M,
ModuleAnalysisManager AM 
)
inline

Friends And Related Function Documentation

◆ swap

template<typename CGSCCPassT >
void swap ( ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > &  LHS,
ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > &  RHS 
)
friend

Definition at line 330 of file CGSCCPassManager.h.


The documentation for this class was generated from the following file: