diff options
author | van Hauser <vh@thc.org> | 2020-09-05 13:26:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-05 13:26:08 +0200 |
commit | 81b1d85f6168cb0828b4afef5d7994dba3c6753e (patch) | |
tree | 8ddfccbd1594c3f3c50025eb8cbe23f84a10fa20 /llvm_mode/README.neverzero.md | |
parent | fac108476c1cb5326cf4339b2a4c846828698816 (diff) | |
parent | 2f90f2faba92c0ef5e081ff74b54fb07eb1faaa9 (diff) | |
download | afl++-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.md | 35 |
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. |