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
[legend]
Collaboration diagram for llvm::ModuleInlinerWrapperPass:
Collaboration graph
[legend]

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)
default

Member Function Documentation

◆ addModulePass()

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

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 ( )
inline

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: