[llvm] r280096 - [libFuzzer] stop using bits for memcmp's value profile -- seems to blow up the corpus too much

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 30 07:39:33 PDT 2016


Author: kcc
Date: Tue Aug 30 09:39:33 2016
New Revision: 280096

URL: http://llvm.org/viewvc/llvm-project?rev=280096&view=rev
Log:
[libFuzzer] stop using bits for memcmp's value profile -- seems to blow up the corpus too much

Modified:
    llvm/trunk/lib/Fuzzer/FuzzerTraceState.cpp
    llvm/trunk/lib/Fuzzer/test/value-profile-mem.test

Modified: llvm/trunk/lib/Fuzzer/FuzzerTraceState.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerTraceState.cpp?rev=280096&r1=280095&r2=280096&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/FuzzerTraceState.cpp (original)
+++ llvm/trunk/lib/Fuzzer/FuzzerTraceState.cpp Tue Aug 30 09:39:33 2016
@@ -559,9 +559,9 @@ static void AddValueForMemcmp(void *call
     if (A1[I] != A2[I])
       break;
   size_t PC = reinterpret_cast<size_t>(caller_pc);
-  size_t Idx = I * 8;
-  if (I < Len)
-    Idx += __builtin_popcountl((A1[I] ^ A2[I])) - 1;
+  size_t Idx = I;
+  // if (I < Len)
+  //  Idx += __builtin_popcountl((A1[I] ^ A2[I])) - 1;
   VP.AddValue((PC & 4095) | (Idx << 12));
 }
 
@@ -576,9 +576,9 @@ static void AddValueForStrcmp(void *call
     if (A1[I] != A2[I] || A1[I] == 0)
       break;
   size_t PC = reinterpret_cast<size_t>(caller_pc);
-  size_t Idx = I * 8;
-  if (I < Len && A1[I])
-    Idx += __builtin_popcountl((A1[I] ^ A2[I])) - 1;
+  size_t Idx = I;
+  // if (I < Len && A1[I])
+  //  Idx += __builtin_popcountl((A1[I] ^ A2[I])) - 1;
   VP.AddValue((PC & 4095) | (Idx << 12));
 }
 

Modified: llvm/trunk/lib/Fuzzer/test/value-profile-mem.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/value-profile-mem.test?rev=280096&r1=280095&r2=280096&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/test/value-profile-mem.test (original)
+++ llvm/trunk/lib/Fuzzer/test/value-profile-mem.test Tue Aug 30 09:39:33 2016
@@ -1,4 +1,4 @@
 CHECK: BINGO
-RUN: not LLVMFuzzer-SingleMemcmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=1000000 2>&1 | FileCheck %s
-RUN: not LLVMFuzzer-SingleStrcmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=1000000 2>&1 | FileCheck %s
-RUN: not LLVMFuzzer-SingleStrncmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=1000000 2>&1 | FileCheck %s
+RUN: not LLVMFuzzer-SingleMemcmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s
+RUN: not LLVMFuzzer-SingleStrcmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s
+RUN: not LLVMFuzzer-SingleStrncmpTest -seed=1 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s




More information about the llvm-commits mailing list