class ModuleInlinerWrapperPass
Declaration
class ModuleInlinerWrapperPass : public PassInfoMixin { /* full declaration omitted */ };
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.
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:122
Inherits from: PassInfoMixin
Member Variables
- private const llvm::InlineParams Params
- private const llvm::InlineContext IC
- private const llvm::InliningAdvisorMode Mode
- private const unsigned int MaxDevirtIterations
- private llvm::CGSCCPassManager PM
- private llvm::ModulePassManager MPM
- private llvm::ModulePassManager AfterCGMPM
Method Overview
- public ModuleInlinerWrapperPass(llvm::InlineParams Params = getInlineParams(), bool MandatoryFirst = true, llvm::InlineContext IC = {}, llvm::InliningAdvisorMode Mode = InliningAdvisorMode::Default, unsigned int MaxDevirtIterations = 0)
- public ModuleInlinerWrapperPass(llvm::ModuleInlinerWrapperPass && Arg)
- public template <class T>void addLateModulePass(T Pass)
- public template <class T>void addModulePass(T Pass)
- public llvm::CGSCCPassManager & getPM()
- public void printPipeline(llvm::raw_ostream & OS, function_ref<llvm::StringRef (llvm::StringRef)> MapClassName2PassName)
- public llvm::PreservedAnalyses run(llvm::Module &, llvm::ModuleAnalysisManager &)
Methods
¶ModuleInlinerWrapperPass(
llvm::InlineParams Params = getInlineParams(),
bool MandatoryFirst = true,
llvm::InlineContext IC = {},
llvm::InliningAdvisorMode Mode =
InliningAdvisorMode::Default,
unsigned int MaxDevirtIterations = 0)
ModuleInlinerWrapperPass(
llvm::InlineParams Params = getInlineParams(),
bool MandatoryFirst = true,
llvm::InlineContext IC = {},
llvm::InliningAdvisorMode Mode =
InliningAdvisorMode::Default,
unsigned int MaxDevirtIterations = 0)
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:125
Parameters
- llvm::InlineParams Params = getInlineParams()
- bool MandatoryFirst = true
- llvm::InlineContext IC = {}
- llvm::InliningAdvisorMode Mode = InliningAdvisorMode::Default
- unsigned int MaxDevirtIterations = 0
¶ModuleInlinerWrapperPass(
llvm::ModuleInlinerWrapperPass&& Arg)
ModuleInlinerWrapperPass(
llvm::ModuleInlinerWrapperPass&& Arg)
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:130
Parameters
¶template <class T>
void addLateModulePass(T Pass)
template <class T>
void addLateModulePass(T Pass)
Description
Add a module pass that runs after the CGSCC passes.
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:144
Templates
- T
Parameters
- T Pass
¶template <class T>
void addModulePass(T Pass)
template <class T>
void addModulePass(T Pass)
Description
Add a module pass that runs before the CGSCC passes.
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:139
Templates
- T
Parameters
- T Pass
¶llvm::CGSCCPassManager& getPM()
llvm::CGSCCPassManager& getPM()
Description
Allow adding more CGSCC passes, besides inlining. This should be called before run is called, as part of pass pipeline building.
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:136
¶void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
void printPipeline(
llvm::raw_ostream& OS,
function_ref<llvm::StringRef(llvm::StringRef)>
MapClassName2PassName)
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:148
Parameters
- llvm::raw_ostream& OS
- function_ref<llvm::StringRef(llvm::StringRef)> MapClassName2PassName
¶llvm::PreservedAnalyses run(
llvm::Module&,
llvm::ModuleAnalysisManager&)
llvm::PreservedAnalyses run(
llvm::Module&,
llvm::ModuleAnalysisManager&)
Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:132