From owner-freebsd-arch@FreeBSD.ORG Thu Jul 12 04:19:49 2007 Return-Path: X-Original-To: freebsd-arch@FreeBSD.org Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 933EC16A400 for ; Thu, 12 Jul 2007 04:19:49 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from mail.farley.org (farley.org [67.64.95.201]) by mx1.freebsd.org (Postfix) with ESMTP id 458E613C45B for ; Thu, 12 Jul 2007 04:19:49 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from thor.farley.org (thor.farley.org [192.168.1.5]) by mail.farley.org (8.14.1/8.14.1) with ESMTP id l6C4LcE5014404; Wed, 11 Jul 2007 23:21:38 -0500 (CDT) (envelope-from scf@FreeBSD.org) Date: Wed, 11 Jul 2007 23:19:30 -0500 (CDT) From: "Sean C. Farley" To: Matthew Dillon In-Reply-To: <200707112351.l6BNpMUN063847@apollo.backplane.com> Message-ID: <20070711231412.K4613@thor.farley.org> References: <20070711134721.D2385@thor.farley.org> <20070711221338.GC20178@turion.vk2pj.dyndns.org> <200707112221.l6BML722062857@apollo.backplane.com> <20070711183217.C2385@thor.farley.org> <200707112351.l6BNpMUN063847@apollo.backplane.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on mail.farley.org Cc: freebsd-arch@FreeBSD.org Subject: Re: Assembly string functions in i386 libc X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2007 04:19:49 -0000 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@FreeBSD.org