From: Ken Matsui <kmatsui@gcc.gnu.org>
To: gcc-patches@gcc.gnu.org
Cc: libstdc++@gcc.gnu.org, Ken Matsui <kmatsui@gcc.gnu.org>
Subject: [PATCH v16 02/39] c-family, c++: Look up built-in traits through gperf
Date: Tue, 10 Oct 2023 15:09:53 -0700 [thread overview]
Message-ID: <20231010221520.3680267-3-kmatsui@gcc.gnu.org> (raw)
In-Reply-To: <20231010221520.3680267-1-kmatsui@gcc.gnu.org>
Since RID_MAX soon reaches 255 and all traits are used approximately once in
a C++ translation unit, this patch instead uses only RID_TRAIT_EXPR and
RID_TRAIT_TYPE for all traits and uses gperf to look up the specific trait.
gcc/c-family/ChangeLog:
* c-common.cc (c_common_reswords): Map all traits to RID_TRAIT_EXPR
and RID_TRAIT_TYPE instead.
* c-common.h (enum rid): Remove all existing RID values for traits.
Use RID_TRAIT_EXPR and RID_TRAIT_TYPE instead.
gcc/cp/ChangeLog:
* Make-lang.in: Add targets to generate cp-trait.gperf and
cp-trait.h.
* cp-objcp-common.cc (names_builtin_p): Remove all existing RID values
for traits. Use RID_TRAIT_EXPR and RID_TRAIT_TYPE instead.
* parser.cc (cp_keyword_starts_decl_specifier_p): Likewise, for
type-yielding traits. Use RID_TRAIT_TYPE instead.
(cp_parser_simple_type_specifier): Likewise.
(cp_parser_primary_expression): Likewise, for expression-yielding
traits. Use RID_TRAIT_EXPR instead.
(cp_parser_trait): Look up traits through gperf instead of enum rid.
* cp-trait-head.in: New file.
* cp-trait.gperf: New file.
* cp-trait.h: New file.
Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org>
---
gcc/c-family/c-common.cc | 12 +-
gcc/c-family/c-common.h | 7 +-
gcc/cp/Make-lang.in | 24 ++++
gcc/cp/cp-objcp-common.cc | 6 +-
gcc/cp/cp-trait-head.in | 30 +++++
gcc/cp/cp-trait.gperf | 74 ++++++++++++
gcc/cp/cp-trait.h | 247 ++++++++++++++++++++++++++++++++++++++
gcc/cp/parser.cc | 70 ++++-------
8 files changed, 412 insertions(+), 58 deletions(-)
create mode 100644 gcc/cp/cp-trait-head.in
create mode 100644 gcc/cp/cp-trait.gperf
create mode 100644 gcc/cp/cp-trait.h
diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc
index f044db5b797..f219ccd29e5 100644
--- a/gcc/c-family/c-common.cc
+++ b/gcc/c-family/c-common.cc
@@ -508,12 +508,16 @@ const struct c_common_resword c_common_reswords[] =
{ "wchar_t", RID_WCHAR, D_CXXONLY },
{ "while", RID_WHILE, 0 },
-#define DEFTRAIT(TCC, CODE, NAME, ARITY) \
- { NAME, RID_##CODE, D_CXXONLY },
+#define DEFTRAIT_EXPR(CODE, NAME, ARITY) \
+ { NAME, RID_TRAIT_EXPR, D_CXXONLY },
#include "cp/cp-trait.def"
-#undef DEFTRAIT
+#undef DEFTRAIT_EXPR
/* An alias for __is_same. */
- { "__is_same_as", RID_IS_SAME, D_CXXONLY },
+ { "__is_same_as", RID_TRAIT_EXPR, D_CXXONLY },
+#define DEFTRAIT_TYPE(CODE, NAME, ARITY) \
+ { NAME, RID_TRAIT_TYPE, D_CXXONLY },
+#include "cp/cp-trait.def"
+#undef DEFTRAIT_TYPE
/* C++ transactional memory. */
{ "synchronized", RID_SYNCHRONIZED, D_CXX_OBJC | D_TRANSMEM },
diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
index 1fdba7ef3ea..a1a641f4175 100644
--- a/gcc/c-family/c-common.h
+++ b/gcc/c-family/c-common.h
@@ -168,10 +168,9 @@ enum rid
RID_BUILTIN_LAUNDER,
RID_BUILTIN_BIT_CAST,
-#define DEFTRAIT(TCC, CODE, NAME, ARITY) \
- RID_##CODE,
-#include "cp/cp-trait.def"
-#undef DEFTRAIT
+ /* C++ traits, defined in cp-trait.def. */
+ RID_TRAIT_EXPR,
+ RID_TRAIT_TYPE,
/* C++11 */
RID_CONSTEXPR, RID_DECLTYPE, RID_NOEXCEPT, RID_NULLPTR, RID_STATIC_ASSERT,
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 2727fb7f8cc..8d4e3a1f594 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -34,6 +34,8 @@
# - the compiler proper (eg: cc1plus)
# - define the names for selecting the language in LANGUAGES.
+AWK = @AWK@
+
# Actual names to use when installing a native compiler.
CXX_INSTALL_NAME := $(shell echo c++|sed '$(program_transform_name)')
GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
@@ -186,6 +188,28 @@ endif
# This is the file that depends on the generated header file.
cp/name-lookup.o: $(srcdir)/cp/std-name-hint.h
+# We always need the dependency on the .gperf file because it itself is generated.
+ifeq ($(ENABLE_MAINTAINER_RULES), true)
+$(srcdir)/cp/cp-trait.h: $(srcdir)/cp/cp-trait.gperf
+else
+$(srcdir)/cp/cp-trait.h: | $(srcdir)/cp/cp-trait.gperf
+endif
+ gperf -o -C -E -k '8' -D -N 'find' -L C++ \
+ $(srcdir)/cp/cp-trait.gperf --output-file $(srcdir)/cp/cp-trait.h
+
+# The cp-trait.gperf file itself is generated from a cp-trait.def file.
+$(srcdir)/cp/cp-trait.gperf: $(srcdir)/cp/cp-trait.def $(srcdir)/cp/cp-trait-head.in
+ cat $(srcdir)/cp/cp-trait-head.in > $@
+ $(AWK) -F', *' '/^DEFTRAIT_/ { \
+ type = (index($$1, "DEFTRAIT_TYPE") != 0 ? "true" : "false"); \
+ gsub(/DEFTRAIT_(EXPR|TYPE) \(/, "", $$1); \
+ gsub(/\)/, "", $$3); \
+ print $$2", CPTK_" $$1", "$$3", "type; \
+ }' $(srcdir)/cp/cp-trait.def >> $@
+
+# This is the file that depends on the generated header file.
+cp/parser.o: $(srcdir)/cp/cp-trait.h
+
components_in_prev = "bfd opcodes binutils fixincludes gas gcc gmp mpfr mpc isl gold intl ld libbacktrace libcpp libcody libdecnumber libiberty libiberty-linker-plugin libiconv zlib lto-plugin libctf libsframe"
components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
diff --git a/gcc/cp/cp-objcp-common.cc b/gcc/cp/cp-objcp-common.cc
index 93b027b80ce..c414d8f5a13 100644
--- a/gcc/cp/cp-objcp-common.cc
+++ b/gcc/cp/cp-objcp-common.cc
@@ -434,10 +434,8 @@ names_builtin_p (const char *name)
case RID_BUILTIN_ASSOC_BARRIER:
case RID_BUILTIN_BIT_CAST:
case RID_OFFSETOF:
-#define DEFTRAIT(TCC, CODE, NAME, ARITY) \
- case RID_##CODE:
-#include "cp-trait.def"
-#undef DEFTRAIT
+ case RID_TRAIT_EXPR:
+ case RID_TRAIT_TYPE:
return true;
default:
break;
diff --git a/gcc/cp/cp-trait-head.in b/gcc/cp/cp-trait-head.in
new file mode 100644
index 00000000000..9357eea1238
--- /dev/null
+++ b/gcc/cp/cp-trait-head.in
@@ -0,0 +1,30 @@
+%language=C++
+%define class-name cp_trait_lookup
+%struct-type
+%{
+/* Copyright (C) 2023 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+%}
+struct cp_trait {
+ const char *name;
+ enum cp_trait_kind kind;
+ short arity;
+ bool type;
+};
+%%
+"__is_same_as", CPTK_IS_SAME, 2, false
diff --git a/gcc/cp/cp-trait.gperf b/gcc/cp/cp-trait.gperf
new file mode 100644
index 00000000000..47e3c1af499
--- /dev/null
+++ b/gcc/cp/cp-trait.gperf
@@ -0,0 +1,74 @@
+%language=C++
+%define class-name cp_trait_lookup
+%struct-type
+%{
+/* Copyright (C) 2023 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+%}
+struct cp_trait {
+ const char *name;
+ enum cp_trait_kind kind;
+ short arity;
+ bool type;
+};
+%%
+"__is_same_as", CPTK_IS_SAME, 2, false
+"__has_nothrow_assign", CPTK_HAS_NOTHROW_ASSIGN, 1, false
+"__has_nothrow_constructor", CPTK_HAS_NOTHROW_CONSTRUCTOR, 1, false
+"__has_nothrow_copy", CPTK_HAS_NOTHROW_COPY, 1, false
+"__has_trivial_assign", CPTK_HAS_TRIVIAL_ASSIGN, 1, false
+"__has_trivial_constructor", CPTK_HAS_TRIVIAL_CONSTRUCTOR, 1, false
+"__has_trivial_copy", CPTK_HAS_TRIVIAL_COPY, 1, false
+"__has_trivial_destructor", CPTK_HAS_TRIVIAL_DESTRUCTOR, 1, false
+"__has_unique_object_representations", CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS, 1, false
+"__has_virtual_destructor", CPTK_HAS_VIRTUAL_DESTRUCTOR, 1, false
+"__is_abstract", CPTK_IS_ABSTRACT, 1, false
+"__is_aggregate", CPTK_IS_AGGREGATE, 1, false
+"__is_assignable", CPTK_IS_ASSIGNABLE, 2, false
+"__is_base_of", CPTK_IS_BASE_OF, 2, false
+"__is_class", CPTK_IS_CLASS, 1, false
+"__is_constructible", CPTK_IS_CONSTRUCTIBLE, -1, false
+"__is_convertible", CPTK_IS_CONVERTIBLE, 2, false
+"__is_empty", CPTK_IS_EMPTY, 1, false
+"__is_enum", CPTK_IS_ENUM, 1, false
+"__is_final", CPTK_IS_FINAL, 1, false
+"__is_layout_compatible", CPTK_IS_LAYOUT_COMPATIBLE, 2, false
+"__is_literal_type", CPTK_IS_LITERAL_TYPE, 1, false
+"__is_nothrow_assignable", CPTK_IS_NOTHROW_ASSIGNABLE, 2, false
+"__is_nothrow_constructible", CPTK_IS_NOTHROW_CONSTRUCTIBLE, -1, false
+"__is_nothrow_convertible", CPTK_IS_NOTHROW_CONVERTIBLE, 2, false
+"__is_pointer_interconvertible_base_of", CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF, 2, false
+"__is_pod", CPTK_IS_POD, 1, false
+"__is_polymorphic", CPTK_IS_POLYMORPHIC, 1, false
+"__is_same", CPTK_IS_SAME, 2, false
+"__is_standard_layout", CPTK_IS_STD_LAYOUT, 1, false
+"__is_trivial", CPTK_IS_TRIVIAL, 1, false
+"__is_trivially_assignable", CPTK_IS_TRIVIALLY_ASSIGNABLE, 2, false
+"__is_trivially_constructible", CPTK_IS_TRIVIALLY_CONSTRUCTIBLE, -1, false
+"__is_trivially_copyable", CPTK_IS_TRIVIALLY_COPYABLE, 1, false
+"__is_union", CPTK_IS_UNION, 1, false
+"__reference_constructs_from_temporary", CPTK_REF_CONSTRUCTS_FROM_TEMPORARY, 2, false
+"__reference_converts_from_temporary", CPTK_REF_CONVERTS_FROM_TEMPORARY, 2, false
+"__remove_cv", CPTK_REMOVE_CV, 1, true
+"__remove_cvref", CPTK_REMOVE_CVREF, 1, true
+"__remove_reference", CPTK_REMOVE_REFERENCE, 1, true
+"__type_pack_element", CPTK_TYPE_PACK_ELEMENT, -1, true
+"__underlying_type", CPTK_UNDERLYING_TYPE, 1, true
+"__is_deducible ", CPTK_IS_DEDUCIBLE, 2, false
+"__bases", CPTK_BASES, 1, true
+"__direct_bases", CPTK_DIRECT_BASES, 1, true
diff --git a/gcc/cp/cp-trait.h b/gcc/cp/cp-trait.h
new file mode 100644
index 00000000000..97ba8492d15
--- /dev/null
+++ b/gcc/cp/cp-trait.h
@@ -0,0 +1,247 @@
+/* C++ code produced by gperf version 3.1 */
+/* Command-line: gperf -o -C -E -k 8 -D -N find -L C++ --output-file ../../gcc/cp/cp-trait.h ../../gcc/cp/cp-trait.gperf */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
+#endif
+
+#line 4 "../../gcc/cp/cp-trait.gperf"
+
+/* Copyright (C) 2023 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+#line 23 "../../gcc/cp/cp-trait.gperf"
+struct cp_trait {
+ const char *name;
+ enum cp_trait_kind kind;
+ short arity;
+ bool type;
+};
+/* maximum key range = 79, duplicates = 0 */
+
+class cp_trait_lookup
+{
+private:
+ static inline unsigned int hash (const char *str, size_t len);
+public:
+ static const struct cp_trait *find (const char *str, size_t len);
+};
+
+inline unsigned int
+cp_trait_lookup::hash (const char *str, size_t len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 1, 86, 86,
+ 0, 35, 86, 0, 86, 0, 86, 86, 10, 10,
+ 50, 15, 55, 86, 30, 5, 15, 0, 86, 86,
+ 86, 20, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86
+ };
+ unsigned int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[static_cast<unsigned char>(str[7])];
+ /*FALLTHROUGH*/
+ case 7:
+ break;
+ }
+ return hval;
+}
+
+const struct cp_trait *
+cp_trait_lookup::find (const char *str, size_t len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 45,
+ MIN_WORD_LENGTH = 7,
+ MAX_WORD_LENGTH = 37,
+ MIN_HASH_VALUE = 7,
+ MAX_HASH_VALUE = 85
+ };
+
+ static const struct cp_trait wordlist[] =
+ {
+#line 73 "../../gcc/cp/cp-trait.gperf"
+ {"__bases", CPTK_BASES, 1, true},
+#line 56 "../../gcc/cp/cp-trait.gperf"
+ {"__is_pod", CPTK_IS_POD, 1, false},
+#line 48 "../../gcc/cp/cp-trait.gperf"
+ {"__is_enum", CPTK_IS_ENUM, 1, false},
+#line 64 "../../gcc/cp/cp-trait.gperf"
+ {"__is_union", CPTK_IS_UNION, 1, false},
+#line 44 "../../gcc/cp/cp-trait.gperf"
+ {"__is_class", CPTK_IS_CLASS, 1, false},
+#line 60 "../../gcc/cp/cp-trait.gperf"
+ {"__is_trivial", CPTK_IS_TRIVIAL, 1, false},
+#line 41 "../../gcc/cp/cp-trait.gperf"
+ {"__is_aggregate", CPTK_IS_AGGREGATE, 1, false},
+#line 72 "../../gcc/cp/cp-trait.gperf"
+ {"__is_deducible ", CPTK_IS_DEDUCIBLE, 2, false},
+#line 43 "../../gcc/cp/cp-trait.gperf"
+ {"__is_base_of", CPTK_IS_BASE_OF, 2, false},
+#line 40 "../../gcc/cp/cp-trait.gperf"
+ {"__is_abstract", CPTK_IS_ABSTRACT, 1, false},
+#line 58 "../../gcc/cp/cp-trait.gperf"
+ {"__is_same", CPTK_IS_SAME, 2, false},
+#line 42 "../../gcc/cp/cp-trait.gperf"
+ {"__is_assignable", CPTK_IS_ASSIGNABLE, 2, false},
+#line 59 "../../gcc/cp/cp-trait.gperf"
+ {"__is_standard_layout", CPTK_IS_STD_LAYOUT, 1, false},
+#line 30 "../../gcc/cp/cp-trait.gperf"
+ {"__is_same_as", CPTK_IS_SAME, 2, false},
+#line 63 "../../gcc/cp/cp-trait.gperf"
+ {"__is_trivially_copyable", CPTK_IS_TRIVIALLY_COPYABLE, 1, false},
+#line 39 "../../gcc/cp/cp-trait.gperf"
+ {"__has_virtual_destructor", CPTK_HAS_VIRTUAL_DESTRUCTOR, 1, false},
+#line 61 "../../gcc/cp/cp-trait.gperf"
+ {"__is_trivially_assignable", CPTK_IS_TRIVIALLY_ASSIGNABLE, 2, false},
+#line 57 "../../gcc/cp/cp-trait.gperf"
+ {"__is_polymorphic", CPTK_IS_POLYMORPHIC, 1, false},
+#line 71 "../../gcc/cp/cp-trait.gperf"
+ {"__underlying_type", CPTK_UNDERLYING_TYPE, 1, true},
+#line 62 "../../gcc/cp/cp-trait.gperf"
+ {"__is_trivially_constructible", CPTK_IS_TRIVIALLY_CONSTRUCTIBLE, -1, false},
+#line 74 "../../gcc/cp/cp-trait.gperf"
+ {"__direct_bases", CPTK_DIRECT_BASES, 1, true},
+#line 51 "../../gcc/cp/cp-trait.gperf"
+ {"__is_literal_type", CPTK_IS_LITERAL_TYPE, 1, false},
+#line 33 "../../gcc/cp/cp-trait.gperf"
+ {"__has_nothrow_copy", CPTK_HAS_NOTHROW_COPY, 1, false},
+#line 31 "../../gcc/cp/cp-trait.gperf"
+ {"__has_nothrow_assign", CPTK_HAS_NOTHROW_ASSIGN, 1, false},
+#line 55 "../../gcc/cp/cp-trait.gperf"
+ {"__is_pointer_interconvertible_base_of", CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF, 2, false},
+#line 52 "../../gcc/cp/cp-trait.gperf"
+ {"__is_nothrow_assignable", CPTK_IS_NOTHROW_ASSIGNABLE, 2, false},
+#line 54 "../../gcc/cp/cp-trait.gperf"
+ {"__is_nothrow_convertible", CPTK_IS_NOTHROW_CONVERTIBLE, 2, false},
+#line 32 "../../gcc/cp/cp-trait.gperf"
+ {"__has_nothrow_constructor", CPTK_HAS_NOTHROW_CONSTRUCTOR, 1, false},
+#line 53 "../../gcc/cp/cp-trait.gperf"
+ {"__is_nothrow_constructible", CPTK_IS_NOTHROW_CONSTRUCTIBLE, -1, false},
+#line 50 "../../gcc/cp/cp-trait.gperf"
+ {"__is_layout_compatible", CPTK_IS_LAYOUT_COMPATIBLE, 2, false},
+#line 67 "../../gcc/cp/cp-trait.gperf"
+ {"__remove_cv", CPTK_REMOVE_CV, 1, true},
+#line 36 "../../gcc/cp/cp-trait.gperf"
+ {"__has_trivial_copy", CPTK_HAS_TRIVIAL_COPY, 1, false},
+#line 68 "../../gcc/cp/cp-trait.gperf"
+ {"__remove_cvref", CPTK_REMOVE_CVREF, 1, true},
+#line 34 "../../gcc/cp/cp-trait.gperf"
+ {"__has_trivial_assign", CPTK_HAS_TRIVIAL_ASSIGN, 1, false},
+#line 69 "../../gcc/cp/cp-trait.gperf"
+ {"__remove_reference", CPTK_REMOVE_REFERENCE, 1, true},
+#line 37 "../../gcc/cp/cp-trait.gperf"
+ {"__has_trivial_destructor", CPTK_HAS_TRIVIAL_DESTRUCTOR, 1, false},
+#line 35 "../../gcc/cp/cp-trait.gperf"
+ {"__has_trivial_constructor", CPTK_HAS_TRIVIAL_CONSTRUCTOR, 1, false},
+#line 49 "../../gcc/cp/cp-trait.gperf"
+ {"__is_final", CPTK_IS_FINAL, 1, false},
+#line 47 "../../gcc/cp/cp-trait.gperf"
+ {"__is_empty", CPTK_IS_EMPTY, 1, false},
+#line 46 "../../gcc/cp/cp-trait.gperf"
+ {"__is_convertible", CPTK_IS_CONVERTIBLE, 2, false},
+#line 45 "../../gcc/cp/cp-trait.gperf"
+ {"__is_constructible", CPTK_IS_CONSTRUCTIBLE, -1, false},
+#line 66 "../../gcc/cp/cp-trait.gperf"
+ {"__reference_converts_from_temporary", CPTK_REF_CONVERTS_FROM_TEMPORARY, 2, false},
+#line 65 "../../gcc/cp/cp-trait.gperf"
+ {"__reference_constructs_from_temporary", CPTK_REF_CONSTRUCTS_FROM_TEMPORARY, 2, false},
+#line 70 "../../gcc/cp/cp-trait.gperf"
+ {"__type_pack_element", CPTK_TYPE_PACK_ELEMENT, -1, true},
+#line 38 "../../gcc/cp/cp-trait.gperf"
+ {"__has_unique_object_representations", CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS, 1, false}
+ };
+
+ static const signed char lookup[] =
+ {
+ -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, -1,
+ 6, 7, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, -1, -1, 21, 22, -1, 23, -1, 24, 25, 26, 27, 28,
+ 29, -1, -1, -1, 30, -1, 31, 32, 33, -1, -1, 34, 35, 36,
+ -1, -1, -1, -1, 37, -1, -1, -1, -1, 38, 39, -1, 40, -1,
+ 41, -1, 42, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 44
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ unsigned int key = hash (str, len);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ int index = lookup[key];
+
+ if (index >= 0)
+ {
+ const char *s = wordlist[index].name;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &wordlist[index];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index f3abae716fe..432c43400ab 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -49,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "contracts.h"
#include "bitmap.h"
#include "builtins.h"
+#include "cp-trait.h"
\f
/* The lexer. */
@@ -1165,12 +1166,8 @@ cp_keyword_starts_decl_specifier_p (enum rid keyword)
/* C++20 extensions. */
case RID_CONSTINIT:
case RID_CONSTEVAL:
- return true;
-
-#define DEFTRAIT_TYPE(CODE, NAME, ARITY) \
- case RID_##CODE:
-#include "cp-trait.def"
-#undef DEFTRAIT_TYPE
+ /* C++ type-yielding built-in traits, defined in cp-trait.def. */
+ case RID_TRAIT_TYPE:
return true;
default:
@@ -2854,7 +2851,7 @@ static void cp_parser_late_parsing_default_args
static tree cp_parser_sizeof_operand
(cp_parser *, enum rid);
static cp_expr cp_parser_trait
- (cp_parser *, enum rid);
+ (cp_parser *, tree);
static bool cp_parser_declares_only_class_p
(cp_parser *);
static void cp_parser_set_storage_class
@@ -6021,11 +6018,8 @@ cp_parser_primary_expression (cp_parser *parser,
case RID_OFFSETOF:
return cp_parser_builtin_offsetof (parser);
-#define DEFTRAIT_EXPR(CODE, NAME, ARITY) \
- case RID_##CODE:
-#include "cp-trait.def"
-#undef DEFTRAIT_EXPR
- return cp_parser_trait (parser, token->keyword);
+ case RID_TRAIT_EXPR:
+ return cp_parser_trait (parser, token->u.value);
// C++ concepts
case RID_REQUIRES:
@@ -11033,28 +11027,15 @@ cp_parser_builtin_offsetof (cp_parser *parser)
/* Parse a builtin trait expression or type. */
static cp_expr
-cp_parser_trait (cp_parser* parser, enum rid keyword)
+cp_parser_trait (cp_parser* parser, tree keyword)
{
- cp_trait_kind kind;
- tree type1, type2 = NULL_TREE;
- bool binary = false;
- bool variadic = false;
- bool type = false;
+ const char* keyword_str = IDENTIFIER_POINTER (keyword);
+ int keyword_len = IDENTIFIER_LENGTH (keyword);
+ const cp_trait* trait = cp_trait_lookup::find (keyword_str, keyword_len);
- switch (keyword)
- {
-#define DEFTRAIT(TCC, CODE, NAME, ARITY) \
- case RID_##CODE: \
- kind = CPTK_##CODE; \
- binary = (ARITY == 2); \
- variadic = (ARITY == -1); \
- type = (TCC == tcc_type); \
- break;
-#include "cp-trait.def"
-#undef DEFTRAIT
- default:
- gcc_unreachable ();
- }
+ tree type1, type2 = NULL_TREE;
+ bool binary = (trait->arity == 2);
+ bool variadic = (trait->arity == -1);
/* Get location of initial token. */
location_t start_loc = cp_lexer_peek_token (parser->lexer)->location;
@@ -11063,12 +11044,12 @@ cp_parser_trait (cp_parser* parser, enum rid keyword)
cp_lexer_consume_token (parser->lexer);
matching_parens parens;
- if (kind == CPTK_TYPE_PACK_ELEMENT)
+ if (trait->kind == CPTK_TYPE_PACK_ELEMENT)
cp_parser_require (parser, CPP_LESS, RT_LESS);
else
parens.require_open (parser);
- if (kind == CPTK_IS_DEDUCIBLE)
+ if (trait->kind == CPTK_IS_DEDUCIBLE)
{
const cp_token* token = cp_lexer_peek_token (parser->lexer);
type1 = cp_parser_id_expression (parser,
@@ -11079,7 +11060,7 @@ cp_parser_trait (cp_parser* parser, enum rid keyword)
/*optional_p=*/false);
type1 = cp_parser_lookup_name_simple (parser, type1, token->location);
}
- else if (kind == CPTK_TYPE_PACK_ELEMENT)
+ else if (trait->kind == CPTK_TYPE_PACK_ELEMENT)
/* __type_pack_element takes an expression as its first argument and uses
template-id syntax instead of function call syntax (for consistency
with Clang). We special case these properties of __type_pack_element
@@ -11094,7 +11075,7 @@ cp_parser_trait (cp_parser* parser, enum rid keyword)
if (type1 == error_mark_node)
return error_mark_node;
- if (kind == CPTK_TYPE_PACK_ELEMENT)
+ if (trait->kind == CPTK_TYPE_PACK_ELEMENT)
{
cp_parser_require (parser, CPP_COMMA, RT_COMMA);
tree trailing = cp_parser_enclosed_template_argument_list (parser);
@@ -11144,7 +11125,7 @@ cp_parser_trait (cp_parser* parser, enum rid keyword)
}
location_t finish_loc = cp_lexer_peek_token (parser->lexer)->location;
- if (kind == CPTK_TYPE_PACK_ELEMENT)
+ if (trait->kind == CPTK_TYPE_PACK_ELEMENT)
/* cp_parser_enclosed_template_argument_list above already took care
of parsing the closing '>'. */;
else
@@ -11158,17 +11139,17 @@ cp_parser_trait (cp_parser* parser, enum rid keyword)
/* Complete the trait expression, which may mean either processing
the trait expr now or saving it for template instantiation. */
- switch (kind)
+ switch (trait->kind)
{
case CPTK_BASES:
return cp_expr (finish_bases (type1, false), trait_loc);
case CPTK_DIRECT_BASES:
return cp_expr (finish_bases (type1, true), trait_loc);
default:
- if (type)
- return finish_trait_type (kind, type1, type2, tf_warning_or_error);
+ if (trait->type)
+ return finish_trait_type (trait->kind, type1, type2, tf_warning_or_error);
else
- return finish_trait_expr (trait_loc, kind, type1, type2);
+ return finish_trait_expr (trait_loc, trait->kind, type1, type2);
}
}
@@ -20081,11 +20062,8 @@ cp_parser_simple_type_specifier (cp_parser* parser,
return type;
-#define DEFTRAIT_TYPE(CODE, NAME, ARITY) \
- case RID_##CODE:
-#include "cp-trait.def"
-#undef DEFTRAIT_TYPE
- type = cp_parser_trait (parser, token->keyword);
+ case RID_TRAIT_TYPE:
+ type = cp_parser_trait (parser, token->u.value);
if (decl_specs)
cp_parser_set_decl_spec_type (decl_specs, type,
token,
--
2.42.0
next prev parent reply other threads:[~2023-10-10 22:19 UTC|newest]
Thread overview: 629+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-14 6:42 [PATCH v11 00/40] Optimize type traits performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 01/40] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-09-14 6:42 ` [PATCH v11 02/40] c++: Implement __is_const built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 03/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 04/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 05/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 06/40] c++: Implement __is_array built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 07/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 08/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 09/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 10/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 11/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 12/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 13/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 14/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 15/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 16/40] c, c++: Use 16 bits for all use of enum rid for more keyword space Ken Matsui
2023-09-14 17:53 ` Joseph Myers
2023-09-14 21:44 ` Ken Matsui
2023-09-15 23:26 ` Ken Matsui
2023-09-14 6:42 ` [PATCH v11 17/40] c-family: Fix C_SET_RID_CODE to handle 16-bit rid code correctly Ken Matsui
2023-09-14 6:42 ` [PATCH v11 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-09-14 6:42 ` [PATCH v11 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-09-14 6:42 ` [PATCH v11 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-09-14 6:43 ` [PATCH v11 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 29/40] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 31/40] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-09-14 6:43 ` [PATCH v11 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-09-14 6:43 ` [PATCH v11 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 37/40] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-09-14 6:43 ` [PATCH v11 39/40] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-09-14 6:43 ` [PATCH v11 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 00/40] Optimize type traits performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 01/40] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-09-15 2:21 ` [PATCH v12 02/40] c++: Implement __is_const built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 03/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 04/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 05/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 06/40] c++: Implement __is_array built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 07/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 08/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 09/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 10/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 11/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 12/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 13/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 14/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 15/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 16/40] c, c++: Use 16 bits for all use of enum rid for more keyword space Ken Matsui
2023-09-15 2:21 ` [PATCH v12 17/40] c-family: Fix C_SET_RID_CODE to handle 16-bit rid code correctly Ken Matsui
2023-09-15 2:21 ` [PATCH v12 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-09-15 2:21 ` [PATCH v12 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 29/40] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 31/40] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-09-15 2:21 ` [PATCH v12 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-09-15 2:21 ` [PATCH v12 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 37/40] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-09-15 2:21 ` [PATCH v12 39/40] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-09-15 2:21 ` [PATCH v12 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 00/40] Optimize type traits performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 01/40] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-09-15 2:34 ` [PATCH v13 02/40] c++: Implement __is_const built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 03/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 04/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 05/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 06/40] c++: Implement __is_array built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 07/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 08/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 09/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 10/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 11/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 12/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 13/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 14/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 15/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 16/40] c, c++: Use 16 bits for all use of enum rid for more keyword space Ken Matsui
2023-09-15 23:50 ` [PATCH v14 00/40] Optimize type traits performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 01/40] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-09-15 23:50 ` [PATCH v14 02/40] c++: Implement __is_const built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 03/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 04/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 05/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 06/40] c++: Implement __is_array built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 07/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 08/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 09/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 10/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 11/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-09-15 23:50 ` [PATCH v14 12/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-09-15 23:50 ` [PATCH v14 13/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 14/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 15/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 16/40] c, c++: Use 16 bits for all use of enum rid for more keyword space Ken Matsui
2023-09-19 16:58 ` Jason Merrill
2023-09-19 23:05 ` Ken Matsui
2023-09-27 13:57 ` Jason Merrill
2023-10-09 5:03 ` Ken Matsui
2023-09-15 23:51 ` [PATCH v14 17/40] c-family: Fix C_SET_RID_CODE to handle 16-bit rid code correctly Ken Matsui
2023-09-15 23:51 ` [PATCH v14 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-09-15 23:51 ` [PATCH v14 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 29/40] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 31/40] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-09-15 23:51 ` [PATCH v14 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-09-15 23:51 ` [PATCH v14 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 37/40] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-09-15 23:51 ` [PATCH v14 39/40] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-09-15 23:51 ` [PATCH v14 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-09-15 2:34 ` [PATCH v13 17/40] c-family: Fix C_SET_RID_CODE to handle 16-bit rid code correctly Ken Matsui
2023-09-15 2:34 ` [PATCH v13 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-09-15 2:34 ` [PATCH v13 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-09-15 2:35 ` [PATCH v13 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 29/40] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 31/40] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-09-15 2:35 ` [PATCH v13 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-09-15 2:35 ` [PATCH v13 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 37/40] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-09-15 2:35 ` [PATCH v13 39/40] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-09-15 2:35 ` [PATCH v13 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 00/39] Optimize type traits performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 01/39] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-10-10 9:46 ` [PATCH v15 02/39] c-family, c++: Look up traits through gperf instead of enum rid Ken Matsui
2023-10-10 9:46 ` [PATCH v15 03/39] c++: Implement __is_const built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 04/39] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 05/39] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 06/39] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 07/39] c++: Implement __is_array built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 08/39] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 09/39] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 10/39] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 11/39] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 12/39] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 13/39] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 14/39] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 15/39] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 16/39] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 17/39] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 18/39] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 19/39] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 20/39] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 21/39] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 22/39] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 23/39] c++: Implement __is_function built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 24/39] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 25/39] libstdc++: Optimize is_object " Ken Matsui
2023-10-10 9:46 ` [PATCH v15 26/39] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 27/39] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 28/39] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 29/39] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 30/39] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 31/39] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 32/39] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-10 9:46 ` [PATCH v15 33/39] libstdc++: Optimize is_compound " Ken Matsui
2023-10-10 9:46 ` [PATCH v15 34/39] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 35/39] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 36/39] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 37/39] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-10 9:46 ` [PATCH v15 38/39] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-10-10 9:46 ` [PATCH v15 39/39] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-10 22:09 ` [PATCH v16 00/39] Optimize type traits performance Ken Matsui
2023-10-10 22:09 ` [PATCH v16 01/39] c++: Sort built-in identifiers alphabetically Ken Matsui
2023-10-10 22:09 ` Ken Matsui [this message]
2023-10-11 20:09 ` [PATCH v16 02/39] c-family, c++: Look up built-in traits through gperf Patrick Palka
2023-10-11 21:34 ` Ken Matsui
2023-10-10 22:09 ` [PATCH v16 03/39] c++: Implement __is_const built-in trait Ken Matsui
2023-10-10 22:09 ` [PATCH v16 04/39] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-10 22:09 ` [PATCH v16 05/39] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-10 22:09 ` [PATCH v16 06/39] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-10 22:09 ` [PATCH v16 07/39] c++: Implement __is_array built-in trait Ken Matsui
2023-10-10 22:09 ` [PATCH v16 08/39] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 09/39] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 10/39] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 11/39] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 12/39] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 13/39] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 14/39] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 15/39] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 16/39] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 17/39] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 18/39] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 19/39] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 20/39] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 21/39] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 22/39] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 23/39] c++: Implement __is_function built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 24/39] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 25/39] libstdc++: Optimize is_object " Ken Matsui
2023-10-10 22:10 ` [PATCH v16 26/39] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 27/39] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 28/39] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 29/39] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 30/39] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 31/39] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 32/39] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-10 22:10 ` [PATCH v16 33/39] libstdc++: Optimize is_compound " Ken Matsui
2023-10-10 22:10 ` [PATCH v16 34/39] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 35/39] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 36/39] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 37/39] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-10 22:10 ` [PATCH v16 38/39] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-10-10 22:10 ` [PATCH v16 39/39] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 00/39] Optimize type traits performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 01/39] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-11 21:45 ` [PATCH v17 02/39] c-family, c++: Look up built-in traits through gperf Ken Matsui
2023-10-12 17:02 ` Patrick Palka
2023-10-11 21:45 ` [PATCH v17 03/39] c++: Implement __is_const built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 04/39] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 05/39] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 06/39] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 07/39] c++: Implement __is_array built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 08/39] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 09/39] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 10/39] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 11/39] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 12/39] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 13/39] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 14/39] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 15/39] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 16/39] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 17/39] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 18/39] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 19/39] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 20/39] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 21/39] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-11 21:45 ` [PATCH v17 22/39] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-11 21:45 ` [PATCH v17 23/39] c++: Implement __is_function built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 24/39] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 25/39] libstdc++: Optimize is_object " Ken Matsui
2023-10-11 21:46 ` [PATCH v17 26/39] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 27/39] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 28/39] c++, libstdc++: Implement __is_pointer built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 29/39] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 30/39] c++, libstdc++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 31/39] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 32/39] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-11 21:46 ` [PATCH v17 33/39] libstdc++: Optimize is_compound " Ken Matsui
2023-10-11 21:46 ` [PATCH v17 34/39] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 35/39] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 36/39] c++, libstdc++: Implement __is_signed built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 37/39] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-11 21:46 ` [PATCH v17 38/39] c++, libstdc++: Implement __is_scalar built-in trait Ken Matsui
2023-10-11 21:46 ` [PATCH v17 39/39] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-13 21:03 ` [PATCH v18 00/40] Optimize type traits performance Ken Matsui
2023-10-13 21:03 ` [PATCH v18 01/40] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-13 21:03 ` [PATCH v18 02/40] c-family, c++: Look up built-in traits through gperf Ken Matsui
2023-10-13 21:03 ` [PATCH v18 03/40] c++: Accept the use of non-function-like built-in trait identifiers Ken Matsui
2023-10-13 21:04 ` [PATCH v18 04/40] c++: Implement __is_const built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 05/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 06/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 07/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 08/40] c++: Implement __is_array built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 09/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 10/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 11/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 12/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 13/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 14/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 15/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 16/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 17/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-10-13 21:04 ` [PATCH v18 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 29/40] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 31/40] c++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-13 21:04 ` [PATCH v18 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-10-13 21:04 ` [PATCH v18 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 37/40] c++: Implement __is_signed built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-13 21:04 ` [PATCH v18 39/40] c++: Implement __is_scalar built-in trait Ken Matsui
2023-10-13 21:04 ` [PATCH v18 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 00/40] Optimize type traits performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 01/40] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-13 22:37 ` [PATCH v19 02/40] c-family, c++: Look up built-in traits through gperf Ken Matsui
2023-10-15 20:43 ` Patrick Palka
2023-10-15 21:04 ` Ken Matsui
2023-10-15 21:50 ` Patrick Palka
2023-10-15 21:52 ` Ken Matsui
2023-10-13 22:37 ` [PATCH v19 03/40] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-13 22:37 ` [PATCH v19 04/40] c++: Implement __is_const built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 05/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 06/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 07/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 08/40] c++: Implement __is_array built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 09/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 10/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 11/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 12/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 13/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 14/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 15/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 16/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 17/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-10-13 22:37 ` [PATCH v19 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 29/40] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 31/40] c++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-13 22:37 ` [PATCH v19 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-10-13 22:37 ` [PATCH v19 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 37/40] c++: Implement __is_signed built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-13 22:37 ` [PATCH v19 39/40] c++: Implement __is_scalar built-in trait Ken Matsui
2023-10-13 22:37 ` [PATCH v19 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 00/40] Optimize type traits performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 01/40] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-16 15:16 ` Patrick Palka
2023-10-16 20:11 ` Ken Matsui
2023-10-16 21:12 ` Patrick Palka
2023-10-16 21:30 ` Ken Matsui
2023-10-16 0:09 ` [PATCH v20 02/40] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-10-16 14:55 ` Patrick Palka
2023-10-16 19:57 ` Ken Matsui
2023-10-16 21:06 ` Patrick Palka
2023-10-16 21:27 ` Ken Matsui
2023-10-16 0:09 ` [PATCH v20 03/40] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-16 15:00 ` Patrick Palka
2023-10-16 0:09 ` [PATCH v20 04/40] c++: Implement __is_const built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 05/40] libstdc++: Optimize is_const trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 06/40] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 07/40] libstdc++: Optimize is_volatile trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 08/40] c++: Implement __is_array built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 09/40] libstdc++: Optimize is_array trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 10/40] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 11/40] libstdc++: Optimize is_unbounded_array trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 12/40] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 13/40] libstdc++: Optimize is_bounded_array trait performance Ken Matsui
2023-10-16 0:09 ` [PATCH v20 14/40] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-16 0:09 ` [PATCH v20 15/40] libstdc++: Optimize is_scoped_enum trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 16/40] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 17/40] libstdc++: Optimize is_member_pointer trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 18/40] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 19/40] libstdc++: Optimize is_member_function_pointer trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 20/40] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 21/40] libstdc++: Optimize is_member_object_pointer trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 22/40] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 23/40] libstdc++: Optimize is_reference trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 24/40] c++: Implement __is_function built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 25/40] libstdc++: Optimize is_function trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 26/40] libstdc++: Optimize is_object " Ken Matsui
2023-10-16 18:04 ` Patrick Palka
2023-10-16 20:26 ` Ken Matsui
2023-10-16 0:10 ` [PATCH v20 27/40] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 28/40] libstdc++: Optimize remove_pointer trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 29/40] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 30/40] libstdc++: Optimize is_pointer trait performance Ken Matsui
2023-10-16 16:36 ` Patrick Palka
2023-10-16 20:22 ` Ken Matsui
2023-10-16 0:10 ` [PATCH v20 31/40] c++: Implement __is_arithmetic built-in trait Ken Matsui
2023-10-16 17:16 ` Patrick Palka
2023-10-16 20:25 ` Ken Matsui
2023-10-16 0:10 ` [PATCH v20 32/40] libstdc++: Optimize is_arithmetic trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 33/40] libstdc++: Optimize is_fundamental " Ken Matsui
2023-10-16 0:10 ` [PATCH v20 34/40] libstdc++: Optimize is_compound " Ken Matsui
2023-10-16 0:10 ` [PATCH v20 35/40] c++: Implement __is_unsigned built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 36/40] libstdc++: Optimize is_unsigned trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 37/40] c++: Implement __is_signed built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 38/40] libstdc++: Optimize is_signed trait performance Ken Matsui
2023-10-16 0:10 ` [PATCH v20 39/40] c++: Implement __is_scalar built-in trait Ken Matsui
2023-10-16 0:10 ` [PATCH v20 40/40] libstdc++: Optimize is_scalar trait performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 00/30] Optimize type traits performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 01/30] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-10-17 11:27 ` [PATCH v21 02/30] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-17 11:27 ` [PATCH v21 03/30] c++: Implement __is_const built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 04/30] libstdc++: Optimize std::is_const compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 05/30] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 06/30] libstdc++: Optimize std::is_volatile compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 07/30] c++: Implement __is_array built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 08/30] libstdc++: Optimize std::is_array compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 09/30] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 10/30] libstdc++: Optimize std::is_unbounded_array compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 11/30] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 12/30] libstdc++: Optimize std::is_bounded_array compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 13/30] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 14/30] libstdc++: Optimize std::is_scoped_enum compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 15/30] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 16/30] libstdc++: Optimize std::is_member_pointer compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 17/30] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 18/30] libstdc++: Optimize std::is_member_function_pointer compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 19/30] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 20/30] libstdc++: Optimize std::is_member_object_pointer compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 21/30] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 22/30] libstdc++: Optimize std::is_reference compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 23/30] c++: Implement __is_function built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 24/30] libstdc++: Optimize std::is_function compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 25/30] c++: Implement __is_object built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 26/30] libstdc++: Optimize std::is_object compilation performance Ken Matsui
2023-10-17 11:27 ` [PATCH v21 27/30] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-17 11:27 ` [PATCH v21 28/30] libstdc++: Optimize std::remove_pointer compilation performance Ken Matsui
2023-10-17 11:28 ` [PATCH v21 29/30] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-17 11:28 ` [PATCH v21 30/30] libstdc++: Optimize std::is_pointer compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 00/31] Optimize type traits performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 01/31] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-17 11:36 ` [PATCH v22 02/31] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-10-17 17:04 ` Patrick Palka
2023-10-17 11:36 ` [PATCH v22 03/31] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-17 11:36 ` [PATCH v22 04/31] c++: Implement __is_const built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 05/31] libstdc++: Optimize std::is_const compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 06/31] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 07/31] libstdc++: Optimize std::is_volatile compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 08/31] c++: Implement __is_array built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 09/31] libstdc++: Optimize std::is_array compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 10/31] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 11/31] libstdc++: Optimize std::is_unbounded_array compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 12/31] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 13/31] libstdc++: Optimize std::is_bounded_array compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 14/31] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 15/31] libstdc++: Optimize std::is_scoped_enum compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 16/31] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 17/31] libstdc++: Optimize std::is_member_pointer compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 18/31] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 19/31] libstdc++: Optimize std::is_member_function_pointer compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 20/31] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 21/31] libstdc++: Optimize std::is_member_object_pointer compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 22/31] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 23/31] libstdc++: Optimize std::is_reference compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 24/31] c++: Implement __is_function built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 25/31] libstdc++: Optimize std::is_function compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 26/31] c++: Implement __is_object built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 27/31] libstdc++: Optimize std::is_object compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 28/31] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 29/31] libstdc++: Optimize std::remove_pointer compilation performance Ken Matsui
2023-10-17 11:36 ` [PATCH v22 30/31] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-17 11:36 ` [PATCH v22 31/31] libstdc++: Optimize std::is_pointer compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 00/33] Optimize type traits performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 01/33] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-20 13:53 ` [PATCH v23 02/33] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-10-20 19:11 ` Patrick Palka
2023-10-20 20:00 ` Ken Matsui
2023-10-23 20:27 ` Jason Merrill
2023-10-23 21:08 ` Ken Matsui
2023-10-20 13:53 ` [PATCH v23 03/33] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-23 20:36 ` Jason Merrill
2023-10-23 21:08 ` Ken Matsui
2023-10-20 13:53 ` [PATCH v23 04/33] c++: Implement __is_const built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 05/33] libstdc++: Optimize std::is_const compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 06/33] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 07/33] libstdc++: Optimize std::is_volatile compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 08/33] c++: Implement __is_array built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 09/33] libstdc++: Optimize std::is_array compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 10/33] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 11/33] libstdc++: Optimize std::is_unbounded_array compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 12/33] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 13/33] libstdc++: Optimize std::is_bounded_array compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 14/33] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 15/33] libstdc++: Optimize std::is_scoped_enum compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 16/33] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 17/33] libstdc++: Optimize std::is_member_pointer compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 18/33] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 19/33] libstdc++: Optimize std::is_member_function_pointer compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 20/33] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 21/33] libstdc++: Optimize std::is_member_object_pointer compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 22/33] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 23/33] libstdc++: Optimize std::is_reference compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 24/33] c++: Implement __is_function built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 25/33] libstdc++: Optimize std::is_function compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 26/33] c++: Implement __is_object built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 27/33] libstdc++: Optimize std::is_object compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 28/33] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 29/33] libstdc++: Optimize std::remove_pointer compilation performance Ken Matsui
2023-10-20 13:53 ` [PATCH v23 30/33] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-20 13:53 ` [PATCH v23 31/33] libstdc++: Optimize std::is_pointer compilation performance Ken Matsui
2023-10-22 12:06 ` Ken Matsui
2023-10-23 17:00 ` Patrick Palka
2023-10-23 17:12 ` Ken Matsui
2023-10-20 13:53 ` [PATCH v23 32/33] c++: Implement __is_invocable built-in trait Ken Matsui
2023-10-20 21:29 ` Patrick Palka
2023-10-20 21:31 ` Patrick Palka
2023-10-20 21:37 ` Patrick Palka
2023-10-23 21:23 ` Jason Merrill
2024-02-20 1:35 ` Ken Matsui
2023-10-20 13:53 ` [PATCH v23 33/33] libstdc++: Optimize std::is_invocable compilation performance Ken Matsui
2023-10-20 16:16 ` [PATCH v24 00/33] Optimize type traits performance Ken Matsui
2023-10-20 16:17 ` [PATCH v24 33/33] libstdc++: Optimize std::is_invocable compilation performance Ken Matsui
2023-10-23 17:04 ` Patrick Palka
2023-10-23 17:14 ` Ken Matsui
2023-10-23 17:38 ` Patrick Palka
2023-10-23 17:47 ` Ken Matsui
2023-10-24 2:00 ` [PATCH v25 00/33] Optimize type traits " Ken Matsui
2023-10-24 2:00 ` [PATCH v25 01/33] c++: Sort built-in traits alphabetically Ken Matsui
2023-10-24 2:00 ` [PATCH v25 02/33] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-10-24 2:00 ` [PATCH v25 03/33] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-10-24 2:00 ` [PATCH v25 04/33] c++: Implement __is_const built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 05/33] libstdc++: Optimize std::is_const compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 06/33] c++: Implement __is_volatile built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 07/33] libstdc++: Optimize std::is_volatile compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 08/33] c++: Implement __is_array built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 09/33] libstdc++: Optimize std::is_array compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 10/33] c++: Implement __is_unbounded_array built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 11/33] libstdc++: Optimize std::is_unbounded_array compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 12/33] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 13/33] libstdc++: Optimize std::is_bounded_array compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 14/33] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-10-24 2:00 ` [PATCH v25 15/33] libstdc++: Optimize std::is_scoped_enum compilation performance Ken Matsui
2023-10-24 2:00 ` [PATCH v25 16/33] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 17/33] libstdc++: Optimize std::is_member_pointer compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 18/33] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 19/33] libstdc++: Optimize std::is_member_function_pointer compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 20/33] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 21/33] libstdc++: Optimize std::is_member_object_pointer compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 22/33] c++: Implement __is_reference built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 23/33] libstdc++: Optimize std::is_reference compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 24/33] c++: Implement __is_function built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 25/33] libstdc++: Optimize std::is_function compilation performance Ken Matsui
2023-10-24 11:01 ` Jonathan Wakely
2023-12-07 3:20 ` Ken Matsui
2023-10-24 2:01 ` [PATCH v25 26/33] c++: Implement __is_object built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 27/33] libstdc++: Optimize std::is_object compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 28/33] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 29/33] libstdc++: Optimize std::remove_pointer compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 30/33] c++: Implement __is_pointer built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 31/33] libstdc++: Optimize std::is_pointer compilation performance Ken Matsui
2023-10-24 2:01 ` [PATCH v25 32/33] c++: Implement __is_invocable built-in trait Ken Matsui
2023-10-24 2:01 ` [PATCH v25 33/33] libstdc++: Optimize std::is_invocable compilation performance Ken Matsui
2023-10-24 2:07 ` [PATCH v25 00/33] Optimize type traits " Ken Matsui
2023-12-07 5:11 ` [PATCH v26 00/23] " Ken Matsui
2023-12-10 18:19 ` Jason Merrill
2023-12-11 2:25 ` Ken Matsui
2023-12-16 16:40 ` Jonathan Wakely
2023-12-16 16:56 ` Ken Matsui
2023-12-20 3:22 ` Sandra Loosemore
2023-12-20 15:55 ` Patrick Palka
2023-12-20 17:13 ` Ken Matsui
2023-12-20 19:08 ` [PATCH] testsuite: Remove testsuite_tr1.h Ken Matsui
2023-12-21 13:29 ` Patrick Palka
2023-12-21 15:52 ` Patrick Palka
2023-12-21 19:38 ` Jason Merrill
2023-12-22 9:56 ` Ken Matsui
2023-12-22 10:05 ` [committed] c++: testsuite: Remove testsuite_tr1.h includes Ken Matsui
2023-12-07 5:32 ` [PATCH v26 00/23] Optimize type traits compilation performance Ken Matsui
2023-12-07 5:32 ` [PATCH v26 01/23] c++: Sort built-in traits alphabetically Ken Matsui
2023-12-07 5:32 ` [PATCH v26 02/23] c-family, c++: Look up built-in traits via identifier node Ken Matsui
2023-12-07 5:32 ` [PATCH v26 03/23] c++: Accept the use of built-in trait identifiers Ken Matsui
2023-12-07 5:32 ` [PATCH v26 04/23] c++: Implement __is_array built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 05/23] libstdc++: Optimize std::is_array compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 06/23] c++: Implement __is_bounded_array built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 07/23] libstdc++: Optimize std::is_bounded_array compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 08/23] c++: Implement __is_scoped_enum built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 09/23] libstdc++: Optimize std::is_scoped_enum compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 10/23] c++: Implement __is_member_pointer built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 11/23] libstdc++: Optimize std::is_member_pointer compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 12/23] c++: Implement __is_member_function_pointer built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 13/23] libstdc++: Optimize std::is_member_function_pointer compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 14/23] c++: Implement __is_member_object_pointer built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 15/23] libstdc++: Optimize std::is_member_object_pointer compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 16/23] c++: Implement __is_reference built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 17/23] libstdc++: Optimize std::is_reference compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 18/23] c++: Implement __is_function built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 19/23] libstdc++: Optimize std::is_function compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 20/23] c++: Implement __is_object built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 21/23] libstdc++: Optimize std::is_object compilation performance Ken Matsui
2023-12-07 5:33 ` [PATCH v26 22/23] c++: Implement __remove_pointer built-in trait Ken Matsui
2023-12-07 5:33 ` [PATCH v26 23/23] libstdc++: Optimize std::remove_pointer compilation performance Ken Matsui
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231010221520.3680267-3-kmatsui@gcc.gnu.org \
--to=kmatsui@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=libstdc++@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).