[#llvm-ExtraFunctionPassManager] = xref:llvm.adoc[llvm]::ExtraFunctionPassManager :relfileprefix: ../ :mrdocs: A pass manager that runs extra function passes when a marker analysis is present. == Synopsis Declared in `<llvm/Transforms/Utils/ExtraPassManager.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename MarkerTy> class ExtraFunctionPassManager : public xref:llvm/RequiredPassInfoMixin-047.adoc[RequiredPassInfoMixin<ExtraFunctionPassManager<MarkerTy>>] ---- == Description A pass manager to run a set of extra function passes if the ShouldRunExtraPasses marker analysis is present. This allows passes to request additional transformations on demand. An example is extra simplifications after loop‐vectorization, if runtime checks have been added. == Base Classes [cols="1,4"] |=== | Name| Description | `xref:llvm/RequiredPassInfoMixin-047.adoc[RequiredPassInfoMixin<ExtraFunctionPassManager<MarkerTy>>]` | A CRTP mix‐in for passes that should not be skipped. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/ExtraFunctionPassManager/addPass.adoc[`addPass`] | Add a pass to the set of extra function passes. | xref:llvm/RequiredPassInfoMixin-047/printPipeline.adoc[`printPipeline`] | Print this pass as a single name in a textual pipeline. | xref:llvm/ExtraFunctionPassManager/run.adoc[`run`] | Run the extra function passes if the marker analysis is cached for F. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/RequiredPassInfoMixin-047/isRequired.adoc[`isRequired`] | Return true; required passes cannot be skipped. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#