On Mon, Aug 20, 2012 at 06:58:43PM -0700, Ethan Jackson wrote:
> All your comments make sense, thanks.
> 
> > I really wanted this to be inline with GCC, since function call
> > overhead for a single machine instruction is nasty.  Anyhow, you're
> > right, it deserves to be in util, and so I removed the raw_ctz() code
> > from flow.c and slipped in the following patch before this one:
> 
> My only comment in this patch, is that it may make sense to inline
> ctz() as well given how simple it is.

Fair enough.  I folded in this incremental:

diff --git a/lib/util.c b/lib/util.c
index d0ff872..c90d556 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -819,13 +819,6 @@ raw_ctz(uint32_t n)
 }
 #endif
 
-/* Returns the number of trailing 0-bits in 'n', or 32 if 'n' is 0. */
-int
-ctz(uint32_t n)
-{
-    return n ? raw_ctz(n) : 32;
-}
-
 /* Returns the number of 1-bits in 'x', between 0 and 32 inclusive. */
 int
 popcount(uint32_t x)
diff --git a/lib/util.h b/lib/util.h
index f394673..a1f4bd7 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -259,9 +259,15 @@ raw_ctz(uint32_t n)
 int raw_ctz(uint32_t n);
 #endif
 
+/* Returns the number of trailing 0-bits in 'n', or 32 if 'n' is 0. */
+static inline int
+ctz(uint32_t n)
+{
+    return n ? raw_ctz(n) : 32;
+}
+
 int log_2_floor(uint32_t);
 int log_2_ceil(uint32_t);
-int ctz(uint32_t);
 int popcount(uint32_t);
 
 bool is_all_zeros(const uint8_t *, size_t);

Thank you for the comments.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to