LLVM 22.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 (std::unique_ptr< PassConceptT > 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)

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 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.
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...
Template for the abstract base class used to dispatch polymorphically over pass objects.

Definition at line 318 of file CGSCCPassManager.h.

Constructor & Destructor Documentation

◆ ModuleToPostOrderCGSCCPassAdaptor() [1/2]

llvm::ModuleToPostOrderCGSCCPassAdaptor::ModuleToPostOrderCGSCCPassAdaptor ( std::unique_ptr< PassConceptT > 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

◆ isRequired()

bool llvm::ModuleToPostOrderCGSCCPassAdaptor::isRequired ( )
inlinestatic

Definition at line 349 of file CGSCCPassManager.h.

◆ 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: