From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.diffs,gmane.emacs.devel Subject: Re: master fe042e9: Speed up (+ 2 2) by a factor of 10 Date: Tue, 4 Sep 2018 14:43:33 +0000 Message-ID: References: <20180904015038.20117.2150@vcs0.savannah.gnu.org> <20180904015039.B9EAD20496@vcs0.savannah.gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1536072139 9956 195.159.176.226 (4 Sep 2018 14:42:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 4 Sep 2018 14:42:19 +0000 (UTC) Cc: emacs-diffs@gnu.org To: emacs-devel@gnu.org, eggert@cs.ucla.edu Original-X-From: emacs-diffs-bounces+gnu-emacs-diffs=m.gmane.org@gnu.org Tue Sep 04 16:42:15 2018 Return-path: Envelope-to: gnu-emacs-diffs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxCX0-0002Ua-MZ for gnu-emacs-diffs@m.gmane.org; Tue, 04 Sep 2018 16:42:14 +0200 Original-Received: from localhost ([::1]:51251 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxCZ7-00005f-1T for gnu-emacs-diffs@m.gmane.org; Tue, 04 Sep 2018 10:44:25 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxCYz-000055-AR for emacs-diffs@gnu.org; Tue, 04 Sep 2018 10:44:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxCYy-0003Ds-Ht for emacs-diffs@gnu.org; Tue, 04 Sep 2018 10:44:17 -0400 Original-Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]:42184) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fxCYw-0003CN-IT; Tue, 04 Sep 2018 10:44:14 -0400 Original-Received: by mail-lj1-x243.google.com with SMTP id f1-v6so3363057ljc.9; Tue, 04 Sep 2018 07:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TWChb1wrH9FizIhzKoVQjLFJ3urRUoyb+DN2x5lNNmk=; b=vEJYSc0SSpbs/+geVYYoqn4olkTjVgN6BwPtkfmsKikmvhKvm9QeN51r2Nh7vRNaoV ZuipGNd2msn0xVOPvEjlN0yGjsPU5yjN/+plp/HF3hF33G4y+1/t+HAHVIb32PxdxRXR qdY8PcaVfywM6lL9wz+g5qFE6m0vUpK8KQm1Yj6JCSxoDF88tfvtjwnwwF3l2MxNuYKZ 8HaFOlOXy70v39vJJuTu2cG2pduRO8/6CiLMTMfAxEntCpvp9CDw8u4OquYuqzIsDN6p 27tvlwKHjznkaCEJNYjW5ACr34bQuOZxodXnmvHU5XvMus4XBVOul3ft7E7yv4uT01nN gO6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TWChb1wrH9FizIhzKoVQjLFJ3urRUoyb+DN2x5lNNmk=; b=pC6FE5NfBQqT7rJppGQFT+27vzZgxAuWVBJ2rL8oYMvEyA/5AJC9GeqaK/EiU5dzqS wc2kVhCM3TdfMk+RIv6/xYc2ivxm54CwGpoJ0sbDH3xWn3fJe4I1EJyBcCk32DJKmJ9E tfTKqtvln//YF15uyZJneIMcr9nNwUCCTAa/tl61VCOgDerjQ9Z4flJ0X0HXQ+RHkgfx vdj9aH16gfPgHjvaoUxYyq6pAd0+tyAClEjsWn6CmVG6SzArzdISk4uHAD5noR2DlAfv TIPbIyUG9GUgAWt/X8Ia+Ew8M/n8G1JnVyEd7J83m+2lINtJiQB5T4OTZi1MTQY/vEOg XyhQ== X-Gm-Message-State: APzg51CF4O98Ln1NS83CcHooewuiGcEFyCM3U0GwMYFd32Ge86HczUpx dwNOnnzVCwtXLz6/IDTnqORlCHck9uPnGLkVTVtoJA== X-Google-Smtp-Source: ANB0VdZ/fOxlfmJeUEHI/rxU7LNpTU+II3Txyy0Ck1HGYeu0LAZq/kj0jqt5grXHIqD048zdhaxIv0GfmgDolYENePg= X-Received: by 2002:a2e:4619:: with SMTP id t25-v6mr21968405lja.96.1536072251929; Tue, 04 Sep 2018 07:44:11 -0700 (PDT) In-Reply-To: <20180904015039.B9EAD20496@vcs0.savannah.gnu.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::243 X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-diffs-bounces+gnu-emacs-diffs=m.gmane.org@gnu.org Original-Sender: "Emacs-diffs" Xref: news.gmane.org gmane.emacs.diffs:146861 gmane.emacs.devel:229228 Archived-At: On Tue, Sep 4, 2018 at 1:50 AM Paul Eggert wrote: > diff --git a/src/fns.c b/src/fns.c > index 17a869e..8b25492 100644 > --- a/src/fns.c > +++ b/src/fns.c > @@ -1468,19 +1468,17 @@ DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0, > /* Undo any error introduced when LARGE_NUM was substituted for > N, by adding N - LARGE_NUM to NUM, using arithmetic modulo > CYCLE_LENGTH. */ > - mpz_t z; /* N mod CYCLE_LENGTH. */ > - mpz_init (z); > + /* Add N mod CYCLE_LENGTH to NUM. */ > if (cycle_length <= ULONG_MAX) > - num += mpz_mod_ui (z, XBIGNUM (n)->value, cycle_length); > + num += mpz_mod_ui (mpz[0], XBIGNUM (n)->value, cycle_length); I think it would be best to use mpz_div_ui here (despite its name, it returns the remainder of the division specified by its arguments). Are you sure it wouldn't be possible to get the performance gains your patch gives us without introducing global temporaries, such as by using mpz_swap efficiently? Is this worth investigating, maybe, or do you prefer global temporaries for another reason?