From 857424d185670d3436078fdf01ee9b48bd50c147 Mon Sep 17 00:00:00 2001 From: Hiroshi Yamauchi Date: Tue, 24 Sep 2019 22:17:51 +0000 Subject: [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 --- llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp') 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. -- cgit v1.2.3