LLVM API Documentation

Public Member Functions | Static Public Member Functions | Friends
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 <CGSCCPassManager.h>

List of all members.

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.

Static Public Member Functions

static StringRef name ()

Friends

void swap (ModuleToPostOrderCGSCCPassAdaptor &LHS, ModuleToPostOrderCGSCCPassAdaptor &RHS)

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 303 of file CGSCCPassManager.h.


Constructor & Destructor Documentation

template<typename CGSCCPassT >
llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::ModuleToPostOrderCGSCCPassAdaptor ( CGSCCPassT  Pass) [inline, explicit]

Definition at line 305 of file CGSCCPassManager.h.

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

Definition at line 309 of file CGSCCPassManager.h.

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

Definition at line 312 of file CGSCCPassManager.h.


Member Function Documentation

template<typename CGSCCPassT >
static StringRef llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::name ( ) [inline, static]

Definition at line 361 of file CGSCCPassManager.h.

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

Definition at line 320 of file CGSCCPassManager.h.

References std::swap().

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

Friends And Related Function Documentation

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

Definition at line 314 of file CGSCCPassManager.h.


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