[PATCH v12 10/31] string: Improve generic strcpy
Noah Goldstein
goldstein.w.n@gmail.com
Fri Feb 3 23:26:30 GMT 2023
On Thu, Feb 2, 2023 at 12:12 PM Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
> Now that stpcpy is vectorized based on op_t, it should be better to
> call it instead of strlen plus memcpy.
>
> Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64-linux-gnu,
> and powerpc-linux-gnu by removing the arch-specific assembly
> implementation and disabling multi-arch (it covers both LE and BE
> for 64 and 32 bits).
>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> string/strcpy.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/string/strcpy.c b/string/strcpy.c
> index 0345c71d15..d945d8fdf0 100644
> --- a/string/strcpy.c
> +++ b/string/strcpy.c
> @@ -19,6 +19,9 @@
> #include <string.h>
>
> #undef strcpy
> +/* Disable internal stpcpy optimization, otherwise the __stpcpy might it
> + generate a strcpy call. */
> +#undef __stpcpy
>
> #ifndef STRCPY
> # define STRCPY strcpy
> @@ -28,6 +31,7 @@
> char *
> STRCPY (char *dest, const char *src)
> {
> - return memcpy (dest, src, strlen (src) + 1);
> + __stpcpy (dest, src);
> + return dest;
> }
> libc_hidden_builtin_def (strcpy)
> --
> 2.34.1
>
LGTM.
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
More information about the Libc-alpha
mailing list