llvm::ModuleToPostOrderCGSCCPassAdaptor

The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one.

Synopsis

Declared in <llvm/Analysis/CGSCCPassManager.h>

class ModuleToPostOrderCGSCCPassAdaptor
    : public RequiredPassInfoMixin<ModuleToPostOrderCGSCCPassAdaptor>

Description

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.

Base Classes

NameDescription
RequiredPassInfoMixin<ModuleToPostOrderCGSCCPassAdaptor>A CRTP mix-in for passes that should not be skipped.

Type Aliases

NameDescription
PassConceptT Type-erased CGSCC pass concept used by this adaptor.

Member Functions

NameDescription
ModuleToPostOrderCGSCCPassAdaptor [constructor]Constructors
operator= Assign from RHS using copy-and-swap.
printPipeline Print this adaptor and its nested CGSCC pass as a pipeline.
run Runs the CGSCC pass across every SCC in the module.

Static Member Functions

NameDescription
isRequired Return true; required passes cannot be skipped.

Friends

NameDescription
llvm::swapSwap the nested passes of two adaptors.

Non-Member Functions

NameDescription
createModuleToPostOrderCGSCCPassAdaptorA function to deduce a function pass type and wrap it in the templated adaptor.