mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-12 19:25:41 +08:00
fold-const.c (split_tree): Associate floatig-point expressions if flag_associative_math is set.
2008-02-20 Richard Guenther <rguenther@suse.de> * fold-const.c (split_tree): Associate floatig-point expressions if flag_associative_math is set. * gcc.dg/fold-reassoc-1.c: New testcase. * gcc.dg/tree-ssa/recip-3.c: Adjust to not compute d/d. From-SVN: r132481
This commit is contained in:
parent
2dc0f63301
commit
41bb1f06d3
@ -1,3 +1,8 @@
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* fold-const.c (split_tree): Associate floatig-point expressions
|
||||
if flag_associative_math is set.
|
||||
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree.h (fold_real_zero_addition_p): Declare.
|
||||
|
@ -1491,7 +1491,7 @@ split_tree (tree in, enum tree_code code, tree *conp, tree *litp,
|
||||
|| TREE_CODE (in) == FIXED_CST)
|
||||
*litp = in;
|
||||
else if (TREE_CODE (in) == code
|
||||
|| (! FLOAT_TYPE_P (TREE_TYPE (in))
|
||||
|| ((! FLOAT_TYPE_P (TREE_TYPE (in)) || flag_associative_math)
|
||||
&& ! SAT_FIXED_POINT_TYPE_P (TREE_TYPE (in))
|
||||
/* We can associate addition and subtraction together (even
|
||||
though the C standard doesn't say so) for integers because
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/fold-reassoc-1.c: New testcase.
|
||||
* gcc.dg/tree-ssa/recip-3.c: Adjust to not compute d/d.
|
||||
|
||||
2008-02-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/tree-ssa/reassoc-13.c: New testcase.
|
||||
|
10
gcc/testsuite/gcc.dg/fold-reassoc-1.c
Normal file
10
gcc/testsuite/gcc.dg/fold-reassoc-1.c
Normal file
@ -0,0 +1,10 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O -ffast-math -fdump-tree-original" } */
|
||||
|
||||
double foo (double x)
|
||||
{
|
||||
return (x + 0.5 - x - 0.5);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump "return 0.0;" "original" } } */
|
||||
/* { dg-final { cleanup-tree-dump "original" } } */
|
@ -9,7 +9,7 @@ float h ()
|
||||
int i;
|
||||
double E, W, P, d;
|
||||
|
||||
W = 1.;
|
||||
W = 1.1;
|
||||
d = 2.*e;
|
||||
E = 1. - d;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user