diff options
Diffstat (limited to 'llvm_mode/README.laf-intel.md')
-rw-r--r-- | llvm_mode/README.laf-intel.md | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/llvm_mode/README.laf-intel.md b/llvm_mode/README.laf-intel.md index d51c7e2f..c787744b 100644 --- a/llvm_mode/README.laf-intel.md +++ b/llvm_mode/README.laf-intel.md @@ -2,7 +2,7 @@ ## Usage -By default the passes will not run when you compile programs using +By default these passes will not run when you compile programs using afl-clang-fast. Hence, you can use AFL as usual. To enable the passes you must set environment variables before you compile the target project. @@ -15,11 +15,24 @@ Enables the split-switches pass. `export AFL_LLVM_LAF_TRANSFORM_COMPARES=1` -Enables the transform-compares pass (strcmp, memcmp, strncmp, strcasecmp, strncasecmp). +Enables the transform-compares pass (strcmp, memcmp, strncmp, +strcasecmp, strncasecmp). `export AFL_LLVM_LAF_SPLIT_COMPARES=1` Enables the split-compares pass. -By default it will split all compares with a bit width <= 64 bits. -You can change this behaviour by setting `export AFL_LLVM_LAF_SPLIT_COMPARES_BITW=<bit_width>`. - +By default it will +1. simplify operators >= (and <=) into chains of > (<) and == comparisons +2. change signed integer comparisons to a chain of sign-only comparison +and unsigned comparisons +3. split all unsigned integer comparisons with bit widths of +64, 32 or 16 bits to chains of 8 bits comparisons. + +You can change the behaviour of the last step by setting +`export AFL_LLVM_LAF_SPLIT_COMPARES_BITW=<bit_width>`, where +bit_width may be 64, 32 or 16. + +A new experimental feature is splitting floating point comparisons into a +series of sign, exponent and mantissa comparisons followed by splitting each +of them into 8 bit comparisons when necessary. +It is activated with the `AFL_LLVM_LAF_SPLIT_COMPARES` setting. |