The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one.
Declared in <llvm/Analysis/CGSCCPassManager.h>
class ModuleToPostOrderCGSCCPassAdaptor
: public RequiredPassInfoMixin<ModuleToPostOrderCGSCCPassAdaptor>
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.
| Name | Description |
|---|---|
RequiredPassInfoMixin<ModuleToPostOrderCGSCCPassAdaptor> | A CRTP mix-in for passes that should not be skipped. |
| Name | Description |
|---|---|
PassConceptT | Type-erased CGSCC pass concept used by this adaptor. |
| Name | Description |
|---|---|
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. |
| Name | Description |
|---|---|
isRequired | Return true; required passes cannot be skipped. |
| Name | Description |
|---|---|
llvm::swap | Swap the nested passes of two adaptors. |
| Name | Description |
|---|---|
createModuleToPostOrderCGSCCPassAdaptor | A function to deduce a function pass type and wrap it in the templated adaptor. |