OSDN Git Service

* builtins.c (expand_builtin_memset, expand_builtin_memcpy,
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Dec 2001 00:43:51 +0000 (00:43 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Dec 2001 00:43:51 +0000 (00:43 +0000)
commit6f428e8ba056d4e204ce41d5899948abac35d591
treed40d346c1448d1fbceadd76b947d2bb4312a9c5f
parentbe2c3b69d292eca00359ab6454cf96309175d471
    * builtins.c (expand_builtin_memset, expand_builtin_memcpy,
        expand_builtin_strcpy): Additional arguments TARGET and MODE.
        (expand_builtin_bzero, expand_builtin_strcpy,
        expand_builtin_strncpy, expand_builtin_bzero): Pass additional
        TARGET and MODE parameters to the above functions.
        (expand_builtin_memset, expand_builtin_memcpy): Optimize the
        case where the LEN parameter is constant zero.
        (expand_builtin_memcmp): No longer conditional on
        HAVE_cmpstrsi.  Take an additional mode parameter.  Optimize
        the cases where len is either constant zero or one.
        Optimize to call to memcpy, even if the memcpy isn't inlined.
        (expand_builtin_strncpy): Optimize to call memcpy, even if the
        memcpy isn't inlined.
        (expand_builtin_strcmp, expand_builtin_strncmp): Always attempt
        to optimize to a call to memcmp.
        (expand_builtin): expand_builtin_memcmp can always be called,
        and pass the required parameters to expand_builtin_memcmp,
        expand_builtin_memset, expand_builtin_memcpy and
        expand_builtin_strcpy.

        * gcc.c-torture/execute/string-opt-14.c: New test case.
        * gcc.c-torture/execute/string-opt-15.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47960 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/testsuite/gcc.c-torture/execute/string-opt-14.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/string-opt-15.c [new file with mode: 0644]