diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-02-19 03:39:30 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-02-19 03:39:30 +0000 |
commit | 78bd5210e7d719cf462c189681f3037d63b14c76 (patch) | |
tree | 741e6c5858ede0c113657002a0e38326d9827c12 /gcc | |
parent | 34fcb7c802299a46d61b7ac7fc03bd80fe307cd7 (diff) | |
download | gcc-78bd5210e7d719cf462c189681f3037d63b14c76.zip gcc-78bd5210e7d719cf462c189681f3037d63b14c76.tar.gz gcc-78bd5210e7d719cf462c189681f3037d63b14c76.tar.bz2 |
convert.c (convert_to_real): Also optimize (float)log(x) into logf(x) where x is a float, i.e.
* convert.c (convert_to_real): Also optimize (float)log(x) into
logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
From-SVN: r63087
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/convert.c | 24 |
2 files changed, 18 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07ba997..8e5b297 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-02-18 Roger Sayle <roger@eyesopen.com> + + * convert.c (convert_to_real): Also optimize (float)log(x) into + logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}. + 2003-02-18 Kaz Kojima <kkojima@gcc.gnu.org> * config/sh/sh.c (unspec_caller_rtx_p): New. diff --git a/gcc/convert.c b/gcc/convert.c index 73db933..4ac23a7 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -1,6 +1,6 @@ /* Utility routines for data type conversion for GNU C. - Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1997, - 1998 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1997, 1998, + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GCC. @@ -133,15 +133,17 @@ convert_to_real (type, expr) /* Disable until we figure out how to decide whether the functions are present in runtime. */ /* Convert (float)sqrt((double)x) where x is float into sqrtf(x) */ - if ((fcode == BUILT_IN_SQRT - || fcode == BUILT_IN_SQRTL - || fcode == BUILT_IN_SIN - || fcode == BUILT_IN_SINL - || fcode == BUILT_IN_COS - || fcode == BUILT_IN_COSL - || fcode == BUILT_IN_EXP - || fcode == BUILT_IN_EXPL) - && optimize + if (optimize + && (fcode == BUILT_IN_SQRT + || fcode == BUILT_IN_SQRTL + || fcode == BUILT_IN_SIN + || fcode == BUILT_IN_SINL + || fcode == BUILT_IN_COS + || fcode == BUILT_IN_COSL + || fcode == BUILT_IN_EXP + || fcode == BUILT_IN_EXPL + || fcode == BUILT_IN_LOG + || fcode == BUILT_IN_LOGL) && (TYPE_MODE (type) == TYPE_MODE (double_type_node) || TYPE_MODE (type) == TYPE_MODE (float_type_node))) { |