diff options
| author | Easwaran Raman <eraman@google.com> | 2016-05-10 22:03:23 +0000 | 
|---|---|---|
| committer | Easwaran Raman <eraman@google.com> | 2016-05-10 22:03:23 +0000 | 
| commit | 7eccf4ee0e8eec5cd64bebdec80ca4b92ecc2ecb (patch) | |
| tree | 7072de2ecffd763ab4393e6b8d6f67623ade5958 /llvm/unittests | |
| parent | b7883912607c01bdd9458172323bc664d73d0584 (diff) | |
| download | bcm5719-llvm-7eccf4ee0e8eec5cd64bebdec80ca4b92ecc2ecb.tar.gz bcm5719-llvm-7eccf4ee0e8eec5cd64bebdec80ca4b92ecc2ecb.zip  | |
Reapply r266477 and r266488
llvm-svn: 269131
Diffstat (limited to 'llvm/unittests')
| -rw-r--r-- | llvm/unittests/ProfileData/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | llvm/unittests/ProfileData/ProfileSummaryTest.cpp | 66 | 
2 files changed, 67 insertions, 0 deletions
diff --git a/llvm/unittests/ProfileData/CMakeLists.txt b/llvm/unittests/ProfileData/CMakeLists.txt index dd39ca7da3a..820c0185508 100644 --- a/llvm/unittests/ProfileData/CMakeLists.txt +++ b/llvm/unittests/ProfileData/CMakeLists.txt @@ -8,5 +8,6 @@ set(LLVM_LINK_COMPONENTS  add_llvm_unittest(ProfileDataTests    CoverageMappingTest.cpp    InstrProfTest.cpp +  ProfileSummaryTest.cpp    SampleProfTest.cpp    ) diff --git a/llvm/unittests/ProfileData/ProfileSummaryTest.cpp b/llvm/unittests/ProfileData/ProfileSummaryTest.cpp new file mode 100644 index 00000000000..46d7162f743 --- /dev/null +++ b/llvm/unittests/ProfileData/ProfileSummaryTest.cpp @@ -0,0 +1,66 @@ +//===- unittest/ProfileData/ProfileSummaryTest.cpp --------------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/IR/Module.h" +#include "llvm/ProfileData/InstrProf.h" +#include "llvm/ProfileData/ProfileCommon.h" +#include "llvm/ProfileData/SampleProf.h" +#include "gtest/gtest.h" + +using namespace llvm; +using namespace sampleprof; + +struct ProfileSummaryTest : ::testing::Test { +  InstrProfSummary IPS; +  SampleProfileSummary SPS; + +  ProfileSummaryTest() +      : IPS({100000, 900000, 999999}), SPS({100000, 900000, 999999}) {} +  void SetUp() { +    InstrProfRecord Record1("func1", 0x1234, {97531, 5, 99999}); +    InstrProfRecord Record2("func2", 0x1234, {57341, 10000, 10, 1}); +    IPS.addRecord(Record1); +    IPS.addRecord(Record2); + +    IPS.computeDetailedSummary(); + +    FunctionSamples FooSamples; +    FooSamples.addTotalSamples(7711); +    FooSamples.addHeadSamples(610); +    FooSamples.addBodySamples(1, 0, 610); +    FooSamples.addBodySamples(2, 0, 600); +    FooSamples.addBodySamples(4, 0, 60000); +    FooSamples.addBodySamples(8, 0, 60351); +    FooSamples.addBodySamples(10, 0, 605); + +    FunctionSamples BarSamples; +    BarSamples.addTotalSamples(20301); +    BarSamples.addHeadSamples(1437); +    BarSamples.addBodySamples(1, 0, 1437); + +    SPS.addRecord(FooSamples); +    SPS.addRecord(BarSamples); + +    SPS.computeDetailedSummary(); +  } + +}; + +TEST_F(ProfileSummaryTest, summary_from_module) { +  LLVMContext Context; +  Module M1("M1", Context); +  EXPECT_FALSE(ProfileSummary::getProfileSummary(&M1)); +  M1.setProfileSummary(IPS.getMD(Context)); +  EXPECT_TRUE(IPS == *ProfileSummary::getProfileSummary(&M1)); + +  Module M2("M2", Context); +  EXPECT_FALSE(ProfileSummary::getProfileSummary(&M2)); +  M2.setProfileSummary(SPS.getMD(Context)); +  EXPECT_TRUE(SPS == *ProfileSummary::getProfileSummary(&M2)); +}  | 

