diff options
| author | Hiroshi Yamauchi <yamauchi@google.com> | 2019-09-24 22:17:51 +0000 |
|---|---|---|
| committer | Hiroshi Yamauchi <yamauchi@google.com> | 2019-09-24 22:17:51 +0000 |
| commit | 857424d185670d3436078fdf01ee9b48bd50c147 (patch) | |
| tree | b93fd58b33f1a92924bbd183009fbb2535079bdc /llvm/unittests | |
| parent | ee9a468d9ce6feace0374fdc0fd7064e6f33d4b3 (diff) | |
| download | bcm5719-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.cpp | 42 |
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. |

