libstdc++: Use memset to optimize std::bitset::set() [PR113807]
As pointed out in the PR we already do this for reset(). libstdc++-v3/ChangeLog: PR libstdc++/113807 * include/std/bitset (bitset::set()): Use memset instead of a loop over the individual words.
This commit is contained in:
parent
4d819db7f2
commit
e7ae13a858
1 changed files with 9 additions and 2 deletions
|
@ -177,8 +177,15 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
|
|||
_GLIBCXX14_CONSTEXPR void
|
||||
_M_do_set() _GLIBCXX_NOEXCEPT
|
||||
{
|
||||
for (size_t __i = 0; __i < _Nw; __i++)
|
||||
_M_w[__i] = ~static_cast<_WordT>(0);
|
||||
#if __cplusplus >= 201402L
|
||||
if (__builtin_is_constant_evaluated())
|
||||
{
|
||||
for (_WordT& __w : _M_w)
|
||||
__w = ~static_cast<_WordT>(0);;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
__builtin_memset(_M_w, 0xFF, _Nw * sizeof(_WordT));
|
||||
}
|
||||
|
||||
_GLIBCXX14_CONSTEXPR void
|
||||
|
|
Loading…
Add table
Reference in a new issue