about summary refs log tree commit diff
path: root/instrumentation/README.neverzero.md
diff options
context:
space:
mode:
authorllzmb <46303940+llzmb@users.noreply.github.com>2021-11-29 19:55:55 +0100
committerllzmb <46303940+llzmb@users.noreply.github.com>2021-11-29 19:55:55 +0100
commit8968bee836ecde0fa2427b84b2f3ac85c276958f (patch)
tree3be630bc3a5d1ea65f3bb49863b37ff5b9d688c4 /instrumentation/README.neverzero.md
parent11b3961e687f188aee806afee93bc95807081ff9 (diff)
parent235bb3235e45a81eb2b524f3a76346d91a163e3d (diff)
downloadafl++-8968bee836ecde0fa2427b84b2f3ac85c276958f.tar.gz
Merge branch 'dev' into docs_cleanup_folder_2
Diffstat (limited to 'instrumentation/README.neverzero.md')
-rw-r--r--instrumentation/README.neverzero.md41
1 files changed, 0 insertions, 41 deletions
diff --git a/instrumentation/README.neverzero.md b/instrumentation/README.neverzero.md
deleted file mode 100644
index 9bcae324..00000000
--- a/instrumentation/README.neverzero.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# NeverZero counters for LLVM instrumentation
-
-## Usage
-
-In larger, complex or reiterative programs the byte sized counters that collect
-the edge coverage can easily fill up and wrap around.
-This is not that much of an issue - unless by chance it wraps just to a value
-of zero when the program execution ends.
-In this case afl-fuzz is not able to see that the edge has been accessed and
-will ignore it.
-
-NeverZero prevents this behaviour. If a counter wraps, it jumps over the value
-0 directly to a 1. This improves path discovery (by a very little amount)
-at a very little cost (one instruction per edge).
-
-(The alternative of saturated counters has been tested also and proved to be
-inferior in terms of path discovery.)
-
-This is implemented in afl-gcc and afl-gcc-fast, however for llvm_mode this is
-optional if multithread safe counters are selected or the llvm version is below
-9 - as there are severe performance costs in these cases.
-
-If you want to enable this for llvm versions below 9 or thread safe counters
-then set
-
-```
-export AFL_LLVM_NOT_ZERO=1
-```
-
-In case you are on llvm 9 or greater and you do not want this behaviour then
-you can set:
-```
-AFL_LLVM_SKIP_NEVERZERO=1
-```
-If the target does not have extensive loops or functions that are called
-a lot then this can give a small performance boost.
-
-Please note that the default counter implementations are not thread safe!
-
-Support for thread safe counters in mode LLVM CLASSIC can be activated with setting
-`AFL_LLVM_THREADSAFE_INST=1`.
\ No newline at end of file