![]() | |||||||||||||
Messages in this thread |
Andi Kleen wrote: > On Tue, 10 Feb 2004 22:28:11 -0800 > Alex Pankratov <ap@swapped.cc> wrote: > > >>Second patch removes if's from hlist_xxx() functions. The idea >>is to terminate the list not with 0, but with a pointer at a >>special 'null' item. Luckily a single 'null' can be shared >>between all hlists _without_ any synchronization, because its >>'next' and 'pprev' fields are never read. In fact, 'next' is >>not accessed at all, and 'pprev' is used only for writing. > > I disagree with this change. The problem is that in a loop > you need a register now to store the terminating element > and compare to it instead of just testing for zero. This can generate > much worse code on register starved i386 than having the conditional. Ugh, yeah, I thought about this. However my understand was that since hlist_null is statically allocated variable, its address will be a known constant at a link time (whether it's a static link or dynamic/run-time link - btw, excuse my lack of proper terminology here). So comparing something to &null would be equivalent to comparing to the constant and not require an extra register. Alex - 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 14:00 [from the cache] ©2003-2008 | |||||||||||||