From 7d7771f34d14e0108adf02a6fd0b33943afae3da Mon Sep 17 00:00:00 2001
From: Yi Kong <yikong@google.com>
Date: Mon, 11 Apr 2022 21:56:12 +0800
Subject: [PATCH] [BOLT] Compact legacy profiles

Merging multiple legacy profiles (produced by instrumentation BOLT) can
easily reach GiBs. Let merge-fdata compact the profiles during merge to
significantly reduce space usage.

Differential Revision: https://reviews.llvm.org/D123513
---
 bolt/tools/merge-fdata/merge-fdata.cpp | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/bolt/tools/merge-fdata/merge-fdata.cpp b/bolt/tools/merge-fdata/merge-fdata.cpp
index cd8f343ac08c..5738219247ba 100644
--- a/bolt/tools/merge-fdata/merge-fdata.cpp
+++ b/bolt/tools/merge-fdata/merge-fdata.cpp
@@ -239,6 +239,7 @@ void mergeLegacyProfiles(const cl::list<std::string> &Filenames) {
   errs() << "Using legacy profile format.\n";
   bool BoltedCollection = false;
   bool First = true;
+  StringMap<uint64_t> Entries;
   for (const std::string &Filename : Filenames) {
     if (isYAML(Filename))
       report_error(Filename, "cannot mix YAML and legacy formats");
@@ -265,9 +266,25 @@ void mergeLegacyProfiles(const cl::list<std::string> &Filenames) {
             "cannot mix profile collected in BOLT and non-BOLT deployments");
     }
 
-    outs() << Buf;
+    SmallVector<StringRef, 10> Lines;
+    SplitString(Buf, Lines, "\n");
+    for (StringRef Line : Lines) {
+      size_t Pos = Line.rfind(" ");
+      if (Pos == StringRef::npos)
+        report_error(Filename, "Malformed / corrupted profile");
+      StringRef Signature = Line.substr(0, Pos);
+      uint64_t Count;
+      if (Line.substr(Pos + 1, Line.size() - Pos).getAsInteger(10, Count))
+        report_error(Filename, "Malformed / corrupted profile counter");
+      Count += Entries.lookup(Signature);
+      Entries.insert_or_assign(Signature, Count);
+    }
     First = false;
   }
+
+  for (const auto &Entry : Entries)
+    outs() << Entry.getKey() << " " << Entry.getValue() << "\n";
+
   errs() << "Profile from " << Filenames.size() << " files merged.\n";
 }
 
-- 
2.35.1.1178.g4f1659d476-goog

