[llvm] 11046ef - [llvm][NFC] Factored the default inlining advice
Mircea Trofin via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 13 12:28:15 PDT 2020
Author: Mircea Trofin
Date: 2020-07-13T12:20:35-07:00
New Revision: 11046ef69e3e9ec3ae9f5f4caadf965b7f1e22c8
URL: https://github.com/llvm/llvm-project/commit/11046ef69e3e9ec3ae9f5f4caadf965b7f1e22c8
DIFF: https://github.com/llvm/llvm-project/commit/11046ef69e3e9ec3ae9f5f4caadf965b7f1e22c8.diff
LOG: [llvm][NFC] Factored the default inlining advice
This is in preparation for the 'development' mode advisor. We currently
want to track what the default policy's decision would have been, this
refactoring makes it easier to do that.
Added:
Modified:
llvm/lib/Analysis/InlineAdvisor.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/InlineAdvisor.cpp b/llvm/lib/Analysis/InlineAdvisor.cpp
index 9a3e5fa0df72..74a536d1ce2f 100644
--- a/llvm/lib/Analysis/InlineAdvisor.cpp
+++ b/llvm/lib/Analysis/InlineAdvisor.cpp
@@ -84,7 +84,9 @@ class DefaultInlineAdvice : public InlineAdvice {
} // namespace
-std::unique_ptr<InlineAdvice> DefaultInlineAdvisor::getAdvice(CallBase &CB) {
+llvm::Optional<llvm::InlineCost>
+getDefaultInlineAdvice(CallBase &CB, FunctionAnalysisManager &FAM,
+ const InlineParams &Params) {
Function &Caller = *CB.getCaller();
ProfileSummaryInfo *PSI =
FAM.getResult<ModuleAnalysisManagerFunctionProxy>(Caller)
@@ -111,10 +113,16 @@ std::unique_ptr<InlineAdvice> DefaultInlineAdvisor::getAdvice(CallBase &CB) {
return getInlineCost(CB, Params, CalleeTTI, GetAssumptionCache, GetTLI,
GetBFI, PSI, RemarksEnabled ? &ORE : nullptr);
};
- auto OIC = llvm::shouldInline(CB, GetInlineCost, ORE,
- Params.EnableDeferral.hasValue() &&
- Params.EnableDeferral.getValue());
- return std::make_unique<DefaultInlineAdvice>(this, CB, OIC, ORE);
+ return llvm::shouldInline(CB, GetInlineCost, ORE,
+ Params.EnableDeferral.hasValue() &&
+ Params.EnableDeferral.getValue());
+}
+
+std::unique_ptr<InlineAdvice> DefaultInlineAdvisor::getAdvice(CallBase &CB) {
+ auto OIC = getDefaultInlineAdvice(CB, FAM, Params);
+ return std::make_unique<DefaultInlineAdvice>(
+ this, CB, OIC,
+ FAM.getResult<OptimizationRemarkEmitterAnalysis>(*CB.getCaller()));
}
InlineAdvice::InlineAdvice(InlineAdvisor *Advisor, CallBase &CB,
More information about the llvm-commits
mailing list