summaryrefslogtreecommitdiffstats
path: root/llvm/unittests
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2019-09-24 22:17:51 +0000
committerHiroshi Yamauchi <yamauchi@google.com>2019-09-24 22:17:51 +0000
commit857424d185670d3436078fdf01ee9b48bd50c147 (patch)
treeb93fd58b33f1a92924bbd183009fbb2535079bdc /llvm/unittests
parentee9a468d9ce6feace0374fdc0fd7064e6f33d4b3 (diff)
downloadbcm5719-llvm-857424d185670d3436078fdf01ee9b48bd50c147.tar.gz
bcm5719-llvm-857424d185670d3436078fdf01ee9b48bd50c147.zip
[PGO][PGSO] ProfileSummary changes.
(Split of off D67120) ProfileSummary changes for profile guided size optimization. Differential Revision: https://reviews.llvm.org/D67377 llvm-svn: 372783
Diffstat (limited to 'llvm/unittests')
-rw-r--r--llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp b/llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp
index 002901d943b..8072e05c7ce 100644
--- a/llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp
+++ b/llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp
@@ -137,6 +137,18 @@ TEST_F(ProfileSummaryInfoTest, TestCommon) {
EXPECT_FALSE(PSI.isColdCount(100));
EXPECT_FALSE(PSI.isHotCount(100));
+ EXPECT_TRUE(PSI.isHotCountNthPercentile(990000, 400));
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(990000, 100));
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(990000, 2));
+
+ EXPECT_TRUE(PSI.isHotCountNthPercentile(999999, 400));
+ EXPECT_TRUE(PSI.isHotCountNthPercentile(999999, 100));
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(999999, 2));
+
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(10000, 400));
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(10000, 100));
+ EXPECT_FALSE(PSI.isHotCountNthPercentile(10000, 2));
+
EXPECT_TRUE(PSI.isFunctionEntryHot(F));
EXPECT_FALSE(PSI.isFunctionEntryHot(G));
EXPECT_FALSE(PSI.isFunctionEntryHot(H));
@@ -160,6 +172,21 @@ TEST_F(ProfileSummaryInfoTest, InstrProf) {
EXPECT_FALSE(PSI.isHotBlock(BB2, &BFI));
EXPECT_TRUE(PSI.isHotBlock(BB3, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, &BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(990000, BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, BB3, &BFI));
+
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, &BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB1, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB3, &BFI));
+
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, &BB0, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB2, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB3, &BFI));
+
CallSite CS1(BB1->getFirstNonPHI());
auto *CI2 = BB2->getFirstNonPHI();
CallSite CS2(CI2);
@@ -192,6 +219,21 @@ TEST_F(ProfileSummaryInfoTest, SampleProf) {
EXPECT_FALSE(PSI.isHotBlock(BB2, &BFI));
EXPECT_TRUE(PSI.isHotBlock(BB3, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, &BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(990000, BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(990000, BB3, &BFI));
+
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, &BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB1, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlockNthPercentile(999900, BB3, &BFI));
+
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, &BB0, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB2, &BFI));
+ EXPECT_FALSE(PSI.isHotBlockNthPercentile(10000, BB3, &BFI));
+
CallSite CS1(BB1->getFirstNonPHI());
auto *CI2 = BB2->getFirstNonPHI();
// Manually attach branch weights metadata to the call instruction.
OpenPOWER on IntegriCloud