[ProfileData] Thread unique_ptr through the summary builder to avoid leaks.

llvm-svn: 270195
diff --git a/llvm/include/llvm/ProfileData/ProfileCommon.h b/llvm/include/llvm/ProfileData/ProfileCommon.h
index f5b9405..e43d307 100644
--- a/llvm/include/llvm/ProfileData/ProfileCommon.h
+++ b/llvm/include/llvm/ProfileData/ProfileCommon.h
@@ -74,7 +74,7 @@
   InstrProfSummaryBuilder(std::vector<uint32_t> Cutoffs)
       : ProfileSummaryBuilder(Cutoffs), MaxInternalBlockCount(0) {}
   void addRecord(const InstrProfRecord &);
-  ProfileSummary *getSummary();
+  std::unique_ptr<ProfileSummary> getSummary();
 };
 
 class SampleProfileSummaryBuilder final : public ProfileSummaryBuilder {
@@ -83,7 +83,7 @@
   void addRecord(const sampleprof::FunctionSamples &FS);
   SampleProfileSummaryBuilder(std::vector<uint32_t> Cutoffs)
       : ProfileSummaryBuilder(Cutoffs) {}
-  ProfileSummary *getSummary();
+  std::unique_ptr<ProfileSummary> getSummary();
 };
 
 // This is called when a count is seen in the profile.
diff --git a/llvm/lib/ProfileData/InstrProfReader.cpp b/llvm/lib/ProfileData/InstrProfReader.cpp
index 8ffdc5b..a7d8fcf 100644
--- a/llvm/lib/ProfileData/InstrProfReader.cpp
+++ b/llvm/lib/ProfileData/InstrProfReader.cpp
@@ -617,7 +617,7 @@
     InstrProfSummaryBuilder Builder(ProfileSummaryBuilder::DefaultCutoffs);
     // FIXME: This only computes an empty summary. Need to call addRecord for
     // all InstrProfRecords to get the correct summary.
-    this->Summary.reset(Builder.getSummary());
+    this->Summary = Builder.getSummary();
     return Cur;
   }
 }
diff --git a/llvm/lib/ProfileData/InstrProfWriter.cpp b/llvm/lib/ProfileData/InstrProfWriter.cpp
index e9543ce..e25299e 100644
--- a/llvm/lib/ProfileData/InstrProfWriter.cpp
+++ b/llvm/lib/ProfileData/InstrProfWriter.cpp
@@ -259,7 +259,7 @@
       IndexedInstrProf::allocSummary(SummarySize);
   // Compute the Summary and copy the data to the data
   // structure to be serialized out (to disk or buffer).
-  ProfileSummary *PS = ISB.getSummary();
+  std::unique_ptr<ProfileSummary> PS = ISB.getSummary();
   setSummary(TheSummary.get(), *PS);
   InfoObj->SummaryBuilder = 0;
 
diff --git a/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp b/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp
index ee40d68..1e71bb9 100644
--- a/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp
+++ b/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp
@@ -86,18 +86,18 @@
   }
 }
 
-ProfileSummary *SampleProfileSummaryBuilder::getSummary() {
+std::unique_ptr<ProfileSummary> SampleProfileSummaryBuilder::getSummary() {
   computeDetailedSummary();
-  return new ProfileSummary(ProfileSummary::PSK_Sample, DetailedSummary,
-                            TotalCount, MaxCount, 0, MaxFunctionCount,
-                            NumCounts, NumFunctions);
+  return llvm::make_unique<ProfileSummary>(
+      ProfileSummary::PSK_Sample, DetailedSummary, TotalCount, MaxCount, 0,
+      MaxFunctionCount, NumCounts, NumFunctions);
 }
 
-ProfileSummary *InstrProfSummaryBuilder::getSummary() {
+std::unique_ptr<ProfileSummary> InstrProfSummaryBuilder::getSummary() {
   computeDetailedSummary();
-  return new ProfileSummary(ProfileSummary::PSK_Instr, DetailedSummary,
-                            TotalCount, MaxCount, MaxInternalBlockCount,
-                            MaxFunctionCount, NumCounts, NumFunctions);
+  return llvm::make_unique<ProfileSummary>(
+      ProfileSummary::PSK_Instr, DetailedSummary, TotalCount, MaxCount,
+      MaxInternalBlockCount, MaxFunctionCount, NumCounts, NumFunctions);
 }
 
 void InstrProfSummaryBuilder::addEntryCount(uint64_t Count) {
diff --git a/llvm/lib/ProfileData/SampleProfReader.cpp b/llvm/lib/ProfileData/SampleProfReader.cpp
index bd5aacc..d3929e8 100644
--- a/llvm/lib/ProfileData/SampleProfReader.cpp
+++ b/llvm/lib/ProfileData/SampleProfReader.cpp
@@ -798,5 +798,5 @@
     const FunctionSamples &Profile = I.second;
     Builder.addRecord(Profile);
   }
-  Summary.reset(Builder.getSummary());
+  Summary = Builder.getSummary();
 }
diff --git a/llvm/lib/ProfileData/SampleProfWriter.cpp b/llvm/lib/ProfileData/SampleProfWriter.cpp
index 9c58f9e..4fa7128 100644
--- a/llvm/lib/ProfileData/SampleProfWriter.cpp
+++ b/llvm/lib/ProfileData/SampleProfWriter.cpp
@@ -260,5 +260,5 @@
     const FunctionSamples &Profile = I.second;
     Builder.addRecord(Profile);
   }
-  Summary.reset(Builder.getSummary());
+  Summary = Builder.getSummary();
 }