aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/InlineCost.cpp
diff options
context:
space:
mode:
authorJun Ma <JunMa@linux.alibaba.com>2022-04-22 15:08:01 +0800
committerJun Ma <JunMa@linux.alibaba.com>2022-04-24 09:34:19 +0800
commitc0022b4bb12d93d95bc3dfa00f236fc2cfe753ed (patch)
tree9a9edfcb8da7e9a9f50e67323e2f9cfe473efbe8 /llvm/lib/Analysis/InlineCost.cpp
parent4620032ee304aae35a12b3e8927f0e27f527f4e1 (diff)
downloadllvm-c0022b4bb12d93d95bc3dfa00f236fc2cfe753ed.zip
llvm-c0022b4bb12d93d95bc3dfa00f236fc2cfe753ed.tar.gz
llvm-c0022b4bb12d93d95bc3dfa00f236fc2cfe753ed.tar.bz2
[InlineCost] Set LastCallToStaticBonus in ML inlining models.
This patch set LastCallToStaticBonus based on check, it has no noticeable size reduction on an internal workload and linux kernel with Os/Oz. Differential Revision: https://reviews.llvm.org/D124233
Diffstat (limited to 'llvm/lib/Analysis/InlineCost.cpp')
-rw-r--r--llvm/lib/Analysis/InlineCost.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp
index 033ca9a..837a6c1 100644
--- a/llvm/lib/Analysis/InlineCost.cpp
+++ b/llvm/lib/Analysis/InlineCost.cpp
@@ -1203,6 +1203,10 @@ private:
set(InlineCostFeatureIndex::ColdCcPenalty,
(F.getCallingConv() == CallingConv::Cold));
+ set(InlineCostFeatureIndex::LastCallToStaticBonus,
+ (F.hasLocalLinkage() && F.hasOneLiveUse() &&
+ &F == CandidateCall.getCalledFunction()));
+
// FIXME: we shouldn't repeat this logic in both the Features and Cost
// analyzer - instead, we should abstract it to a common method in the
// CallAnalyzer