From owner-freebsd-numerics@FreeBSD.ORG Tue May 28 13:03:13 2013 Return-Path: Delivered-To: freebsd-numerics@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A5D60ADE; Tue, 28 May 2013 13:03:13 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 65C2E8A2; Tue, 28 May 2013 13:03:13 +0000 (UTC) Received: from c122-106-156-23.carlnfd1.nsw.optusnet.com.au (c122-106-156-23.carlnfd1.nsw.optusnet.com.au [122.106.156.23]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 7D79C104139F; Tue, 28 May 2013 22:44:57 +1000 (EST) Date: Tue, 28 May 2013 22:44:22 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: David Chisnall Subject: Re: Use of C99 extra long double math functions after r236148 In-Reply-To: Message-ID: <20130528222541.N2926@besplex.bde.org> References: <501204AD.30605@missouri.edu> <20120727032611.GB25690@server.rulingia.com> <20120728125824.GA26553@server.rulingia.com> <501460BB.30806@missouri.edu> <20120728231300.GA20741@server.rulingia.com> <50148F02.4020104@missouri.edu> <20120729222706.GA29048@server.rulingia.com> <5015BB9F.90807@missouri.edu> <20130528043205.GA3282@zim.MIT.EDU> <20130528155933.V1298@besplex.bde.org> <20130528081921.GB13594@zim.MIT.EDU> <20130528205441.U2294@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.0 cv=e/de0tV/ c=1 sm=1 a=O6A2dy7pM2IA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=Zc3-fPm5GV4A:10 a=jpvodMJeLT64p2G4esEA:9 a=CjuIK1q_8ugA:10 a=ebeQFi2P/qHVC0Yw9JDJ4g==:117 Cc: Diane Bruce , John Baldwin , Stephen Montgomery-Smith , freebsd-numerics@freebsd.org, Steve Kargl , David Schultz , Peter Jeremy , Warner Losh X-BeenThere: freebsd-numerics@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussions of high quality implementation of libm functions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 May 2013 13:03:13 -0000 On Tue, 28 May 2013, David Chisnall wrote: > On 28 May 2013, at 12:12, Bruce Evans wrote: > >> Inlining the big function do_hard_work() helps for gcc on >> amd64 (about 5% faster), but makes no significant difference for clang. >> The previous testing was mostly with gcc. > > How are you inlining? With the C99 inline keyword, which changes the linkage type but only provides and advisory hint to the compiler with regard to inlining (which, in a modern compiler, is largely ignored), or with the always_inline attribute, which forces the compiler to inline the function? Only static inlining in catrig*.c. All compilers follow its hints there. libm sometimes uses static __always_inline instead of static inline elsewhere (but mostly not). Bruce