diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/builtins.c | 12 |
2 files changed, 12 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4e1018..8711203 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> + * 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. + +2015-10-27 Richard Sandiford <richard.sandiford@arm.com> + * builtins.c (fold_builtin_fmin_fmax): Delete. (fold_builtin_2): Handle constant fmin and fmax arguments here. * match.pd: Add rules previously handled by fold_builtin_fmin_fmax. 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); |