Message ID | 549802E5.2010702@arm.com |
---|---|
State | New |
Headers | show |
On 22-12-2014 09:39, Richard Earnshaw wrote: > I noticed while going through some benchmark results that the generic > stpcpy was substantially slower than the simple_stpcpy in the benchmark > itself. > > So, similar to Wilko's recent strcpy patch, this patch uses the same > approach for stpcpy. > > Note that it does not help to use mempcpy, since that returns a value > that points beyond the end of the copied data. > > OK? > > * string/stpcpy.c (__stpcpy): Rewrite using strlen and memcpy. > LGTM.
On 12/22/2014 06:39 AM, Richard Earnshaw wrote: > I noticed while going through some benchmark results that the generic > stpcpy was substantially slower than the simple_stpcpy in the benchmark > itself. > > So, similar to Wilko's recent strcpy patch, this patch uses the same > approach for stpcpy. > > Note that it does not help to use mempcpy, since that returns a value > that points beyond the end of the copied data. > > OK? > > * string/stpcpy.c (__stpcpy): Rewrite using strlen and memcpy. > Please check this in. Thanks for making the generic routines faster. They will all soon depend on a fast memcpy, but that's almost expected. Cheers, Carlos.
On 23/12/14 15:49, Carlos O'Donell wrote: > On 12/22/2014 06:39 AM, Richard Earnshaw wrote: >> I noticed while going through some benchmark results that the generic >> stpcpy was substantially slower than the simple_stpcpy in the benchmark >> itself. >> >> So, similar to Wilko's recent strcpy patch, this patch uses the same >> approach for stpcpy. >> >> Note that it does not help to use mempcpy, since that returns a value >> that points beyond the end of the copied data. >> >> OK? >> >> * string/stpcpy.c (__stpcpy): Rewrite using strlen and memcpy. >> > > Please check this in. Thanks for making the generic routines faster. > They will all soon depend on a fast memcpy, but that's almost expected. > > Cheers, > Carlos. > I currently don't have a commit bit, so could someone do this for me please? If it's OK, I'll sort out commit bits in the new year, when I'm back from vacation. R.
Richard Earnshaw wrote:
> I currently don't have a commit bit, so could someone do this for me please?
Done, and thanks.
diff --git a/string/stpcpy.c b/string/stpcpy.c index 9185acc..fd6eb1c 100644 --- a/string/stpcpy.c +++ b/string/stpcpy.c @@ -35,14 +35,8 @@ __stpcpy (dest, src) char *dest; const char *src; { - char *d = dest; - const char *s = src; - - do - *d++ = *s; - while (*s++ != '\0'); - - return d - 1; + size_t len = strlen (src); + return memcpy (dest, src, len + 1) + len; } #ifdef libc_hidden_def libc_hidden_def (__stpcpy)