This patch series optimizes is_member_object_pointer trait performance. The first patch implements __is_member_object_pointer built-in trait. The second patch optimizes is_member_object_pointer trait performance by using __is_member_object_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_object_pointer_v.md#tue-sep-12-122433-am-pdt-2023 Time: -48.6199% +/- 2.7422% Peak Memory Usage: -39.3192% +/- 0.00457374% Total Memory Usage: -41.8478% +/- 0% Ken Matsui (2): c++: Implement __is_member_object_pointer built-in trait libstdc++: Optimize is_member_object_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_object_pointer.C | 30 +++++++++++++++++++ libstdc++-v3/include/std/type_traits | 18 ++++++++++- 6 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/ext/is_member_object_pointer.C -- 2.42.0