[0/2] Optimize is_scoped_enum trait performance

Message ID 20230912001756.87388-1-kmatsui@gcc.gnu.org
Headers
Series Optimize is_scoped_enum trait performance |

Message

Ken Matsui Sept. 12, 2023, 12:16 a.m. UTC
  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