Re: [RFC, 2.6] a simple FIFO implementation

From: Chris Friesen
Date: Fri Sep 17 2004 - 00:48:06 EST


Peter Chubb wrote:

This depends on how expensive % is. On IA64, something like this:

add(char c) {
int i = p->head == p->len ? p->head++ : 0;
p->buf[i] = c;
}

is cheaper, as % generates a subroutine call to __modsi3. It also is
shorter =-- 12 bundles as opposed to 15.

I did a similar test once for ppc that found that an increment followed by a test (marked unlikely) was actually quicker in practice than modulo arithmetic. The branch predictor got it right most of the time, so the test was almost free.

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