diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-08-14 20:53:26 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-08-14 20:53:26 +0000 |
commit | 8ab49fef1f21ff68d39a28b1ddc98d4822603516 (patch) | |
tree | 9a1c805b0d9f0abdd6f5f935e7f53f0fb1091c08 /gcc/cgraph.c | |
parent | 74bed51bf60b6c4a51a05b6fa54cde5be2194b40 (diff) | |
download | gcc-8ab49fef1f21ff68d39a28b1ddc98d4822603516.zip gcc-8ab49fef1f21ff68d39a28b1ddc98d4822603516.tar.gz gcc-8ab49fef1f21ff68d39a28b1ddc98d4822603516.tar.bz2 |
fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy to negate if either operand is easy to negate...
* fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy
to negate if either operand is easy to negate, if we don't care
about sign-dependent rounding.
(negate_expr): Make the logic to negate a REAL_CST explicit.
Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand
that's easy to negate, if we don't honor sign-dependent rounding.
(fold <MULT_EXPR>): Optimize -A * B as A * -B if B is easy to
negate, and the symmetric A * -B as -A * B if A is easy to negate.
(fold <RDIV_EXPR>): Likewise, optimize -A/B and C/-D as A/-B and
-C/D if B and C are cheap to negate. Add an explicit rule to
optimize X/-1.0 as -X when we don't care about signaling NaNs.
From-SVN: r70455
Diffstat (limited to 'gcc/cgraph.c')
0 files changed, 0 insertions, 0 deletions