This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rename logb and significand folds


On Mon, Oct 26, 2015 at 11:05 AM, Richard Sandiford
<richard.sandiford@arm.com> wrote:
> fold_builtin_logb and fold_builtin_significand now only handle
> constant arguments, so this patch renames them to fold_const...,
> to match fold_const_builtin_pow.  The idea is to differentiate
> constant-only folds so that they can be moved to a const_binop-like
> function in future.
>
> The functions also had some unnecessary calls to STRIP_NOPS, which
> I think are left over from code that has already moved to match.pd.
>
> Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
> OK to install?

Ok.

Thanks,
Richard.

> Thanks,
> Richard
>
>
> gcc/
>         * builtins.c (fold_builtin_logb): Rename to...
>         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
>         (fold_builtin_significand): Rename to...
>         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
>         (fold_builtin_1): Update accordingly.
>
> diff --git a/gcc/builtins.c b/gcc/builtins.c
> index 86eac5c..260b66d 100644
> --- a/gcc/builtins.c
> +++ b/gcc/builtins.c
> @@ -7916,13 +7916,11 @@ fold_builtin_carg (location_t loc, tree arg, tree type)
>  /* Fold a call to builtin logb/ilogb.  */
>
>  static tree
> -fold_builtin_logb (location_t loc, tree arg, tree rettype)
> +fold_const_builtin_logb (location_t loc, tree arg, tree rettype)
>  {
>    if (! validate_arg (arg, REAL_TYPE))
>      return NULL_TREE;
>
> -  STRIP_NOPS (arg);
> -
>    if (TREE_CODE (arg) == REAL_CST && ! TREE_OVERFLOW (arg))
>      {
>        const REAL_VALUE_TYPE *const value = TREE_REAL_CST_PTR (arg);
> @@ -7967,13 +7965,11 @@ fold_builtin_logb (location_t loc, tree arg, tree rettype)
>  /* Fold a call to builtin significand, if radix == 2.  */
>
>  static tree
> -fold_builtin_significand (location_t loc, tree arg, tree rettype)
> +fold_const_builtin_significand (location_t loc, tree arg, tree rettype)
>  {
>    if (! validate_arg (arg, REAL_TYPE))
>      return NULL_TREE;
>
> -  STRIP_NOPS (arg);
> -
>    if (TREE_CODE (arg) == REAL_CST && ! TREE_OVERFLOW (arg))
>      {
>        const REAL_VALUE_TYPE *const value = TREE_REAL_CST_PTR (arg);
> @@ -9002,11 +8998,11 @@ fold_builtin_1 (location_t loc, tree fndecl, tree arg0)
>        break;
>
>      CASE_FLT_FN (BUILT_IN_SIGNIFICAND):
> -      return fold_builtin_significand (loc, arg0, type);
> +      return fold_const_builtin_significand (loc, arg0, type);
>
>      CASE_FLT_FN (BUILT_IN_ILOGB):
>      CASE_FLT_FN (BUILT_IN_LOGB):
> -      return fold_builtin_logb (loc, arg0, type);
> +      return fold_const_builtin_logb (loc, arg0, type);
>
>      case BUILT_IN_ISASCII:
>        return fold_builtin_isascii (loc, arg0);
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]