]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/defaults.h
defaults.h (MODE_HAS_NANS, [...]): New.
authorRichard Sandiford <rsandifo@redhat.com>
Thu, 7 Mar 2002 11:37:16 +0000 (11:37 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 7 Mar 2002 11:37:16 +0000 (11:37 +0000)
commit71925bc04f24a40ab8ac587e08609cf91299e293
tree74f74ccd7ea753279bc20a10577c6a90a6a4ba38
parent145d3bf292a6cfc66a6396285003765db9424a8f
defaults.h (MODE_HAS_NANS, [...]): New.

* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
(MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
* flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
(HONOR_SIGN_DEPENDENT_ROUNDING): New.
* builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
* c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
unless x and y could be infinite.
(expand_unordered_cmp): New, mostly split from expand_tree_builtin.
Check that the common type of both arguments is a real, even for
targets without unordered comparisons.  Allow an integer argument
to be compared against a real.
(expand_tree_builtin): Use expand_unordered_cmp.
* combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
* cse.c (fold_rtx): Likewise.  Fix indentation.
* fold-const.c (fold_real_zero_addition_p): New.
(fold): Use it, and the new HONOR_... macros.
* ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
* jump.c (reversed_comparison_code_parts): After searching for
the true comparison mode, use HONOR_NANS to decide whether it
can be safely reversed.
(reverse_condition_maybe_unordered): Remove IEEE check.
* simplify-rtx.c (simplify_binary_operation): Use the new macros
to decide which simplifications are valid.  Allow the following
simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
and (a - -b) to (a + b).
(simplify_relational_operation): Use HONOR_NANS.
* doc/tm.texi: Document the MODE_HAS_... macros.

From-SVN: r50401
12 files changed:
gcc/ChangeLog
gcc/builtins.c
gcc/c-common.c
gcc/combine.c
gcc/cse.c
gcc/defaults.h
gcc/doc/tm.texi
gcc/flags.h
gcc/fold-const.c
gcc/ifcvt.c
gcc/jump.c
gcc/simplify-rtx.c