LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::ModuleToPostOrderCGSCCPassAdaptor Class 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:
Inheritance graph
[legend]

Public Types

using PassConceptT = detail::PassConcept< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >
 

Public Member Functions

 ModuleToPostOrderCGSCCPassAdaptor (std::unique_ptr< PassConceptT > Pass)
 
 ModuleToPostOrderCGSCCPassAdaptor (ModuleToPostOrderCGSCCPassAdaptor &&Arg)
 
ModuleToPostOrderCGSCCPassAdaptoroperator= (ModuleToPostOrderCGSCCPassAdaptor RHS)
 
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)
 

Detailed Description

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

Member Typedef Documentation

◆ PassConceptT

Definition at line 316 of file CGSCCPassManager.h.

Constructor & Destructor Documentation

◆ ModuleToPostOrderCGSCCPassAdaptor() [1/2]

llvm::ModuleToPostOrderCGSCCPassAdaptor::ModuleToPostOrderCGSCCPassAdaptor ( std::unique_ptr< PassConceptT Pass)
inlineexplicit

Definition at line 320 of file CGSCCPassManager.h.

◆ ModuleToPostOrderCGSCCPassAdaptor() [2/2]

llvm::ModuleToPostOrderCGSCCPassAdaptor::ModuleToPostOrderCGSCCPassAdaptor ( ModuleToPostOrderCGSCCPassAdaptor &&  Arg)
inline

Definition at line 323 of file CGSCCPassManager.h.

Member Function Documentation

◆ isRequired()

static bool llvm::ModuleToPostOrderCGSCCPassAdaptor::isRequired ( )
inlinestatic

Definition at line 347 of file CGSCCPassManager.h.

◆ operator=()

ModuleToPostOrderCGSCCPassAdaptor & llvm::ModuleToPostOrderCGSCCPassAdaptor::operator= ( ModuleToPostOrderCGSCCPassAdaptor  RHS)
inline

Definition at line 332 of file CGSCCPassManager.h.

References RHS, and swap.

◆ printPipeline()

void llvm::ModuleToPostOrderCGSCCPassAdaptor::printPipeline ( raw_ostream OS,
function_ref< StringRef(StringRef)>  MapClassName2PassName 
)
inline

Definition at line 340 of file CGSCCPassManager.h.

References OS.

◆ run()

PreservedAnalyses llvm::ModuleToPostOrderCGSCCPassAdaptor::run ( Module M,
ModuleAnalysisManager AM 
)

Friends And Related Function Documentation

◆ swap

Definition at line 326 of file CGSCCPassManager.h.

Referenced by operator=().


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