[#llvm-ModuleToPostOrderCGSCCPassAdaptor] = xref:llvm.adoc[llvm]::ModuleToPostOrderCGSCCPassAdaptor :relfileprefix: ../ :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ModuleToPostOrderCGSCCPassAdaptor : public xref:llvm/RequiredPassInfoMixin-047.adoc[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 [cols="1,4"] |=== | Name| Description | `xref:llvm/RequiredPassInfoMixin-047.adoc[RequiredPassInfoMixin<ModuleToPostOrderCGSCCPassAdaptor>]` | A CRTP mix‐in for passes that should not be skipped. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/PassConceptT.adoc[`PassConceptT`] | Type‐erased CGSCC pass concept used by this adaptor. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/2constructor-0d4.adoc[`ModuleToPostOrderCGSCCPassAdaptor`] [.small]#[constructor]# | Constructors | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/operator_assign.adoc[`operator=`] | Assign from `RHS` using copy‐and‐swap. | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/printPipeline.adoc[`printPipeline`] | Print this adaptor and its nested CGSCC pass as a pipeline. | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/run.adoc[`run`] | Runs the CGSCC pass across every SCC in the module. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/ModuleToPostOrderCGSCCPassAdaptor/isRequired.adoc[`isRequired`] | Return true; required passes cannot be skipped. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:llvm/swap-00.adoc[llvm::swap]` | Swap the nested passes of two adaptors. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/createModuleToPostOrderCGSCCPassAdaptor.adoc[`createModuleToPostOrderCGSCCPassAdaptor`] | A function to deduce a function pass type and wrap it in the templated adaptor. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#