Re: Optimizing libc/string for amd64(?)

From: Matt Emmerton <matt_at_gsicomp.on.ca>
Date: Sat, 4 Jun 2005 21:36:53 -0400
> Hello,
>
> I ran nbench on different workstations and noticed that
> amd64-platform is really bad when doing "STRINGSORT".
>
> Sempron 2200+ (i386)  : 88 iterations/second
> Athlon64 3000+ (amd64): 32.15 iterations/second
>
> I looked inside nbench and it seems to call memmove
> very often. This is OK, in my opinion, so I investigated
> further.
>
> I've just looked inside libc how memmove/memcpy is
> handled there. The function is inside bcopy.c.
> I noticed that the "word" which is used for copying
> has the size of "int".
>
> Wouldn't it be better to set it to "typedef long word"?
> OpenBSD is using "long" there, for example, as I noticed
> later.
>
> I don't have amd64 at home, so I cannot really test
> everything out. Can someone of you take a look at the
> code in libc/string? There are various places that are
> using "int" instead of "long", e.g. also in memset-code.

It would probably be better to use int64_t and int32_t instead of long/int,
in order to make the intention more obvious.

--
Matt Emmerton
Received on Sat Jun 04 2005 - 23:36:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:35 UTC