[libFuzzer] remove two unused experimental flags

llvm-svn: 353573
GitOrigin-RevId: b1e8b8149b9132b3c5e852313f5ba8efbca513cc
diff --git a/FuzzerDriver.cpp b/FuzzerDriver.cpp
index 418bebb..a0c9f18 100644
--- a/FuzzerDriver.cpp
+++ b/FuzzerDriver.cpp
@@ -478,8 +478,7 @@
   auto CFPath = TempPath(".fork");
   Printf("INFO: -fork=1: doing fuzzing in a separate process in order to "
          "be more resistant to crashes, timeouts, and OOMs\n");
-  auto Files =
-      CrashResistantMerge(Args, Corpora, CFPath, nullptr, nullptr);
+  auto Files = CrashResistantMerge(Args, Corpora, CFPath);
   Printf("INFO: -fork=1: seed corpus analyzed, %zd seeds chosen, starting to "
          "fuzz in separate processes\n", Files.size());
 
@@ -738,9 +737,7 @@
     }
     std::string CFPath =
         Flags.merge_control_file ? Flags.merge_control_file : TempPath(".txt");
-    auto Files =
-        CrashResistantMerge(Args, *Inputs, CFPath, Flags.load_coverage_summary,
-                            Flags.save_coverage_summary);
+    auto Files = CrashResistantMerge(Args, *Inputs, CFPath);
     for (auto &Path : Files)
       F->WriteToOutputCorpus(FileToVector(Path, Options.MaxLen));
     // We are done, delete the control file if it was a temporary one.
diff --git a/FuzzerFlags.def b/FuzzerFlags.def
index d59ee01..3296551 100644
--- a/FuzzerFlags.def
+++ b/FuzzerFlags.def
@@ -52,13 +52,6 @@
                    "If a merge process gets killed it tries to leave this file "
                    "in a state suitable for resuming the merge. "
                    "By default a temporary file will be used.")
-FUZZER_FLAG_STRING(save_coverage_summary, "Experimental:"
-                   " save coverage summary to a given file."
-                   " Used with -merge=1")
-FUZZER_FLAG_STRING(load_coverage_summary, "Experimental:"
-                   " load coverage summary from a given file."
-                   " Treat this coverage as belonging to the first corpus. "
-                   " Used with -merge=1")
 FUZZER_FLAG_INT(minimize_crash, 0, "If 1, minimizes the provided"
   " crash input. Use with -runs=N or -max_total_time=N to limit "
   "the number attempts."
diff --git a/FuzzerMerge.cpp b/FuzzerMerge.cpp
index b4f05e3..0d4971a 100644
--- a/FuzzerMerge.cpp
+++ b/FuzzerMerge.cpp
@@ -168,16 +168,6 @@
   return AllFeatures.size() - InitialNumFeatures;
 }
 
-void Merger::PrintSummary(std::ostream &OS) {
-  for (auto &File : Files) {
-    OS << std::hex;
-    OS << File.Name << " size: " << File.Size << " features: ";
-    for (auto Feature : File.Features)
-      OS << " " << Feature;
-    OS << "\n";
-  }
-}
-
 Set<uint32_t> Merger::AllFeatures() const {
   Set<uint32_t> S;
   for (auto &File : Files)
@@ -185,25 +175,6 @@
   return S;
 }
 
-Set<uint32_t> Merger::ParseSummary(std::istream &IS) {
-  std::string Line, Tmp;
-  Set<uint32_t> Res;
-  while (std::getline(IS, Line, '\n')) {
-    size_t N;
-    std::istringstream ISS1(Line);
-    ISS1 >> Tmp;  // Name
-    ISS1 >> Tmp;  // size:
-    assert(Tmp == "size:" && "Corrupt summary file");
-    ISS1 >> std::hex;
-    ISS1 >> N;    // File Size
-    ISS1 >> Tmp;  // features:
-    assert(Tmp == "features:" && "Corrupt summary file");
-    while (ISS1 >> std::hex >> N)
-      Res.insert(N);
-  }
-  return Res;
-}
-
 // Inner process. May crash if the target crashes.
 void Fuzzer::CrashResistantMergeInternalStep(const std::string &CFPath) {
   Printf("MERGE-INNER: using the control file '%s'\n", CFPath.c_str());
@@ -278,9 +249,7 @@
 Vector<std::string>
 CrashResistantMerge(const Vector<std::string> &Args,
                     const Vector<std::string> &Corpora,
-                    const std::string &CFPath,
-                    const char *CoverageSummaryInputPathOrNull,
-                    const char *CoverageSummaryOutputPathOrNull) {
+                    const std::string &CFPath) {
   size_t NumAttempts = 0;
   if (FileSize(CFPath)) {
     Printf("MERGE-OUTER: non-empty control file provided: '%s'\n",
@@ -354,19 +323,7 @@
   IF.close();
   Printf("MERGE-OUTER: consumed %zdMb (%zdMb rss) to parse the control file\n",
          M.ApproximateMemoryConsumption() >> 20, GetPeakRSSMb());
-  if (CoverageSummaryOutputPathOrNull) {
-    Printf("MERGE-OUTER: writing coverage summary for %zd files to %s\n",
-           M.Files.size(), CoverageSummaryOutputPathOrNull);
-    std::ofstream SummaryOut(CoverageSummaryOutputPathOrNull);
-    M.PrintSummary(SummaryOut);
-  }
   Set<uint32_t> InitialFeatures;
-  if (CoverageSummaryInputPathOrNull) {
-    std::ifstream SummaryIn(CoverageSummaryInputPathOrNull);
-    InitialFeatures = M.ParseSummary(SummaryIn);
-    Printf("MERGE-OUTER: coverage summary loaded from %s, %zd features found\n",
-           CoverageSummaryInputPathOrNull, InitialFeatures.size());
-  }
   Vector<std::string> NewFiles;
   size_t NumNewFeatures = M.Merge(InitialFeatures, &NewFiles);
   Printf("MERGE-OUTER: %zd new files with %zd new features added\n",
diff --git a/FuzzerMerge.h b/FuzzerMerge.h
index 917108e..273f486 100644
--- a/FuzzerMerge.h
+++ b/FuzzerMerge.h
@@ -63,8 +63,6 @@
   bool Parse(std::istream &IS, bool ParseCoverage);
   bool Parse(const std::string &Str, bool ParseCoverage);
   void ParseOrExit(std::istream &IS, bool ParseCoverage);
-  void PrintSummary(std::ostream &OS);
-  Set<uint32_t> ParseSummary(std::istream &IS);
   size_t Merge(const Set<uint32_t> &InitialFeatures,
                Vector<std::string> *NewFiles);
   size_t ApproximateMemoryConsumption() const;
@@ -74,9 +72,7 @@
 Vector<std::string>
 CrashResistantMerge(const Vector<std::string> &Args,
                     const Vector<std::string> &Corpora,
-                    const std::string &CFPath,
-                    const char *CoverageSummaryInputPathOrNull,
-                    const char *CoverageSummaryOutputPathOrNull);
+                    const std::string &CFPath);
 
 }  // namespace fuzzer
 
diff --git a/tests/FuzzerUnittest.cpp b/tests/FuzzerUnittest.cpp
index 861eaed..eec7d94 100644
--- a/tests/FuzzerUnittest.cpp
+++ b/tests/FuzzerUnittest.cpp
@@ -645,10 +645,7 @@
   Merger M;
   Vector<std::string> NewFiles;
   EXPECT_TRUE(M.Parse(Input, true));
-  std::stringstream SS;
-  M.PrintSummary(SS);
   EXPECT_EQ(NumNewFeatures, M.Merge({}, &NewFiles));
-  EXPECT_EQ(M.AllFeatures(), M.ParseSummary(SS));
   EQ(NewFiles, Result);
 }