summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp')
-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