re PR rtl-optimization/576 (gcc performs invalid optimization with float operations...
authorRoger Sayle <roger@eyesopen.com>
Fri, 21 Jan 2005 17:54:26 +0000 (17:54 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Fri, 21 Jan 2005 17:54:26 +0000 (17:54 +0000)
commitd284eb28eb6f3ef8c3f27e7428b8cdc8e51d965f
tree87965b49d99f08cdf39d5e6360e95fccbda397a3
parenta101957b98129887878b4e98830147e49fa4f655
re PR rtl-optimization/576 (gcc performs invalid optimization with float operations when different rounding mode.)

PR rtl-optimization/576
* real.c (real_arithmetic): Change return type from void to bool
to return an indication that the result may be inexact.
* real.h (real_arithmeric): Update prototype.
* fold-const.c (const_binop):  Don't constant fold floating
point expressions when the user specifies -frounding-math and
the result may depend upon the run-time rounding mode.
(fold_convert_const_real_from_real): Clean-up.
(fold_initializer): Ignore flag_rounding_math for initializers.
* simplify-rtx.c (simplify_binary_operation): Likewise, don't
constant fold FP operations with flag_rounding_math if the
result may depend upon the run-time rounding mode.

From-SVN: r94020
gcc/ChangeLog
gcc/fold-const.c
gcc/real.c
gcc/real.h
gcc/simplify-rtx.c