9#ifndef LLVM_TRANSFORMS_IPO_MODULEINLINER_H
10#define LLVM_TRANSFORMS_IPO_MODULEINLINER_H
32 : Params(Params), Mode(Mode), LTOPhase(LTOPhase){};
40 std::unique_ptr<InlineAdvisor> OwnedAdvisor;
This header defines various interfaces for pass management in LLVM.
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
A container for analyses that lazily runs them and caches their results.
Interface for deciding whether to inline a call site or not.
The module inliner pass for the new pass manager.
ModuleInlinerPass(InlineParams Params=getInlineParams(), InliningAdvisorMode Mode=InliningAdvisorMode::Default, ThinOrFullLTOPhase LTOPhase=ThinOrFullLTOPhase::None)
PreservedAnalyses run(Module &, ModuleAnalysisManager &)
ModuleInlinerPass(ModuleInlinerPass &&Arg)=default
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
InliningAdvisorMode
There are 4 scenarios we can use the InlineAdvisor:
ThinOrFullLTOPhase
This enumerates the LLVM full LTO or ThinLTO optimization phases.
@ None
No LTO/ThinLTO behavior needed.
InlineParams getInlineParams()
Generate the parameters to tune the inline cost analysis based only on the commandline options.
Thresholds to tune inline cost analysis.
A CRTP mix-in to automatically provide informational APIs needed for passes.