LLVM  13.0.0git
Public Member Functions | List of all members
llvm::ModuleInlinerWrapperPass Class Reference

Module pass, wrapping the inliner pass. More...

#include "llvm/Transforms/IPO/Inliner.h"

Inheritance diagram for llvm::ModuleInlinerWrapperPass:
Inheritance graph
Collaboration diagram for llvm::ModuleInlinerWrapperPass:
Collaboration graph

Public Member Functions

 ModuleInlinerWrapperPass (InlineParams Params=getInlineParams(), bool MandatoryFirst=true, InliningAdvisorMode Mode=InliningAdvisorMode::Default, unsigned MaxDevirtIterations=0)
 ModuleInlinerWrapperPass (ModuleInlinerWrapperPass &&Arg)=default
PreservedAnalyses run (Module &, ModuleAnalysisManager &)
CGSCCPassManagergetPM ()
 Allow adding more CGSCC passes, besides inlining. More...
template<class T >
void addModulePass (T Pass)
 Allow adding module-level passes benefiting the contained CGSCC passes. More...

Additional Inherited Members

- Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleInlinerWrapperPass >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...

Detailed Description

Module pass, wrapping the inliner pass.

This works in conjunction with the InlineAdvisorAnalysis to facilitate inlining decisions taking into account module-wide state, that need to keep track of inter-inliner pass runs, for a given module. An InlineAdvisor is configured and kept alive for the duration of the ModuleInlinerWrapperPass::run.

Definition at line 118 of file Inliner.h.

Constructor & Destructor Documentation

◆ ModuleInlinerWrapperPass() [1/2]

ModuleInlinerWrapperPass::ModuleInlinerWrapperPass ( InlineParams  Params = getInlineParams(),
bool  MandatoryFirst = true,
InliningAdvisorMode  Mode = InliningAdvisorMode::Default,
unsigned  MaxDevirtIterations = 0 

◆ ModuleInlinerWrapperPass() [2/2]

llvm::ModuleInlinerWrapperPass::ModuleInlinerWrapperPass ( ModuleInlinerWrapperPass &&  Arg)

Member Function Documentation

◆ addModulePass()

template<class T >
void llvm::ModuleInlinerWrapperPass::addModulePass ( Pass)

Allow adding module-level passes benefiting the contained CGSCC passes.

Definition at line 134 of file Inliner.h.

References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), and move.

Referenced by llvm::PassBuilder::buildInlinerPipeline().

◆ getPM()

CGSCCPassManager& llvm::ModuleInlinerWrapperPass::getPM ( )

Allow adding more CGSCC passes, besides inlining.

This should be called before run is called, as part of pass pipeline building.

Definition at line 131 of file Inliner.h.

Referenced by llvm::PassBuilder::buildInlinerPipeline().

◆ run()

PreservedAnalyses ModuleInlinerWrapperPass::run ( Module M,
ModuleAnalysisManager MAM 

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