From 78bd5210e7d719cf462c189681f3037d63b14c76 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Wed, 19 Feb 2003 03:39:30 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/convert.c | 24 +++++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07ba9970bc5..8e5b2976a06 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-02-18 Roger Sayle + + * 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 * config/sh/sh.c (unspec_caller_rtx_p): New. diff --git a/gcc/convert.c b/gcc/convert.c index 73db933b97e..4ac23a7f44c 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))) { -- 2.30.2