public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Qing Zhao <qing.zhao@oracle.com>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Andrew Pinski <pinskia@gmail.com>,
	"richard.earnshaw@arm.com" <richard.earnshaw@arm.com>,
	gcc Patches <gcc-patches@gcc.gnu.org>,
	Richard Sandiford <richard.sandiford@arm.com>
Subject: Re: Should -ffp-contract=off the default on GCC?
Date: Tue, 21 Mar 2023 15:01:24 +0000	[thread overview]
Message-ID: <FC43F35C-6EF8-4E0F-96F2-E600D23E5A4C@oracle.com> (raw)
In-Reply-To: <ZBjdRwIHApFWKYbq@tucnak>



> On Mar 20, 2023, at 6:25 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> 
> On Mon, Mar 20, 2023 at 10:05:57PM +0000, Qing Zhao via Gcc-patches wrote:
>> My question: is the above section the place in C standard “explicitly allows contractions”? If not, where it is in C standard?
> 
> http://port70.net/%7Ensz/c/c99/n1256.html#6.5p8
> http://port70.net/%7Ensz/c/c99/n1256.html#note78

78) This license is specifically intended to allow implementations to exploit fast machine instructions that combine multiple C operators. As contractions potentially undermine predictability, and can even decrease accuracy for containing expressions, their use needs to be well-defined and clearly documented.

Looks like that the C99 standard clearly warned that the fp-contract might “undermine predictability”, “can even decrease accuracy” at the same time to allow it.  Should we also provide such warning in our gcc documentation for -fp-contract (currently, there is no such warning):

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
"
-ffp-contract=style
-ffp-contract=off disables floating-point expression contraction. -ffp-contract=fast enables floating-point expression contraction such as forming of fused multiply-add operations if the target has native support for them. -ffp-contract=on enables floating-point expression contraction if allowed by the language standard. This is currently not implemented and treated equal to -ffp-contract=off.

The default is -ffp-contract=fast.”

Most of the compiler users are not familiar with language standards, or no access to language standards. Without clearly documenting such warnings along with the option explicitly, the users have not way to know such potential impact. They will be confused with the result they see and raise the same questions to GCC community again and again. 

thanks.

Qing


> http://port70.net/%7Ensz/c/c99/n1256.html#F.6
> 
> 	Jakub
> 


  parent reply	other threads:[~2023-03-21 15:01 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-16 16:24 Qing Zhao
2023-03-16 16:31 ` Andrew Pinski
2023-03-16 16:38   ` Qing Zhao
2023-03-16 16:53     ` Jakub Jelinek
2023-03-16 18:40       ` Qing Zhao
2023-03-20 22:05       ` Qing Zhao
2023-03-20 22:25         ` Jakub Jelinek
2023-03-21 12:49           ` Qing Zhao
2023-03-21 15:01           ` Qing Zhao [this message]
2023-03-21 16:56             ` Paul Koning
2023-03-21 17:00               ` Qing Zhao
2023-03-21 17:59                 ` Jeff Law
2023-03-21 18:03                   ` Paul Koning
2023-03-21 18:55                     ` Toon Moene
2023-03-21 18:12                   ` Alexander Monakov
2023-03-21 18:18                     ` Jeff Law
2023-03-22 10:13                       ` Richard Biener
2023-03-22 12:26                         ` Alexander Monakov
2023-03-22 13:57                           ` Richard Biener
2023-03-22 15:52                             ` Qing Zhao
2023-03-24  7:12                               ` Fangrui Song
2023-03-24 19:42                                 ` Andrew Pinski
2023-03-31 16:31                                   ` Qing Zhao
2023-03-21 19:01                   ` Qing Zhao
2023-03-21 19:12                     ` Jakub Jelinek
2023-03-21 23:28                       ` Jeff Law
2023-03-21 23:31                         ` Jakub Jelinek
2023-03-21 19:51                     ` Jeff Law
2023-03-21 21:08                       ` Qing Zhao
2023-03-22 12:33           ` Alexander Monakov
2023-03-22 14:33             ` Qing Zhao
2023-03-27  9:03 Zeson

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

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

  git send-email \
    --in-reply-to=FC43F35C-6EF8-4E0F-96F2-E600D23E5A4C@oracle.com \
    --to=qing.zhao@oracle.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=pinskia@gmail.com \
    --cc=richard.earnshaw@arm.com \
    --cc=richard.sandiford@arm.com \
    /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.
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).