From owner-cvs-all@FreeBSD.ORG Mon Feb 25 18:28:58 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DBAC16A408; Mon, 25 Feb 2008 18:28:58 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 988C013C457; Mon, 25 Feb 2008 18:28:58 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1PISw4B002526; Mon, 25 Feb 2008 18:28:58 GMT (envelope-from bde@repoman.freebsd.org) Received: (from bde@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1PISwno002525; Mon, 25 Feb 2008 18:28:58 GMT (envelope-from bde) Message-Id: <200802251828.m1PISwno002525@repoman.freebsd.org> From: Bruce Evans Date: Mon, 25 Feb 2008 18:28:58 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2008 18:28:58 -0000 bde 2008-02-25 18:28:58 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Use a temporary array instead of the arg array y[] for calling __kernel_rem_pio2(). This simplifies analysis of aliasing and thus results in better code for the usual case where __kernel_rem_pio2() is not called. In particular, when __ieee854_rem_pio2[f]() is inlined, it normally results in y[] being returned in registers. I couldn't get this to work using the restrict qualifier. In float precision, this saves 2-3% in most cases on amd64 and i386 (A64) despite it not being inlined in float precision yet. In double precision, this has high variance, with an average gain of 2% for amd64 and 0.7% for i386 (but a much larger gain for usual cases) and some losses. Revision Changes Path 1.17 +4 -4 src/lib/msun/src/e_rem_pio2.c 1.27 +4 -4 src/lib/msun/src/e_rem_pio2f.c