forked from OSchip/llvm-project
[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.
This commit is contained in:
parent
3780d3eb10
commit
11046ef69e
|
@ -84,7 +84,9 @@ private:
|
|||
|
||||
} // 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,
|
||||
|
|
Loading…
Reference in New Issue