From 1148a2d0d1ce43ab89e14eefb70bc410726838c4 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Tue, 10 Mar 2020 07:14:42 +0100 Subject: document new environment variables and code format --- llvm_mode/README.instrim.md | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm_mode/README.instrim.md') diff --git a/llvm_mode/README.instrim.md b/llvm_mode/README.instrim.md index b40dbb18..5c3f32c8 100644 --- a/llvm_mode/README.instrim.md +++ b/llvm_mode/README.instrim.md @@ -19,6 +19,15 @@ see how often the loop has been rerun. This again is a tradeoff for speed for less path information. To enable this mode set `AFL_LLVM_INSTRIM_LOOPHEAD=1`. +There is an additional optimization option that skips single block +functions. In 95% of the C targets and (guess) 50% of the C++ targets +it is good to enable this, as otherwise pointless instrumentation occurs. +The corner case where we want this instrumentation is when vtable/call table +is used and the index to that vtable/call table is not set in specific +basic blocks. +To enable skipping these (most of the time) unnecessary instrumentations set +`AFL_LLVM_INSTRIM_SKIPSINGLEBLOCK=1` + ## Background The paper: [InsTrim: Lightweight Instrumentation for Coverage-guided Fuzzing] -- cgit 1.4.1