likely, unlikely: convenience portability macros for branch prediction
Those are the same as the Linux kernel macros, and probably a bunch of other projects. Usage: if (likely(condition)) branch_likely_taken(); if (unlikely(condition)) branch_unlikely_taken(); Attention: those two macros convert the predicate to a boolean value. Therefore you generally cannot use them for assignments like this: void *p_sys = likely (malloc (sizeof (*p_sys))); if (!p_sys) return VLC_ENOMEM; Instead you can do this: void *p_sys = malloc (sizeof (*p_sys)); if (unlikely (!p_sys)) return VLC_ENOMEM;
Showing
Please register or sign in to comment