This is the mail archive of the
`gcc-patches@gcc.gnu.org`
mailing list for the GCC project.

Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|

Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |

Other format: | [Raw text] |

*From*: Richard Guenther <rguenther at suse dot de>*To*: Roger Sayle <roger at eyesopen dot com>*Cc*: gcc-patches at gcc dot gnu dot org*Date*: Fri, 25 Aug 2006 11:05:52 +0200 (CEST)*Subject*: Re: [PATCH] Improve PR28796 (inconsistend __builtin_nan() and __builtin_unordered()) further*References*: <Pine.LNX.4.44.0608240901140.11424-100000@www.eyesopen.com>

On Thu, 24 Aug 2006, Roger Sayle wrote: > > On Thu, 24 Aug 2006, Richard Guenther wrote: > > 2006-08-25 Richard Guenther <rguenther@suse.de> > > > > PR middle-end/28796 > > * simplify-rtx.c (simplify_const_relational_operation): > > Do not constant-fold ORDERED and UNORDERED for > > flag_unsafe_math_optimizations but only we do not need to > > honor NaNs for the given mode. > > This is OK for 4.3. If you can find an old version of GCC, that > didn't attempt to optimize C99's isunordered as a builtin, then this > patch is also OK for mainline. Archeology reveals that at some time we had only flag_fast_math which +2001-03-07 Brad Lucier <lucier@math.purdue.edu> + + * builtins.c (expand_builtin_mathfn): Check + flag_unsafe_math_optimizations, not flag_fast_math. + (expand_builtin): Likewise + * combine.c (combine_simplify_rtx): Likewise. + (simplify_if_then_else): Likewise. + * cse.c (fold_rtx): Likewise. + * flags.h: Remove flag_fast_math. Add + flag_unsafe_math_optimizations and flag_trapping_math. ... + * simplify-rtx.c (simplify_binary_operation): Likewise. + (simplify_relational_operation): Likewise. + (simplify_ternary_operation): Likewise. ... + * config/i386/i386.c (override_options): Likewise ... split into flag_unsafe_math_optimizations and flag_trapping_math. Later Toon introduced flag_finite_math_only 2002-07-30 Toon Moene <toon@moene.indiv.nluug.nl> * flags.h: Declare flag_finite_math_only. Use it in definition of HONOR_NANS and HONOR_INFINITIES. * c-common.c (cb_register_builtins): Emit __FINITE_MATH_ONLY__ when flag_finite_math_only is set. * combine.c (simplify_if_then_else): If flag_finite_math_only is set, a == b has a definite value. * toplev.c: Initialize flag_finite_math_only. (set_flags_fast_math): Set it on -ffast-math. (flag_fast_math_set_p): Test it. * doc/invoke.texi: Document -ffinite-math-only. but at that point we didn't convert all of the remaining "-ffast-math" (which just became flag_unsafe_math_optimizations check) to either flag_finite_math_only or flag_unsafe_math_optimizations. So I don't think we can say that all these bugs are regressions. They are technically still wrong-code, so maybe applicable for fixing in mainline and branches once they are open for bugfixes again. Richard. -- Richard Guenther <rguenther@suse.de> Novell / SUSE Labs

**References**:

Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|

Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |