aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKuan-Wei Chiu <visitorckw@gmail.com>2024-06-24 05:51:55 +0800
committerKuan-Wei Chiu <visitorckw@gmail.com>2024-06-24 06:52:07 +0800
commitac5815d994fe8ff151e0f13088891acc506662ed (patch)
tree2534f0f9524dbe69254441d693e41816bf850aab /include
parent540d741df0541e0e41e600672245ca1e867c5ef4 (diff)
downloadafl++-ac5815d994fe8ff151e0f13088891acc506662ed.tar.gz
Optimize bit counting using __builtin_popcount
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.
Diffstat (limited to 'include')
-rw-r--r--include/afl-fuzz.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index 6d03a74c..45600698 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -116,6 +116,10 @@
#include <TargetConditionals.h>
#endif
+#ifndef __has_builtin
+ #define __has_builtin(x) 0
+#endif
+
#undef LIST_FOREACH /* clashes with FreeBSD */
#include "list.h"
#ifndef SIMPLE_FILES