Skip site navigation (1)Skip section navigation (2)
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>