aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2003-08-14 20:53:26 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2003-08-14 20:53:26 +0000
commit8ab49fef1f21ff68d39a28b1ddc98d4822603516 (patch)
tree9a1c805b0d9f0abdd6f5f935e7f53f0fb1091c08 /gcc/cgraphunit.c
parent74bed51bf60b6c4a51a05b6fa54cde5be2194b40 (diff)
downloadgcc-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/cgraphunit.c')
0 files changed, 0 insertions, 0 deletions