gchatelet added inline comments.

================
Comment at: clang/include/clang/Basic/Builtins.def:489
 BUILTIN(__builtin_memcpy_inline, "vv*vC*Iz", "nt")
+BUILTIN(__builtin_overloaded_memcpy, "v*v*vC*z", "nt")
 BUILTIN(__builtin_memmove, "v*v*vC*z", "nF")
----------------
jfb wrote:
> gchatelet wrote:
> > `overloaded` doesn't bring much semantic (says the one who added 
> > `__builtin_memcpy_inline`...). Can you come up with something that 
> > describes more precisely what the intends are?
> > 
> > Also `memset`, `memcmp`, `memcpy`, `memmove` will have their `inline` and 
> > `overloaded` versions. This is becoming a crowded space. It may be 
> > confusing in the long run. If we want to go in that direction maybe we 
> > should come up with a consistent pattern: `__builtin_<memfun>_<feature>`. 
> > WDYT?
> Flipping it around is fine with me, see update (done with `sed`).
> 
> What's your approach on choosing what gets an `inline` variant and what 
> doesn't? `memcmp` is easy to add, but I wonder how far it's useful to go... I 
> can just wait for requests as well (as I imagine you're doing?).
I don't see `memmove_inline` being useful but memset and memcmp would make 
sense to add as building blocks for C++ implementations (e.g. [[ 
https://github.com/llvm/llvm-project/blob/master/libc/src/string/memcpy.cpp | 
libc memcpy ]])

As for this new addition, how about `__builtin_memcpy_honor_qualifiers`?
I fear that `__builtin_memcpy_overloaded` is too ambiguous.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79279/new/

https://reviews.llvm.org/D79279



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to