Date: Sun, 6 May 2007 02:11:25 +0400 From: Andrey Chernov <ache@freebsd.org> To: "Sean C. Farley" <sean-freebsd@farley.org> Cc: Daniel Eischen <deischen@freebsd.org>, arch@freebsd.org Subject: Re: HEADS DOWN Message-ID: <20070505221125.GA50439@nagual.pp.ru> In-Reply-To: <20070505163707.J6670@thor.farley.org> References: <Pine.GSO.4.64.0705021332020.8590@sea.ntplx.net> <20070502183100.P1317@baba.farley.org> <Pine.GSO.4.64.0705022034180.8590@sea.ntplx.net> <20070502230413.Y30614@thor.farley.org> <20070503160351.GA15008@nagual.pp.ru> <20070504085905.J39482@thor.farley.org> <20070504213312.GA33163@nagual.pp.ru> <20070504174657.D1343@thor.farley.org> <20070505213202.GA49925@nagual.pp.ru> <20070505163707.J6670@thor.farley.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 05, 2007 at 04:48:44PM -0500, Sean C. Farley wrote: > I have the same assembly output. Inlined __strleneq() ends up being > faster on my system than GCC's strlen() when I changed all calls where > checkEquals equaled false. I believe you that it should be faster with > GCC's version, but it is not ending up that way on my Athlon XP and > Pentium 4 systems running FreeBSD 6.2. > > There is now a sysenv-strlen.c that I tested the timings.c program in > regressions/environment directory. It keeps showing __strleneq() to be > faster. I wonder how it possible. Your after "if" variant becomes .L13: incl %eax cmpb $0, (%eax) jne .L13 which should be slower in general than gcc ones. Could you please run some test for just this two functions (without all other stuff): strlen() (gcc -O) and inlined __strleneq() for some array of different-size strings? -- http://ache.pp.ru/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070505221125.GA50439>