[PATCH 0/2] Optimize is_scoped_enum trait performance

Ken Matsui kmatsui@gcc.gnu.org
Tue Sep 12 00:16:04 GMT 2023


This patch series optimizes is_scoped_enum trait
performance. The first patch implements __is_scoped_enum
built-in trait. The second patch optimizes is_scoped_enum
trait performance by using __is_scoped_enum built-in trait
if available.

The performance improvement is shown in the following benchmark:

https://github.com/ken-matsui/gsoc23/blob/main/is_scoped_enum_v.md#mon-sep-11-050411-pm-pdt-2023

Time: -32.717% +/- 1.67315%
Peak Memory Usage: -17.3805% +/- 0.00931763%
Total Memory Usage: -19.0881% +/- 0%

Ken Matsui (2):
  c++: Implement __is_scoped_enum built-in trait
  libstdc++: Optimize is_scoped_enum trait performance

 gcc/cp/constraint.cc                      |  3 +
 gcc/cp/cp-trait.def                       |  1 +
 gcc/cp/semantics.cc                       |  4 ++
 gcc/testsuite/g++.dg/ext/has-builtin-1.C  |  3 +
 gcc/testsuite/g++.dg/ext/is_scoped_enum.C | 67 +++++++++++++++++++++++
 libstdc++-v3/include/std/type_traits      | 12 ++++
 6 files changed, 90 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/ext/is_scoped_enum.C

-- 
2.42.0



More information about the Libstdc++ mailing list