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

The performance improvement is shown in the following benchmark:

https://github.com/ken-matsui/gsoc23/blob/main/is_member_function_pointer_v.md#mon-sep-11-095601-am-pdt-2023

Time: -35.1125%
Peak Memory Usage: -25.783%
Total Memory Usage: -27.9437%

Sincerely,
Ken Matsui

Ken Matsui (2):
  c++: Implement __is_member_function_pointer built-in trait
  libstdc++: Optimize is_member_function_pointer 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 ++
 .../g++.dg/ext/is_member_function_pointer.C   | 31 +++++++++++++++++++
 libstdc++-v3/include/std/type_traits          | 16 ++++++++++
 6 files changed, 58 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/ext/is_member_function_pointer.C

-- 
2.42.0

Reply via email to