[cfe-dev] [llvm-dev] Improvements to std::find and std::count

Craig Topper via cfe-dev cfe-dev at lists.llvm.org
Mon May 1 09:15:37 PDT 2017


Adding cfe-dev. Removing llvm-dev.  Frontend and libary discussions are
better represented on that list.

~Craig

On Sat, Apr 29, 2017 at 7:13 AM, Daniel Cooke via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi,
>
> I recently posted a question on StackOverflow regarding the performance of
> std::find and std::count when provided with char* input:
> http://stackoverflow.com/questions/43483378/why-
> arent-stdcount-and-stdfind-optimised-to-use-memchr.
>
> I would propose adding overloads of these functions for char* and const
> char* inputs that delegate to memchr, something like:
>
> inline const char* find(const char* first, const char* const last, const
> char value)
> {
> const auto result = std::memchr(first, value, last - first);
> return result != nullptr ? static_cast<const char*>(result) : last;
> }
>
> inline typename std::iterator_traits<const char*>::difference_type
> count(const char* first, const char* const last, const char value)
> {
> typename std::iterator_traits<const char*>::difference_type result {0};
> while (first && first != last) {
> if ((first = static_cast<const char*>(std::memchr(first, value, last -
> first)))) {
> ++result;
> ++first;
> }
> }
> return result;
> }
>
> I’ve never contributed to LLVM, so I’m not sure how to proceed, if this is
> a change that is likely to be accepted?
>
> Best,
> Dan
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170501/3d29c517/attachment.html>


More information about the cfe-dev mailing list