lkml.org 
[lkml]   [2003]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH] 2.4.22pre10: {,un}likely_p() macros for pointers
From
Date
On Mon, 2003-08-11 at 01:42, Jamie Lokier wrote:
> Willy Tarreau wrote:
> > So in any case, the !!(x) construct should be valid.
>
> Yes, either of these is fine for pointers and integers alike:
>
> #define likely(x) __builtin_expect ((x) != 0, 1)
> #define unlikely(x) __builtin_expect ((x) != 0, 0)
>
> #define likely(x) __builtin_expect (!!(x), 1)
> #define unlikely(x) __builtin_expect (!!(x), 0)

Choosing the more familiar idiom for booleanizing a value, here we go:

diff -Naurd old/include/linux/compiler.h new/include/linux/compiler.h
--- old/include/linux/compiler.h 2003-08-11 09:02:18.000000000 -0400
+++ new/include/linux/compiler.h 2003-08-11 09:04:58.000000000 -0400
@@ -24,8 +24,8 @@
#define __builtin_expect(x, expected_value) (x)
#endif

-#define likely(x) __builtin_expect((x),1)
-#define unlikely(x) __builtin_expect((x),0)
+#define likely(x) __builtin_expect(!!(x),1)
+#define unlikely(x) __builtin_expect(!!(x),0)

/*
* Allow us to mark functions as 'deprecated' and have gcc emit a nice



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:47    [W:0.074 / U:4.616 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site