From: Ganesh Ajjanagadde <gajjanaga...@gmail.com> These use __builtin_expect, and may be useful for optimizing nearly certain branches, to yield size and/or speed improvements.
Note that this is used in the Linux kernel for the same purpose. For some idea as to potential benefits, see e.g http://blog.man7.org/2012/10/how-much-do-builtinexpect-likely-and.html. Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> --- libavutil/attributes.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavutil/attributes.h b/libavutil/attributes.h index 5c6b9de..1547033 100644 --- a/libavutil/attributes.h +++ b/libavutil/attributes.h @@ -58,6 +58,14 @@ # define av_warn_unused_result #endif +#if AV_GCC_VERSION_AT_LEAST(3,0) +# define av_likely(x) __builtin_expect(!!(x), 1) +# define av_unlikely(x) __builtin_expect(!!(x), 0) +#else +# define av_likely(x) (x) +# define av_unlikely(x) (x) +#endif + #if AV_GCC_VERSION_AT_LEAST(3,1) # define av_noinline __attribute__((noinline)) #elif defined(_MSC_VER) -- 2.7.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel