]> granicus.if.org Git - pgbouncer/commitdiff
use unlikely() in debug macros
authorMarko Kreen <markokr@gmail.com>
Wed, 31 Oct 2007 14:04:47 +0000 (14:04 +0000)
committerMarko Kreen <markokr@gmail.com>
Wed, 31 Oct 2007 14:04:47 +0000 (14:04 +0000)
src/system.h
src/util.h

index 4e082c3128afed9573adcdad52b0b2efcd8b27a4..5ca08dc5c6aa6da219d08211080edf51f310d4fe 100644 (file)
 #include <crypt.h>
 #endif
 
+#ifdef __GNUC__
+#define unlikely(x) __builtin_expect(!!(x), 0)
+#define likely(x) __builtin_expect(!!(x), 1)
+#else
+#define unlikely(x) x
+#define likely(x) x
+#endif
+
 #ifdef CASSERT
-#define Assert(e) do { if (!(e)) { \
+#define Assert(e) do { if (unlikely(!(e))) { \
        fatal_noexit("Assert(%s) failed", #e); abort(); } } while (0)
 #else
 #define Assert(e)
index dfb0186bd3256c0a06d3b087cf78bc8874154f15..b7af4ca998fa359191f8bbe2b332738818585e96 100644 (file)
@@ -38,10 +38,12 @@ void log_level(const char *level, const char *s, ...);
 #define log_warning(args...) log_level("WARNING", ## args)
 #define log_info(args...) log_level("LOG", ## args)
 #define log_debug(args...) do { \
-               if (cf_verbose > 0) log_level("DEBUG", ## args); \
+               if (unlikely(cf_verbose > 0)) \
+                       log_level("DEBUG", ## args); \
        } while (0)
 #define log_noise(args...) do { \
-               if (cf_verbose > 1) log_level("NOISE", ## args); \
+               if (unlikely(cf_verbose > 1)) \
+                       log_level("NOISE", ## args); \
        } while (0)
 
 void close_logfile(void);
@@ -54,10 +56,12 @@ void slog_level(const char *level, const PgSocket *sock, const char *fmt, ...);
 #define slog_warning(sk, args...) slog_level("WARNING", sk, ## args)
 #define slog_info(sk, args...) slog_level("LOG", sk, ## args)
 #define slog_debug(sk, args...) do { \
-               if (cf_verbose > 0) slog_level("DEBUG", sk, ## args); \
+               if (unlikely(cf_verbose > 0)) \
+                       slog_level("DEBUG", sk, ## args); \
        } while (0)
 #define slog_noise(sk, args...) do { \
-               if (cf_verbose > 1) slog_level("NOISE", sk, ## args); \
+               if (unlikely(cf_verbose > 1)) \
+                       slog_level("NOISE", sk, ## args); \
        } while (0)
 
 /*