By using bitmaps, the memory requirement for
`q->skipdet_e->skip_eff_map` and `done_inf_map`, which previously scaled
with the corpus size, is reduced to one-eighth of its original size.
Use the __builtin_popcount intrinsic to optimize the bit counting
function if the compiler supports it. This change replaces the manual
bit counting algorithm with the more efficient built-in function, which
leverages hardware support on compatible processors.
This modification ensures that the code remains backward-compatible by
falling back to the original implementation when __builtin_popcount is
not available.
This is very helpful for code that inpects a file name extension when determining what code to run.
It's also useful for applications that constrain the user to choose files by extension.
Hi there!
I tried to compile with SIMPLE_FILES, but got an error message.
Please have a look through it.
Sincerely.
```
src/afl-fuzz-bitmap.c: In function ‘save_if_interesting’:
src/afl-fuzz-bitmap.c:706:39: error: ‘afl_state_t’ {aka ‘struct afl_state’} has no member named ‘last_kill_signal’
706 | afl->saved_crashes, afl->last_kill_signal);
| ^~
make: *** [GNUmakefile:437: afl-fuzz] Error 1
```