From: Eric Biggers Date: Fri, 17 May 2013 21:48:46 +0000 (-0500) Subject: compiler.h: Add likely(), unlikely() X-Git-Tag: v1.4.0~17 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=768d53aa2bde3b39dfa85fe0dd940d67ae97d5ef compiler.h: Add likely(), unlikely() --- diff --git a/include/wimlib/compiler.h b/include/wimlib/compiler.h index 19a9ebe7..78a7bef5 100644 --- a/include/wimlib/compiler.h +++ b/include/wimlib/compiler.h @@ -19,6 +19,8 @@ # define _malloc_attribute __attribute__((malloc)) # define _warn_unused_result_attribute __attribute__((warn_unused_result)) # define _aligned_attribute(size) __attribute__((aligned(size))) +# define likely(x) __builtin_expect(!!(x), 1) +# define unlikely(x) __builtin_expect(!!(x), 0) #else # define WIMLIBAPI # define _always_inline_attribute inline @@ -28,6 +30,8 @@ # define _malloc_attribute # define _warn_unused_result_attribute # define _aligned_attribute(size) +# define likely(x) (x) +# define unlikely(x) (x) #endif /* __GNUC__ */ #endif /* _WIMLIB_COMPILER_H */