On Tue, May 28, 2019 at 04:44:52AM +0200, Marek Vasut wrote: > On 5/28/19 4:42 AM, Tom Rini wrote: > > On Tue, May 28, 2019 at 04:07:44AM +0200, Marek Vasut wrote: > >> On 5/28/19 4:06 AM, Tom Rini wrote: > >>> On Tue, May 28, 2019 at 03:49:13AM +0200, Marek Vasut wrote: > >>> > >>>> If the source and destination buffer address is identical, there is > >>>> no need to memcpy() the content. Skip the memcpy() in such a case. > >>>> > >>>> Signed-off-by: Marek Vasut <[email protected]> > >>>> Cc: Michal Simek <[email protected]> > >>>> Cc: Tom Rini <[email protected]> > >>> > >>> Shouldn't memcpy catch that itself? > >>> > >> memcpy(3) says > >> The memcpy() function copies n bytes from memory area src to > >> memory area dest. The memory areas must not overlap. Use memmove(3) if > >> the memory areas do overlap. > > > > OK, and shouldn't memcpy optimize that case? Does it usually? > > As the manpage says "The memory areas must not overlap." , I would > expect it does not have to ?
I guess I'm not being clear enough, sorry. Go look at how this is implemented in a few places please and report back to us. Someone else, or many someone else, have probably already figured out if optimizing this case in general, in memcpy, is a good idea or not. Thanks! -- Tom
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

