Add a profile summary class specific to instrumentation profiles.
Modify ProfileSummary class to make it not instrumented profile specific.
Add a new InstrumentedProfileSummary class that inherits from ProfileSummary.
Differential Revision: http://reviews.llvm.org/D17310
llvm-svn: 261119
diff --git a/llvm/lib/ProfileData/InstrProfReader.cpp b/llvm/lib/ProfileData/InstrProfReader.cpp
index 7968cf1..9c17d4e 100644
--- a/llvm/lib/ProfileData/InstrProfReader.cpp
+++ b/llvm/lib/ProfileData/InstrProfReader.cpp
@@ -589,15 +589,15 @@
for (unsigned I = 0; I < SummarySize / sizeof(uint64_t); I++)
Dst[I] = endian::byte_swap<uint64_t, little>(Src[I]);
- // initialize ProfileSummary using the SummaryData from disk.
- this->Summary = llvm::make_unique<ProfileSummary>(*(SummaryData.get()));
+ // initialize InstrProfSummary using the SummaryData from disk.
+ this->Summary = llvm::make_unique<InstrProfSummary>(*(SummaryData.get()));
return Cur + SummarySize;
} else {
// For older version of profile data, we need to compute on the fly:
using namespace IndexedInstrProf;
std::vector<uint32_t> Cutoffs(&SummaryCutoffs[0],
&SummaryCutoffs[NumSummaryCutoffs]);
- this->Summary = llvm::make_unique<ProfileSummary>(Cutoffs);
+ this->Summary = llvm::make_unique<InstrProfSummary>(Cutoffs);
this->Summary->computeDetailedSummary();
return Cur;
}