diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2007-02-03 20:49:51 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2007-02-03 20:49:51 +0000 |
commit | b86a760aed87957b7f57a39aeef25ac8ab8ecaa9 (patch) | |
tree | 3c924698e0bed7d0bb13a6fbd463def170b9bb50 | |
parent | 3a610de8791728417247258df99cf16c14c09822 (diff) | |
download | gcc-b86a760aed87957b7f57a39aeef25ac8ab8ecaa9.tar.gz |
emit-rtl.c (dconstpi): Delete.
* emit-rtl.c (dconstpi): Delete.
(dconstsqrt2): New.
(init_emit_once): Delete dconstpi and init dconstsqrt2.
* real.h (dconstpi): Delete.
(dconstsqrt2): New.
* builtins.c (fold_builtin_cabs): Use dconstsqrt2.
(fold_builtin_hypot): Likewise.
From-SVN: r121550
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/builtins.c | 14 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 6 | ||||
-rw-r--r-- | gcc/real.h | 2 |
4 files changed, 20 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5287e27272..b6ccf374c96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * emit-rtl.c (dconstpi): Delete. + (dconstsqrt2): New. + (init_emit_once): Delete dconstpi and init dconstsqrt2. + * real.h (dconstpi): Delete. + (dconstsqrt2): New. + * builtins.c (fold_builtin_cabs): Use dconstsqrt2. + (fold_builtin_hypot): Likewise. + 2007-02-03 Tom Tromey <tromey@redhat.com> PR driver/30246 diff --git a/gcc/builtins.c b/gcc/builtins.c index b7ce1e4c5d8..b7ff78203f8 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -7158,13 +7158,12 @@ fold_builtin_cabs (tree arglist, tree type, tree fndecl) if (flag_unsafe_math_optimizations && operand_equal_p (real, imag, OEP_PURE_SAME)) { - REAL_VALUE_TYPE sqrt2; - - real_sqrt (&sqrt2, TYPE_MODE (type), &dconst2); + const REAL_VALUE_TYPE sqrt2_trunc + = real_value_truncate (TYPE_MODE (type), dconstsqrt2); STRIP_NOPS (real); return fold_build2 (MULT_EXPR, type, fold_build1 (ABS_EXPR, type, real), - build_real (type, sqrt2)); + build_real (type, sqrt2_trunc)); } } @@ -8059,12 +8058,11 @@ fold_builtin_hypot (tree fndecl, tree arglist, tree type) if (flag_unsafe_math_optimizations && operand_equal_p (arg0, arg1, OEP_PURE_SAME)) { - REAL_VALUE_TYPE sqrt2; - - real_sqrt (&sqrt2, TYPE_MODE (type), &dconst2); + const REAL_VALUE_TYPE sqrt2_trunc + = real_value_truncate (TYPE_MODE (type), dconstsqrt2); return fold_build2 (MULT_EXPR, type, fold_build1 (ABS_EXPR, type, arg0), - build_real (type, sqrt2)); + build_real (type, sqrt2_trunc)); } return NULL_TREE; diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 94381a9e16c..1faa57ffedb 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -105,7 +105,7 @@ REAL_VALUE_TYPE dconstm1; REAL_VALUE_TYPE dconstm2; REAL_VALUE_TYPE dconsthalf; REAL_VALUE_TYPE dconstthird; -REAL_VALUE_TYPE dconstpi; +REAL_VALUE_TYPE dconstsqrt2; REAL_VALUE_TYPE dconste; /* All references to the following fixed hard registers go through @@ -5154,8 +5154,8 @@ init_emit_once (int line_numbers) /* Initialize mathematical constants for constant folding builtins. These constants need to be given to at least 160 bits precision. */ - real_from_string (&dconstpi, - "3.1415926535897932384626433832795028841971693993751058209749445923078"); + real_from_string (&dconstsqrt2, + "1.4142135623730950488016887242096980785696718753769480731766797379907"); real_from_string (&dconste, "2.7182818284590452353602874713526624977572470936999595749669676277241"); diff --git a/gcc/real.h b/gcc/real.h index 81ee855dbfa..fda1095b1bc 100644 --- a/gcc/real.h +++ b/gcc/real.h @@ -387,7 +387,7 @@ extern REAL_VALUE_TYPE dconstm1; extern REAL_VALUE_TYPE dconstm2; extern REAL_VALUE_TYPE dconsthalf; extern REAL_VALUE_TYPE dconstthird; -extern REAL_VALUE_TYPE dconstpi; +extern REAL_VALUE_TYPE dconstsqrt2; extern REAL_VALUE_TYPE dconste; /* Function to return a real value (not a tree node) |