From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2874 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: ARM optimisations Date: Sat, 2 Mar 2013 12:34:41 +0100 Message-ID: <20130302113441.GQ6181@port70.net> References: <20130228233051.GO20323@brightrain.aerifal.cx> <1362198799.21837.5@driftwood> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1362224093 22408 80.91.229.3 (2 Mar 2013 11:34:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 2 Mar 2013 11:34:53 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2875-gllmg-musl=m.gmane.org@lists.openwall.com Sat Mar 02 12:35:17 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UBkih-0003VG-FK for gllmg-musl@plane.gmane.org; Sat, 02 Mar 2013 12:35:15 +0100 Original-Received: (qmail 7673 invoked by uid 550); 2 Mar 2013 11:34:53 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 7655 invoked from network); 2 Mar 2013 11:34:52 -0000 Content-Disposition: inline In-Reply-To: <1362198799.21837.5@driftwood> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:2874 Archived-At: * Rob Landley [2013-03-01 22:33:19 -0600]: > I'd actually say that armv5 is probably the one to optimize for, > because it's somewhere over 80% of the installed base of arm systems > and generally provides an additonal 25% speedup from armv4 to armv5. > Anything lower than that can use C, anything newer than that can > benefit from an armv5 version vs C. ... > I believe armv6 was mostly just SMP extensions, so not worth > optimizing memcpy for. armv7 is nice but not uibiquitous the way > armv5 is, and armv7 brings with it the "thumb2" instruction set > which means you'd need 2 versions depending on what target you > wanted to compile for... a quick research shows that glibc has ifdefs for armv5te and armv4t optimizations http://sourceware.org/git/?p=glibc.git;a=blob;f=ports/sysdeps/arm/memcpy.S linaro has armv7 optimized version http://bazaar.launchpad.net/~linaro-toolchain-dev/cortex-strings/trunk/view/head:/src/linaro-a9/memcpy.S olibc (the bionic one not the openbsd one) has armv7+neon optimized memcpy https://github.com/olibc/olibc/blob/master/libc/arch-arm/bionic/memcpy.S