LLVM 18.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

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.


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

Member Typedef Documentation

◆ PassConceptT

Definition at line 332 of file CGSCCPassManager.h.

Constructor & Destructor Documentation

◆ ModuleToPostOrderCGSCCPassAdaptor() [1/2]

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

Definition at line 336 of file CGSCCPassManager.h.

◆ ModuleToPostOrderCGSCCPassAdaptor() [2/2]

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

Definition at line 339 of file CGSCCPassManager.h.

Member Function Documentation

◆ isRequired()

static bool llvm::ModuleToPostOrderCGSCCPassAdaptor::isRequired ( )

Definition at line 363 of file CGSCCPassManager.h.

◆ operator=()

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

Definition at line 348 of file CGSCCPassManager.h.

References RHS, and swap.

◆ printPipeline()

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

Definition at line 356 of file CGSCCPassManager.h.

References OS.

◆ run()

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

Friends And Related Function Documentation

◆ swap

Definition at line 342 of file CGSCCPassManager.h.

Referenced by operator=().

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