]> git.sesse.net Git - vlc/blobdiff - include/vlc_common.h
likely, unlikely: convenience portability macros for branch prediction
[vlc] / include / vlc_common.h
index e4b1cc5d4eb68f17b56a1d6677e6992d420362a9..82dad3670f8926ff09dc817c24ee164467678c02 100644 (file)
 #   define LIBVLC_MALLOC
 #endif
 
+/* Branch prediction */
+#ifdef __GNUC__
+#   define likely(p)   __builtin_expect(!!(p), 1)
+#   define unlikely(p) __builtin_expect(!!(p), 0)
+#else
+#   define likely(p)   (!!(p))
+#   define unlikely(p) (!!(p))
+#endif
+
 /*****************************************************************************
  * Basic types definitions
  *****************************************************************************/