]> git.ipfire.org Git - thirdparty/gcc.git/commit
builtins.c (expand_builtin_memcpy): Remove endp argument and endp != 0 handling.
authorJakub Jelinek <jakub@redhat.com>
Tue, 3 Jun 2003 08:57:55 +0000 (10:57 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 3 Jun 2003 08:57:55 +0000 (10:57 +0200)
commit8fd3cf4e17c97036b4f9cecbe2f438a2da920351
tree969f8e454fe8799c43c000ed725898b0593270ff
parentcc6a602b278d597095052e6de06f02d65b315a03
builtins.c (expand_builtin_memcpy): Remove endp argument and endp != 0 handling.

* builtins.c (expand_builtin_memcpy): Remove endp argument and endp
!= 0 handling.  Pass 0 to store_by_pieces.
(expand_builtin_mempcpy): Add endp argument.  Don't call
expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
directly.  If ignoring result, only do expand_call.
(expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
otherwise.
(expand_builtin_strncpy, expand_builtin_memset): Adjust
store_by_pices callers.
(expand_builtin): Adjust expand_builtin_memcpy and
expand_builtin_mempcpy callers.
* expr.c (can_move_by_pieces): New function.
(move_by_pieces): Add endp argument, return to resp. memory at end
or one byte earlier depending on endp.
(store_by_pieces): Likewise.
(emit_block_move): Adjust call to move_by_pieces.
(emit_push_insn): Adjust move_by_pieces caller.
* expr.h (can_move_by_pieces): New prototype.
(store_by_pieces): Adjust prototypes.
* rtl.h (move_by_pieces): Adjust prototype.
* config/mips/mips.c (expand_block_move): Adjust move_by_pieces
caller.

* gcc.c-torture/execute/builtins/string-4.c (main_test): Remove
mempcpy test with post-increments.
* gcc.c-torture/execute/string-opt-3.c: New test.
* gcc.dg/string-opt-1.c: New test.

From-SVN: r67358
gcc/ChangeLog
gcc/builtins.c
gcc/config/mips/mips.c
gcc/expr.c
gcc/expr.h
gcc/rtl.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/builtins/string-4.c
gcc/testsuite/gcc.c-torture/execute/string-opt-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/string-opt-1.c [new file with mode: 0644]