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)

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)

Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:130

Parameters

llvm::ModuleInlinerWrapperPass&& Arg

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)

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

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)

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

Declared at: llvm/include/llvm/Transforms/IPO/Inliner.h:132

Parameters

llvm::Module&
llvm::ModuleAnalysisManager&