unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Mattias Engdegård" <mattiase@acm.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>,
	Andrea Corallo <andrea_corallo@yahoo.it>,
	42147@debbugs.gnu.org
Subject: bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?
Date: Fri, 3 Jul 2020 10:32:56 +0200	[thread overview]
Message-ID: <D4DE3601-BB1D-4FFC-809C-19A0075D05D1@acm.org> (raw)
In-Reply-To: <1288c6a5-545b-f68c-ff6b-7683db3e54c1@cs.ucla.edu>

3 juli 2020 kl. 01.16 skrev Paul Eggert <eggert@cs.ucla.edu>:

> As you can see, sometimes SSE2 is closer to the mathematically-correct answer
> and sometimes x87 is. In typical C math code, x87 is better; in Emacs I imagine
> the reverse is true (for the reasons you mentioned), though I have not attempted
> to measure this.

Thanks for the examples and these were indeed what I had in mind (there's also the effect from having a greater exponent range in the intermediate result); Monniaux [1] is a good reference.

In practice, the extra precision of x87 code is so unreliable and fickle (unless the 80-bit long double is used throughout) that it's almost never worth it. (Being much slower doesn't help either.)

Fortunately modern compilers generate SSE code by default, only passing return values on the x87 stack as per the x86 ABI (which causes no harm). This reduces an already tiny risk to nil. We could add an elaborate configure or run-time test and admonishments to the installation instructions but frankly we have better use of our time. I suggest we replace byte-opt--portable-numberp with numberp (or nothing at all, depending on where it occurs) and be done with it.

---
[1] https://hal.archives-ouvertes.fr/hal-00128124/file/floating-point-article.pdf






  reply	other threads:[~2020-07-03  8:32 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1583748933.1069307.1593556032592.ref@mail.yahoo.com>
2020-06-30 22:27 ` bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations? Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-06-30 23:14   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-01 12:46     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-01 12:44   ` Mattias Engdegård
2020-07-01 16:08     ` Mattias Engdegård
2020-07-01 21:31       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-02 10:26         ` Mattias Engdegård
2020-07-02 10:59           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-02 12:46             ` Mattias Engdegård
2020-07-02 13:56               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-02 14:51                 ` Mattias Engdegård
2020-07-02 15:32                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-02 15:49                   ` Stefan Monnier
2020-07-02 18:01                     ` Mattias Engdegård
2020-07-02 18:55                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-02 19:38                       ` Stefan Monnier
2020-07-02 20:09                         ` Paul Eggert
2020-07-03  9:32                           ` Mattias Engdegård
2020-07-03 13:39                             ` bug#42147: Hash-consing bignums (was: bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?) Stefan Monnier
2020-07-02 20:31                       ` bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations? Paul Eggert
2020-07-02 21:41                       ` Stefan Monnier
2020-07-02 23:16                         ` Paul Eggert
2020-07-03  8:32                           ` Mattias Engdegård [this message]
2020-07-03 13:11                             ` Stefan Monnier
2020-07-03 18:35                               ` Mattias Engdegård
2020-07-03 18:43                                 ` Mattias Engdegård
2020-07-03 19:05                                 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-04 14:58                                   ` Mattias Engdegård
2020-07-04 15:06                                 ` Stefan Monnier
2020-07-04 16:13                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-05 13:00                                     ` Mattias Engdegård
2020-07-05 13:16                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-06 17:20                                         ` Mattias Engdegård
2020-07-06 21:23                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-07 15:54                                             ` Mattias Engdegård
2020-07-07 16:24                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-07 16:55                                                 ` Mattias Engdegård
2020-07-07 17:42                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-08 19:14                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-08 21:25                                                     ` Mattias Engdegård
2020-07-08 22:19                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-09 10:20                                                         ` Mattias Engdegård
2020-07-09 12:47                                                           ` Stefan Monnier
2020-07-09 12:57                                                             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-09 14:35                                                               ` Stefan Monnier
2020-07-09 15:19                                                                 ` Paul Eggert
2020-07-09 15:37                                                                 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-05 15:26                                   ` Mattias Engdegård
2020-07-03 18:31                             ` Paul Eggert
2020-07-03 18:47                               ` Mattias Engdegård
2020-07-04 15:57                                 ` Paul Eggert
2020-07-04 16:15                                   ` Eli Zaretskii
2020-07-04 16:27                                     ` Paul Eggert
2020-07-04 16:33                                       ` Stefan Monnier
2020-07-04 16:44                                         ` Mattias Engdegård
2020-07-04 17:00                                         ` Paul Eggert
2020-07-04 18:37                                           ` Pip Cet
2020-07-04 21:05                                             ` Stefan Monnier
2020-07-04 22:25                                               ` Pip Cet
2020-07-05  2:38                                                 ` Eli Zaretskii
2020-07-05  8:28                                                   ` Paul Eggert
2020-07-05  8:39                                                     ` Andreas Schwab
2020-07-05 14:47                                                     ` Eli Zaretskii
2020-07-05 15:30                                                       ` Stefan Monnier
2020-07-06  0:14                                                         ` Paul Eggert
2020-07-05 15:11                                                     ` Stefan Monnier
2020-07-06  0:10                                                       ` Paul Eggert
2020-07-05  9:56                                             ` Paul Eggert
2020-07-05 10:03                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-07-05 23:57                                                 ` Paul Eggert
2020-07-04 19:01                                           ` Mattias Engdegård
2020-07-04 17:10                                       ` Eli Zaretskii
2020-07-04 19:26                                         ` Paul Eggert
2020-07-02 19:09           ` Philipp Stephani
2020-07-03  9:25             ` Mattias Engdegård
2020-07-25 17:09               ` Philipp Stephani
2020-07-25 18:10                 ` Stefan Monnier
2020-07-25 20:03                   ` Philipp Stephani
2020-07-25 20:07                     ` Stefan Monnier
2020-07-25 20:11                       ` Philipp Stephani
2020-07-25 21:00                         ` Mattias Engdegård
2020-07-25 21:29                           ` Stefan Monnier
2020-07-25 21:39                             ` Philipp Stephani
2020-07-25 22:27                               ` Stefan Monnier
2020-07-29 12:53                                 ` Philipp Stephani
2020-07-29 14:28                                   ` Stefan Monnier
2020-07-25 21:54                             ` Mattias Engdegård
2020-07-25 22:30                               ` Stefan Monnier
2020-07-26  9:05                                 ` Mattias Engdegård
2020-07-29 16:03                                   ` Mattias Engdegård
2020-07-29 20:39                                     ` Stefan Monnier
2020-08-03 15:07                                       ` Mattias Engdegård
2020-08-10 13:39                                         ` Philipp Stephani
2020-08-10 22:07                                           ` Stefan Monnier
2020-08-10 13:42                                       ` Philipp Stephani
2020-08-10 22:10                                         ` Stefan Monnier
2020-07-29 13:10                           ` Philipp Stephani
2020-07-25 21:09                         ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D4DE3601-BB1D-4FFC-809C-19A0075D05D1@acm.org \
    --to=mattiase@acm.org \
    --cc=42147@debbugs.gnu.org \
    --cc=andrea_corallo@yahoo.it \
    --cc=eggert@cs.ucla.edu \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).