Index: third_party/afl/src/llvm_mode/README.llvm |
diff --git a/third_party/afl/src/llvm_mode/README.llvm b/third_party/afl/src/llvm_mode/README.llvm |
index f7d48c9129880eab4b3f27e48131a8e917290ede..d96d8c31d6400a9c2dc8625e147fef859f78a50d 100644 |
--- a/third_party/afl/src/llvm_mode/README.llvm |
+++ b/third_party/afl/src/llvm_mode/README.llvm |
@@ -166,14 +166,14 @@ PS. Because there are task switches still involved, the mode isn't as fast as |
faster than the normal fork() model, and compared to in-process fuzzing, |
should be a lot more robust. |
-6) Bonus feature #3: new 'trace-pc' mode |
----------------------------------------- |
+6) Bonus feature #3: new 'trace-pc-guard' mode |
+---------------------------------------------- |
Recent versions of LLVM are shipping with a built-in execution tracing feature |
-that is fairly usable for AFL, without the need to post-process the assembly |
-or install any compiler plugins. See: |
+that provides AFL with the necessary tracing data without the need to |
+post-process the assembly or install any compiler plugins. See: |
- http://clang.llvm.org/docs/SanitizerCoverage.html#tracing-pcs |
+ http://clang.llvm.org/docs/SanitizerCoverage.html#tracing-pcs-with-guards |
As of this writing, the feature is only available on SVN trunk, and is yet to |
make it to an official release of LLVM. Nevertheless, if you have a |
@@ -182,10 +182,7 @@ this way: |
AFL_TRACE_PC=1 make clean all |
-Since a form of 'trace-pc' is also supported in GCC, this mode may become a |
-longer-term solution to all our needs. |
+Note that this mode is currently about 20-30% slower than "vanilla" |
+afl-clang-fast, and about 5-10% slower than afl-clang. I am not entirely sure |
+why. |
-Note that this mode supports AFL_INST_RATIO at run time, not at compilation |
-time. This is somewhat similar to the behavior of the QEMU mode. Because of |
-the need to support it at run time, the mode is also a tad slower than the |
-plugin-based approach. |