diff options
author | Dehao Chen <dehao@google.com> | 2017-08-08 20:57:33 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2017-08-08 20:57:33 +0000 |
commit | 34cfcb29aaccbba4e00786013db1a0db77838eae (patch) | |
tree | 9c1703e388e5798f1d357d7dbbd1f308acd627c5 /llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp | |
parent | 512253292cfd21d59a175156402c54fb64e97ef8 (diff) | |
download | bcm5719-llvm-34cfcb29aaccbba4e00786013db1a0db77838eae.tar.gz bcm5719-llvm-34cfcb29aaccbba4e00786013db1a0db77838eae.zip |
Make ICP uses PSI to check for hotness.
Summary: Currently, ICP checks the count against a fixed value to see if it is hot enough to be promoted. This does not work for SamplePGO because sampled count may be much smaller. This patch uses PSI to check if the count is hot enough to be promoted.
Reviewers: davidxl, tejohnson, eraman
Reviewed By: davidxl
Subscribers: sanjoy, llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D36341
llvm-svn: 310416
Diffstat (limited to 'llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp b/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp index 62db61be252..8f483dfefc4 100644 --- a/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp +++ b/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp @@ -32,14 +32,6 @@ using namespace llvm; #define DEBUG_TYPE "pgo-icall-prom-analysis" -// The minimum call count for the direct-call target to be considered as the -// promotion candidate. -static cl::opt<unsigned> - ICPCountThreshold("icp-count-threshold", cl::Hidden, cl::ZeroOrMore, - cl::init(1000), - cl::desc("The minimum count to the direct call target " - "for the promotion")); - // The percent threshold for the direct-call target (this call site vs the // remaining call count) for it to be considered as the promotion target. static cl::opt<unsigned> ICPRemainingPercentThreshold( @@ -69,8 +61,7 @@ ICallPromotionAnalysis::ICallPromotionAnalysis() { bool ICallPromotionAnalysis::isPromotionProfitable(uint64_t Count, uint64_t TotalCount, uint64_t RemainingCount) { - return Count >= ICPCountThreshold && - Count * 100 >= ICPRemainingPercentThreshold * RemainingCount && + return Count * 100 >= ICPRemainingPercentThreshold * RemainingCount && Count * 100 >= ICPTotalPercentThreshold * TotalCount; } |