about summary refs log tree commit diff
path: root/llvm_mode/README.neverzero.md
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-09-05 13:26:08 +0200
committerGitHub <noreply@github.com>2020-09-05 13:26:08 +0200
commit81b1d85f6168cb0828b4afef5d7994dba3c6753e (patch)
tree8ddfccbd1594c3f3c50025eb8cbe23f84a10fa20 /llvm_mode/README.neverzero.md
parentfac108476c1cb5326cf4339b2a4c846828698816 (diff)
parent2f90f2faba92c0ef5e081ff74b54fb07eb1faaa9 (diff)
downloadafl++-81b1d85f6168cb0828b4afef5d7994dba3c6753e.tar.gz
Merge pull request #548 from AFLplusplus/pre-3
Pre 3.0 changes
Diffstat (limited to 'llvm_mode/README.neverzero.md')
-rw-r--r--llvm_mode/README.neverzero.md35
1 files changed, 0 insertions, 35 deletions
diff --git a/llvm_mode/README.neverzero.md b/llvm_mode/README.neverzero.md
deleted file mode 100644
index 903e5bd3..00000000
--- a/llvm_mode/README.neverzero.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# NeverZero counters for LLVM instrumentation
-
-## Usage
-
-In larger, complex or reiterative programs the 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, however for llvm_mode this is optional if
-the llvm version is below 9 - as there is a perfomance bug that is only fixed
-in version 9 and onwards.
-
-If you want to enable this for llvm versions below 9 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.