[libFuzzer] speedup the merge step in the fork mode by merging only the files that have unique features.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/fuzzer@358320 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/FuzzerLoop.cpp b/FuzzerLoop.cpp
index b68d759..a323a7a 100644
--- a/FuzzerLoop.cpp
+++ b/FuzzerLoop.cpp
@@ -446,13 +446,12 @@
}
static void WriteFeatureSetToFile(const std::string &FeaturesDir,
- const uint8_t Sha1[],
+ const std::string &FileName,
const Vector<uint32_t> &FeatureSet) {
if (FeaturesDir.empty() || FeatureSet.empty()) return;
WriteToFile(reinterpret_cast<const uint8_t *>(FeatureSet.data()),
FeatureSet.size() * sizeof(FeatureSet[0]),
- DirPlusFile(FeaturesDir, Sha1ToString(Sha1)));
- Printf("Features: %s\n", Sha1ToString(Sha1).c_str());
+ DirPlusFile(FeaturesDir, FileName));
}
static void RenameFeatureSetFile(const std::string &FeaturesDir,
@@ -490,7 +489,7 @@
auto NewII = Corpus.AddToCorpus({Data, Data + Size}, NumNewFeatures,
MayDeleteFile, TPC.ObservedFocusFunction(),
UniqFeatureSetTmp, DFT, II);
- WriteFeatureSetToFile(Options.FeaturesDir, NewII->Sha1,
+ WriteFeatureSetToFile(Options.FeaturesDir, Sha1ToString(NewII->Sha1),
NewII->UniqFeatureSet);
return true;
}