On Thu, 25 Feb 2016 15:48:17 +1100 Matt Oliver <protogo...@gmail.com> wrote:
> On 25 February 2016 at 13:20, Ganesh Ajjanagadde <gajja...@gmail.com> wrote: > > > 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) > > > > Ive used these builtins before and can confirm that they are useful > (although requires devs to use them obviously). I will also point out that > these are also supported by ICC/ICL as well. They also make code ugly as fuck, and are more cargo-cult than anything else. They might possibly be ok in some very critical parts of the code, but otherwise not at all. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel