LLVM 20.0.0git
|
The module inliner pass for the new pass manager. More...
#include "llvm/Transforms/IPO/ModuleInliner.h"
Public Member Functions | |
ModuleInlinerPass (InlineParams Params=getInlineParams(), InliningAdvisorMode Mode=InliningAdvisorMode::Default, ThinOrFullLTOPhase LTOPhase=ThinOrFullLTOPhase::None) | |
ModuleInlinerPass (ModuleInlinerPass &&Arg)=default | |
PreservedAnalyses | run (Module &, ModuleAnalysisManager &) |
Public Member Functions inherited from llvm::PassInfoMixin< ModuleInlinerPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleInlinerPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
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.
Definition at line 27 of file ModuleInliner.h.
|
inline |
Definition at line 29 of file ModuleInliner.h.
|
default |
PreservedAnalyses ModuleInlinerPass::run | ( | Module & | M, |
ModuleAnalysisManager & | MAM | ||
) |
Definition at line 103 of file ModuleInliner.cpp.
References llvm::PreservedAnalyses::all(), assert(), llvm::dbgs(), DEBUG_TYPE, F, FAM, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::getInlineOrder(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), I, instructions, LLVM_DEBUG, llvm::make_scope_exit(), MAM, llvm::InlineAdvisor::onPassEntry(), llvm::InlineAdvisor::onPassExit(), and llvm::setInlineRemark().