Message ID | 20240511090130.248174-10-kmatsui@gcc.gnu.org |
---|---|
State | New |
Headers | show |
Series | [v26,01/13] libstdc++: Optimize std::is_const compilation performance | expand |
On 11/05/24 02:01 -0700, Ken Matsui wrote: >This patch optimizes the compilation performance of std::decay >by dispatching to the new __decay built-in trait. OK, thanks. >libstdc++-v3/ChangeLog: > > * include/std/type_traits (decay): Use __decay built-in trait. > >Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org> >--- > libstdc++-v3/include/std/type_traits | 6 ++++++ > 1 file changed, 6 insertions(+) > >diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits >index 824cad90a25..4cc587d4e08 100644 >--- a/libstdc++-v3/include/std/type_traits >+++ b/libstdc++-v3/include/std/type_traits >@@ -2316,6 +2316,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > /// @cond undocumented > >+#if _GLIBCXX_USE_BUILTIN_TRAIT(__decay) >+ template<typename _Tp> >+ struct decay >+ { using type = __decay(_Tp); }; >+#else > // Decay trait for arrays and functions, used for perfect forwarding > // in make_pair, make_tuple, etc. > template<typename _Up> >@@ -2347,6 +2352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > template<typename _Tp> > struct decay<_Tp&&> > { using type = typename __decay_selector<_Tp>::type; }; >+#endif > > /// @cond undocumented > >-- >2.44.0 >
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 824cad90a25..4cc587d4e08 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -2316,6 +2316,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @cond undocumented +#if _GLIBCXX_USE_BUILTIN_TRAIT(__decay) + template<typename _Tp> + struct decay + { using type = __decay(_Tp); }; +#else // Decay trait for arrays and functions, used for perfect forwarding // in make_pair, make_tuple, etc. template<typename _Up> @@ -2347,6 +2352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp> struct decay<_Tp&&> { using type = typename __decay_selector<_Tp>::type; }; +#endif /// @cond undocumented
This patch optimizes the compilation performance of std::decay by dispatching to the new __decay built-in trait. libstdc++-v3/ChangeLog: * include/std/type_traits (decay): Use __decay built-in trait. Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org> --- libstdc++-v3/include/std/type_traits | 6 ++++++ 1 file changed, 6 insertions(+)