class ModuleInlinerPass
Declaration
class ModuleInlinerPass : public PassInfoMixin { /* full declaration omitted */ };
Description
The module inliner pass for the new pass manager. This pass wires together the inlining utilities and the inline cost analysis into a module pass. Different from SCC inliner, it considers every call in every function in the whole module and tries to inline if profitable. With this module level inliner, it is possible to evaluate more heuristics in the module level such like PriorityInlineOrder. It can be tuned with a number of parameters to control what cost model is used and what tradeoffs are made when making the decision.
Declared at: llvm/include/llvm/Transforms/IPO/ModuleInliner.h:27
Inherits from: PassInfoMixin
Member Variables
- private std::unique_ptr<InlineAdvisor> OwnedAdvisor
- private const llvm::InlineParams Params
- private const llvm::InliningAdvisorMode Mode
- private const llvm::ThinOrFullLTOPhase LTOPhase
Method Overview
- public ModuleInlinerPass(llvm::InlineParams Params = getInlineParams(), llvm::InliningAdvisorMode Mode = InliningAdvisorMode::Default, llvm::ThinOrFullLTOPhase LTOPhase = ThinOrFullLTOPhase::None)
- public ModuleInlinerPass(llvm::ModuleInlinerPass && Arg)
- private llvm::InlineAdvisor & getAdvisor(const llvm::ModuleAnalysisManager & MAM, llvm::FunctionAnalysisManager & FAM, llvm::Module & M)
- public llvm::PreservedAnalyses run(llvm::Module &, llvm::ModuleAnalysisManager &)
Methods
¶ModuleInlinerPass(
llvm::InlineParams Params = getInlineParams(),
llvm::InliningAdvisorMode Mode =
InliningAdvisorMode::Default,
llvm::ThinOrFullLTOPhase LTOPhase =
ThinOrFullLTOPhase::None)
ModuleInlinerPass(
llvm::InlineParams Params = getInlineParams(),
llvm::InliningAdvisorMode Mode =
InliningAdvisorMode::Default,
llvm::ThinOrFullLTOPhase LTOPhase =
ThinOrFullLTOPhase::None)
Declared at: llvm/include/llvm/Transforms/IPO/ModuleInliner.h:29
Parameters
- llvm::InlineParams Params = getInlineParams()
- llvm::InliningAdvisorMode Mode = InliningAdvisorMode::Default
- llvm::ThinOrFullLTOPhase LTOPhase = ThinOrFullLTOPhase::None
¶ModuleInlinerPass(llvm::ModuleInlinerPass&& Arg)
ModuleInlinerPass(llvm::ModuleInlinerPass&& Arg)
Declared at: llvm/include/llvm/Transforms/IPO/ModuleInliner.h:33
Parameters
- llvm::ModuleInlinerPass&& Arg
¶llvm::InlineAdvisor& getAdvisor(
const llvm::ModuleAnalysisManager& MAM,
llvm::FunctionAnalysisManager& FAM,
llvm::Module& M)
llvm::InlineAdvisor& getAdvisor(
const llvm::ModuleAnalysisManager& MAM,
llvm::FunctionAnalysisManager& FAM,
llvm::Module& M)
Declared at: llvm/include/llvm/Transforms/IPO/ModuleInliner.h:38
Parameters
- const llvm::ModuleAnalysisManager& MAM
- llvm::FunctionAnalysisManager& FAM
- llvm::Module& M
¶llvm::PreservedAnalyses run(
llvm::Module&,
llvm::ModuleAnalysisManager&)
llvm::PreservedAnalyses run(
llvm::Module&,
llvm::ModuleAnalysisManager&)
Declared at: llvm/include/llvm/Transforms/IPO/ModuleInliner.h:35