Message ID | 20201124105523.GA14751@oc3748833570.ibm.com |
---|---|
State | New |
Headers | show |
Series | [wwwdocs] Re: [PATCH v2] Fix -ffast-math flags handling inconsistencies | expand |
Hi! On Tue, Nov 24, 2020 at 11:55:23AM +0100, Ulrich Weigand wrote: > On Sat, Nov 21, 2020 at 01:57:32PM -0600, Segher Boessenkool wrote: > > It all makes sense, and is a nice improvement :-) But please mention it > > in the release notes? No doubt people did use non-sensical flag > > combinations, and they will be affected. Thanks! > > Here's a proposed patch to update the gcc-11 changes.hmtl. > > OK to commit? This looks perfect to me. It even looks like fine HTML (but I would trust the W3C validator over me on that, hehe. > diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html > index 46a6a37..c0f896a 100644 > --- a/htdocs/gcc-11/changes.html > +++ b/htdocs/gcc-11/changes.html > @@ -58,6 +58,29 @@ a work-in-progress.</p> > is deprecated and will be removed in a future release. It should be > possible to use <code>--enable-cheaders=c_global</code> (the default) > with no change in behaviour. </li> > + > + <li>Some inconsistencies in handling combinations of <code>-ffast-math</code>, > + <code>-fno-fast-math</code>, <code>-funsafe-math-optimizations</code>, > + <code>-fno-unsafe-math-optimizations</code>, and their component flags > + have been fixed. This might change the behavior of the compiler when > + invoked with certain combinations of such command line options. > + The behavior is now consistently: > + <ul> > + <li>If a component flag of <code>-ffast-math</code> or (trailing space, if you care) > + <code>-funsafe-math-optimizations</code> is explicitly set or reset > + on the command line, this will override any implicit change, no matter > + in which order the flags come on the command line.</li> > + <li>Any component flag (which is not explicity set or reset on the command > + line) that was modified from its default by <code>-ffast-math</code> or > + <code>-funsafe-math-optimizations</code> is always reset to its default > + by a subsequent <code>-fno-fast-math</code> or > + <code>-fno-unsafe-math-optimizations</code>.</li> > + <li><code>-ffast-math</code> no longer implicitly changes > + <code>-fsignaling-math</code>. > + <li>The <code>__FAST_MATH__</code> preprocessor macro is set if and > + only if all component flags of <code>-ffast-math</code> are set > + to the value documented as the effect of <code>-ffast-math</code>.</li> > + </ul></li> > </ul> Thanks, Segher
diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html index 46a6a37..c0f896a 100644 --- a/htdocs/gcc-11/changes.html +++ b/htdocs/gcc-11/changes.html @@ -58,6 +58,29 @@ a work-in-progress.</p> is deprecated and will be removed in a future release. It should be possible to use <code>--enable-cheaders=c_global</code> (the default) with no change in behaviour. </li> + + <li>Some inconsistencies in handling combinations of <code>-ffast-math</code>, + <code>-fno-fast-math</code>, <code>-funsafe-math-optimizations</code>, + <code>-fno-unsafe-math-optimizations</code>, and their component flags + have been fixed. This might change the behavior of the compiler when + invoked with certain combinations of such command line options. + The behavior is now consistently: + <ul> + <li>If a component flag of <code>-ffast-math</code> or + <code>-funsafe-math-optimizations</code> is explicitly set or reset + on the command line, this will override any implicit change, no matter + in which order the flags come on the command line.</li> + <li>Any component flag (which is not explicity set or reset on the command + line) that was modified from its default by <code>-ffast-math</code> or + <code>-funsafe-math-optimizations</code> is always reset to its default + by a subsequent <code>-fno-fast-math</code> or + <code>-fno-unsafe-math-optimizations</code>.</li> + <li><code>-ffast-math</code> no longer implicitly changes + <code>-fsignaling-math</code>. + <li>The <code>__FAST_MATH__</code> preprocessor macro is set if and + only if all component flags of <code>-ffast-math</code> are set + to the value documented as the effect of <code>-ffast-math</code>.</li> + </ul></li> </ul>