[PATCH] c++: implement C++17 hardware interference size
Jonathan Wakely
jwakely.gcc@gmail.com
Fri Jul 16 13:26:42 GMT 2021
On Fri, 16 Jul 2021 at 03:42, Jason Merrill via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
> > diff --git a/libstdc++-v3/include/std/version
> > b/libstdc++-v3/include/std/version
> > index 27bcd32cb60..d5e155db48b 100644
> > --- a/libstdc++-v3/include/std/version
> > +++ b/libstdc++-v3/include/std/version
> > @@ -140,6 +140,9 @@
> > #define __cpp_lib_filesystem 201703
> > #define __cpp_lib_gcd 201606
> > #define __cpp_lib_gcd_lcm 201606
> > +#ifdef __GCC_DESTRUCTIVE_SIZE
> > +# define __cpp_lib_hardware_interference_size 201703L
> > +#endif
> > #define __cpp_lib_hypot 201603
> > #define __cpp_lib_invoke 201411L
> > #define __cpp_lib_lcm 201606
> > diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new
> > index 3349b13fd1b..7bc67a6cb02 100644
> > --- a/libstdc++-v3/libsupc++/new
> > +++ b/libstdc++-v3/libsupc++/new
> > @@ -183,9 +183,9 @@ inline void operator delete[](void*, void*)
> > _GLIBCXX_USE_NOEXCEPT { }
> > } // extern "C++"
> >
> > #if __cplusplus >= 201703L
> > -#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER
> > namespace std
> > {
> > +#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER
> > #define __cpp_lib_launder 201606
> > /// Pointer optimization barrier [ptr.launder]
> > template<typename _Tp>
> > @@ -205,8 +205,14 @@ namespace std
> > void launder(const void*) = delete;
> > void launder(volatile void*) = delete;
> > void launder(const volatile void*) = delete;
> > -}
> > #endif // _GLIBCXX_HAVE_BUILTIN_LAUNDER
> > +
> > +#ifdef __GCC_DESTRUCTIVE_SIZE
> > +# define __cpp_lib_hardware_interference_size 201703L
> > + inline constexpr size_t hardware_destructive_interference_size =
> > __GCC_DESTRUCTIVE_SIZE;
> > + inline constexpr size_t hardware_constructive_interference_size =
> > __GCC_CONSTRUCTIVE_SIZE;
> > +#endif // __GCC_DESTRUCTIVE_SIZE
> > +}
> > #endif // C++17
> >
> > #if __cplusplus > 201703L
Putting aside my dislike of the entire feature, the libstdc++ parts
are fine, thanks.
More information about the Libstdc++
mailing list