diff options
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 709999545c3..74c6d06f6ae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,55 @@ +2009-09-28 Michael Matz <matz@suse.de> + + * builtins.c (interclass_mathfn_icode): New helper. + (expand_builtin_interclass_mathfn): Use it here, and split folding + into ... + (fold_builtin_interclass_mathfn): ... this new folder. + (build_call_nofold_loc): New static helper. + (build_call_nofold): New wrapper macro for above. + (expand_builtin_int_roundingfn): Use it instead of build_call_expr. + (expand_builtin_pow): Ditto. + (expand_builtin_memset_args): Ditto. + (expand_builtin_printf): Ditto. + (expand_builtin_fprintf): Ditto. + (expand_builtin_sprintf): Ditto. + (expand_builtin_memory_chk): Ditto. + (expand_builtin_mempcpy_args): Ditto and don't call folders. + (expand_builtin_stpcpy): Ditto. + (expand_builtin_strcmp): Ditto. + (expand_builtin_strncmp): Ditto. + (expand_builtin_strcpy): Remove FNDECL and MODE arguments. + (expand_builtin_strcpy_args): Don't call folders. + (expand_builtin_memcmp): Ditto. + (expand_builtin_strncpy): Ditto, and use target. + (expand_builtin_memcpy): Ditto. + (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr, + expand_builtin_strpbrk, expand_builtin_memmove, + expand_builtin_memmove_args, expand_builtin_bcopy, + expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat, + expand_builtin_strspn, expand_builtin_strcspn, + expand_builtin_fputs): Remove these. + (expand_builtin): Don't call the above, change calls to other + expanders that changed prototype. + (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy. + (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call + fold_builtin_interclass_mathfn. + (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy. + (fold_builtin_strcat): Add folding split from expand_builtin_strcat. + + * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp. + * passes.c (init_optimization_passes): Move pass_fold_builtins + after last phiopt pass. + * tree-inline.c (fold_marked_statements): When folding builtins + iterate over all instruction potentially generated. + * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare + earlier. + (fold_gimple_call): Use it to always fold calls (into potentially + multiple instructions). + * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p + calls into zero at this time. + * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple + statements generated by builtin folding. + 2009-09-28 Nick Clifton <nickc@redhat.com> * config/m32r/m32r.c (m32r_is_insn): Return false for debugging |