[PATCH] D48054: [libFuzzer] Mutation tracking and logging implemented

Kodé Williams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 20 10:01:29 PDT 2018


kodewilliams marked 8 inline comments as done and an inline comment as not done.
kodewilliams added inline comments.


================
Comment at: lib/fuzzer/FuzzerMutate.cpp:44
+          {&MutationDispatcher::Mutate_CopyPart, CopyPart},
+          {&MutationDispatcher::Mutate_CrossOver, CrossOverData},
           {&MutationDispatcher::Mutate_AddWordFromManualDictionary,
----------------
metzman wrote:
> Same as above, please change to `CrossOver`
I had to change it because there is a function that exists called CrossOver and it was the cause of those template errors. Same goes for ChangeBinInt instead of using ChangeBinaryInteger.


================
Comment at: lib/fuzzer/FuzzerMutate.cpp:490
+  for (auto M : CurrentMutatorSequence) {
+    auto currentMutation = kMutationNames.find(M.Identifier);
+    Printf("%s-", currentMutation->second.c_str());
----------------
metzman wrote:
> Even though the lookuptime is constant, I don't like that we are slowing down fuzzing even when this option is not used.
> We wouldn't need to do this if the map was string -> enum Value.
The Mutator struct doesnt have a name anymore, it just has the function pointer and an identifier of type MutationType, and as a result, there has to be some lookup in the unordered_map for the name regardless


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D48054





More information about the llvm-commits mailing list