re PR middle-end/27567 (__builtin_memcpy generates redundant stores/moves.)
authorJakub Jelinek <jakub@redhat.com>
Sat, 2 Sep 2006 06:55:09 +0000 (08:55 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 2 Sep 2006 06:55:09 +0000 (08:55 +0200)
commitbc038ad518596730e2962addeaa732b7696d458a
tree02d19035fad0f716f04cc6b84482344c5a902c7a
parent07515729e96d9c36052b6894c3c49afa8a2582b7
re PR middle-end/27567 (__builtin_memcpy generates redundant stores/moves.)

PR middle-end/27567
* builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
(fold_builtin_mempcpy): Rename to...
(fold_builtin_memory_op): ... this.  Optimize one element copy
into an assignment.
(fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
functions.
(expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
(expand_builtin_memcpy, expand_builtin_mempcpy,
expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
(fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
BUILT_IN_MEM{CPY,PCPY,MOVE}.

From-SVN: r116656
gcc/ChangeLog
gcc/builtins.c