Re: Assembly string functions in i386 libc



On Wed, 11 Jul 2007, Matthew Dillon wrote:

:Since strlen() is used in every program directly or indirectly through
:libc, I thought it was beneficial to make it faster. In the case of
:i386, the C version used by all the other architectures, except for ARM,
:is much faster that the assembly version. This is without any
:optimization on its part.
:
:I need to test out grep (FreeGrep) to see how it behaves when calling
:regexec() (may use strlen() in certain cases) many times (i.e., grep -R
:on the source tree) using both versions.

Yes, but there's a difference between using strlen() a couple of
times in the program and using it in a core processing loop or
other high-performance element of the program. And even if it is
used in such places it isn't going to be used so often that the
program would actually benefit from the few nanoseconds of
improvement you might get from it. The chances of that are nearly
zero.

I tested it with diff and saw no difference :) between the assembly
version and mine. I would still recommend to use the C version
(src/lib/libc/string/strlen.c) over the assembly version since the
assembly version adds no value while the C version is used already for
most of the other architectures. Obviously, there is no rush.

Sean
--
scf@xxxxxxxxxxx
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"