orc: Add ORC_LIKELY/ORC_UNLIKELY macros
authorDoug Nazar <nazard@nazar.ca>
Sun, 18 Aug 2019 15:50:44 +0000 (11:50 -0400)
committerDoug Nazar <nazard@nazar.ca>
Sun, 18 Aug 2019 15:50:44 +0000 (11:50 -0400)
orc/orcutils.h

index dc13cd0..59c2c9e 100644 (file)
@@ -167,6 +167,14 @@ typedef unsigned int orc_bool;
 #define ORC_GNUC_PREREQ(maj, min) 0
 #endif
   
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+#define ORC_LIKELY(expr) (__builtin_expect ((expr), 1))
+#define ORC_UNLIKELY(expr) (__builtin_expect ((expr), 0))
+#else
+#define ORC_LIKELY(expr) (expr)
+#define ORC_UNLIKELY(expr) (expr)
+#endif
+
 #ifndef ORC_INTERNAL
 #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
 #define ORC_INTERNAL __attribute__((visibility("hidden")))