[PATCH] D22725: [clang-tidy] Add check 'misc-replace-memcpy'

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Sat Jul 23 10:38:58 PDT 2016


aaron.ballman added a comment.

In https://reviews.llvm.org/D22725#493942, @JDevlieghere wrote:

> In https://reviews.llvm.org/D22725#493940, @aaron.ballman wrote:
>
> > > Using std::copy opens up the possibility of type-aware optimizations which are not possible with memcpy.
> >
> >
> > To my knowledge, those type-aware optimizations are for transforming copies involving trivially-copyable types into calls to memcpy(). What other optimizations does this check enable?
>
>
> I might be mistaken, but I understood that a call to std::copy (whether or not specialized for certain types) might get inlined, while a call to memcpy is typically not.


The optimizer can be quite smart about memcpy(). For instance: https://godbolt.org/g/INfHWE

If we know of specific cases where std::memcpy() is used, but std::copy() will provide better performance metrics, that would be really interesting to know.


Repository:
  rL LLVM

https://reviews.llvm.org/D22725





More information about the cfe-commits mailing list