LLVM 24.0.0git
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:
[legend]

Public Types

using PassConceptT

Public Member Functions

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

Friends

void swap (ModuleToPostOrderCGSCCPassAdaptor &LHS, ModuleToPostOrderCGSCCPassAdaptor &RHS)

Additional Inherited Members

Static Public Member Functions inherited from llvm::RequiredPassInfoMixin< ModuleToPostOrderCGSCCPassAdaptor >
static bool isRequired ()
Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleToPostOrderCGSCCPassAdaptor >
static bool isRequired ()
Static Public Member Functions inherited from llvm::detail::InfoMixin< ModuleToPostOrderCGSCCPassAdaptor >
static StringRef name ()
 Gets the name of the pass we are mixed into.

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

Member Typedef Documentation

◆ PassConceptT

Initial value:
An SCC of the call graph.
A lazily constructed view of the call graph of a module.
Template for the abstract base class used to dispatch over pass objects.
AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & > CGSCCAnalysisManager
The CGSCC analysis manager.
Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager...

Definition at line 318 of file CGSCCPassManager.h.

Constructor & Destructor Documentation

◆ ModuleToPostOrderCGSCCPassAdaptor() [1/2]

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

Definition at line 322 of file CGSCCPassManager.h.

References llvm::move().

Referenced by ModuleToPostOrderCGSCCPassAdaptor(), operator=(), and swap.

◆ ModuleToPostOrderCGSCCPassAdaptor() [2/2]

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

Definition at line 325 of file CGSCCPassManager.h.

References ModuleToPostOrderCGSCCPassAdaptor(), and llvm::move().

Member Function Documentation

◆ operator=()

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

Definition at line 334 of file CGSCCPassManager.h.

References ModuleToPostOrderCGSCCPassAdaptor(), RHS, and swap.

◆ printPipeline()

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

Definition at line 342 of file CGSCCPassManager.h.

◆ run()

◆ swap

Definition at line 328 of file CGSCCPassManager.h.

References LHS, ModuleToPostOrderCGSCCPassAdaptor(), RHS, and std::swap().

Referenced by operator=().


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