From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1059) id 52C8D3857362; Mon, 9 May 2022 12:54:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 52C8D3857362 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Nathan Sidwell To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-209] [c++][NFC] Rename Attached to Keyed X-Act-Checkin: gcc X-Git-Author: Nathan Sidwell X-Git-Refname: refs/heads/master X-Git-Oldrev: 49e8f813bb5bd08850309166fbfba8a7346cd8c9 X-Git-Newrev: addedd48e805edcf555c4fef80e531cd7dbf0c45 Message-Id: <20220509125418.52C8D3857362@sourceware.org> Date: Mon, 9 May 2022 12:54:18 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 May 2022 12:54:18 -0000 https://gcc.gnu.org/g:addedd48e805edcf555c4fef80e531cd7dbf0c45 commit r13-209-gaddedd48e805edcf555c4fef80e531cd7dbf0c45 Author: Nathan Sidwell Date: Mon May 9 04:36:30 2022 -0700 [c++][NFC] Rename Attached to Keyed With modules, certain decls are 'scoped' with another decl. I chose the name 'attached', but that has become something specific in the modules context, so is no longer a good name. The alternative name I considered was 'keyed', but we already had the concept of a key virtual function (from the ABI), which is why I went with 'attached'. However, I think 'keyed' is the less worse name. I think there's less chance of confusion. gcc/cp/ * cp-tree.h (DECL_MODULE_KEYED_DECLS_P): Renamed from DECL_MODULE_ATTACHMENTS_P. (struct lane_decl_base): Rename module_attached_p to module_keyed_decls_p. (maybe_key_decl): Renamed from maybe_attach_decl. * lambda.cc (record_lambda_scope): Adjust. * lex.cc (cxx_dup_lang_specific_decl): Adjust. * module.cc (keyed_map_t, keyed_table): Renamed from attached_map_t, attached_table. (enum merge_kind): Rename MK_attached to MK_keyed. (trees_out::lang_decl_bools): Adjust. (trees_in::lang_decl_bools): Adjust. (trees_in::decl_value): Adjust. (trees_out::get_merge_kind): Adjust. (trees_out::key_mergeable): Adjust. (trees_in::key_mergeable): Adjust. (maybe_key_decl): Rename from maybe_attach_decl. (direct_import): Adjust. (fini_modules): Adjust. Diff: --- gcc/cp/cp-tree.h | 10 ++++----- gcc/cp/lambda.cc | 2 +- gcc/cp/lex.cc | 4 ++-- gcc/cp/module.cc | 64 ++++++++++++++++++++++++++++---------------------------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 663fe7a20fc..10ecab76082 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1734,9 +1734,9 @@ check_constraint_info (tree t) (DECL_LANG_SPECIFIC (DECL_MODULE_CHECK (NODE))->u.base.module_entity_p) /* DECL that has attached decls for ODR-relatedness. */ -#define DECL_MODULE_ATTACHMENTS_P(NODE) \ +#define DECL_MODULE_KEYED_DECLS_P(NODE) \ (DECL_LANG_SPECIFIC (TREE_CHECK2(NODE,FUNCTION_DECL,VAR_DECL))\ - ->u.base.module_attached_p) + ->u.base.module_keyed_decls_p) /* Whether this is an exported DECL. Held on any decl that can appear at namespace scope (function, var, type, template, const or @@ -2836,8 +2836,8 @@ struct GTY(()) lang_decl_base { unsigned module_import_p : 1; /* from an import */ unsigned module_entity_p : 1; /* is in the entitity ary & hash. */ - /* VAR_DECL or FUNCTION_DECL has attached decls. */ - unsigned module_attached_p : 1; + /* VAR_DECL or FUNCTION_DECL has keyed decls. */ + unsigned module_keyed_decls_p : 1; /* 12 spare bits. */ }; @@ -7196,7 +7196,7 @@ extern unsigned get_importing_module (tree, bool = false) ATTRIBUTE_PURE; /* Where current instance of the decl got declared/defined/instantiated. */ extern void set_instantiating_module (tree); extern void set_defining_module (tree); -extern void maybe_attach_decl (tree ctx, tree decl); +extern void maybe_key_decl (tree ctx, tree decl); extern void mangle_module (int m, bool include_partition); extern void mangle_module_fini (); diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc index afac53b6d7c..0a9f0f8f310 100644 --- a/gcc/cp/lambda.cc +++ b/gcc/cp/lambda.cc @@ -1431,7 +1431,7 @@ record_lambda_scope (tree lambda) { tree closure = LAMBDA_EXPR_CLOSURE (lambda); gcc_checking_assert (closure); - maybe_attach_decl (lambda_scope, TYPE_NAME (closure)); + maybe_key_decl (lambda_scope, TYPE_NAME (closure)); } } diff --git a/gcc/cp/lex.cc b/gcc/cp/lex.cc index 739f0890e01..784debcd705 100644 --- a/gcc/cp/lex.cc +++ b/gcc/cp/lex.cc @@ -1008,8 +1008,8 @@ cxx_dup_lang_specific_decl (tree node) (module_purview_p still does). */ ld->u.base.module_entity_p = false; ld->u.base.module_import_p = false; - ld->u.base.module_attached_p = false; - + ld->u.base.module_keyed_decls_p = false; + if (GATHER_STATISTICS) { tree_node_counts[(int)lang_decl] += 1; diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 18dabfcc9ac..6126316a6a0 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -2697,11 +2697,11 @@ pending_map_t *pending_table; completed. */ vec *post_load_decls; -/* Some entities are attached to another entitity for ODR purposes. +/* Some entities are keyed to another entitity for ODR purposes. For example, at namespace scope, 'inline auto var = []{};', that - lambda is attached to 'var', and follows its ODRness. */ -typedef hash_map> attached_map_t; -static attached_map_t *attached_table; + lambda is keyed to 'var', and follows its ODRness. */ +typedef hash_map> keyed_map_t; +static keyed_map_t *keyed_table; /********************************************************************/ /* Tree streaming. The tree streaming is very specific to the tree @@ -2766,7 +2766,7 @@ enum merge_kind MK_partial, MK_enum, /* Found by CTX, & 1stMemberNAME. */ - MK_attached, /* Found by attachee & index. */ + MK_keyed, /* Found by key & index. */ MK_friend_spec, /* Like named, but has a tmpl & args too. */ MK_local_friend, /* Found by CTX, index. */ @@ -5533,7 +5533,7 @@ trees_out::lang_decl_bools (tree t) that's the GM purview, so not what the importer will mean */ WB (lang->u.base.module_purview_p && !header_module_p ()); if (VAR_OR_FUNCTION_DECL_P (t)) - WB (lang->u.base.module_attached_p); + WB (lang->u.base.module_keyed_decls_p); switch (lang->u.base.selector) { default: @@ -5603,7 +5603,7 @@ trees_in::lang_decl_bools (tree t) RB (lang->u.base.dependent_init_p); RB (lang->u.base.module_purview_p); if (VAR_OR_FUNCTION_DECL_P (t)) - RB (lang->u.base.module_attached_p); + RB (lang->u.base.module_keyed_decls_p); switch (lang->u.base.selector) { default: @@ -7701,11 +7701,11 @@ trees_out::decl_value (tree decl, depset *dep) if (VAR_OR_FUNCTION_DECL_P (inner) && DECL_LANG_SPECIFIC (inner) - && DECL_MODULE_ATTACHMENTS_P (inner) + && DECL_MODULE_KEYED_DECLS_P (inner) && !is_key_order ()) { - /* Stream the attached entities. */ - auto *attach_vec = attached_table->get (inner); + /* Stream the keyed entities. */ + auto *attach_vec = keyed_table->get (inner); unsigned num = attach_vec->length (); if (streaming_p ()) u (num); @@ -7998,12 +7998,12 @@ trees_in::decl_value () if (VAR_OR_FUNCTION_DECL_P (inner) && DECL_LANG_SPECIFIC (inner) - && DECL_MODULE_ATTACHMENTS_P (inner)) + && DECL_MODULE_KEYED_DECLS_P (inner)) { /* Read and maybe install the attached entities. */ bool existed; - auto &set = attached_table->get_or_insert (STRIP_TEMPLATE (existing), - &existed); + auto &set = keyed_table->get_or_insert (STRIP_TEMPLATE (existing), + &existed); unsigned num = u (); if (is_new == existed) set_overrun (); @@ -10200,9 +10200,9 @@ trees_out::get_merge_kind (tree decl, depset *dep) = LAMBDA_EXPR_EXTRA_SCOPE (CLASSTYPE_LAMBDA_EXPR (TREE_TYPE (decl)))) if (TREE_CODE (scope) == VAR_DECL - && DECL_MODULE_ATTACHMENTS_P (scope)) + && DECL_MODULE_KEYED_DECLS_P (scope)) { - mk = MK_attached; + mk = MK_keyed; break; } @@ -10492,13 +10492,13 @@ trees_out::key_mergeable (int tag, merge_kind mk, tree decl, tree inner, } break; - case MK_attached: + case MK_keyed: { gcc_checking_assert (LAMBDA_TYPE_P (TREE_TYPE (inner))); tree scope = LAMBDA_EXPR_EXTRA_SCOPE (CLASSTYPE_LAMBDA_EXPR (TREE_TYPE (inner))); gcc_checking_assert (TREE_CODE (scope) == VAR_DECL); - auto *root = attached_table->get (scope); + auto *root = keyed_table->get (scope); unsigned ix = root->length (); /* If we don't find it, we'll write a really big number that the reader will ignore. */ @@ -10506,7 +10506,7 @@ trees_out::key_mergeable (int tag, merge_kind mk, tree decl, tree inner, if ((*root)[ix] == inner) break; - /* Use the attached-to decl as the 'name'. */ + /* Use the keyed-to decl as the 'name'. */ name = scope; key.index = ix; } @@ -10773,12 +10773,12 @@ trees_in::key_mergeable (int tag, merge_kind mk, tree decl, tree inner, gcc_unreachable (); case NAMESPACE_DECL: - if (mk == MK_attached) + if (mk == MK_keyed) { if (DECL_LANG_SPECIFIC (name) && VAR_OR_FUNCTION_DECL_P (name) - && DECL_MODULE_ATTACHMENTS_P (name)) - if (auto *set = attached_table->get (name)) + && DECL_MODULE_KEYED_DECLS_P (name)) + if (auto *set = keyed_table->get (name)) if (key.index < set->length ()) { existing = (*set)[key.index]; @@ -18566,10 +18566,10 @@ set_originating_module (tree decl, bool friend_p ATTRIBUTE_UNUSED) DECL_MODULE_EXPORT_P (decl) = true; } -/* DECL is attached to ROOT for odr purposes. */ +/* DECL is keyed to CTX for odr purposes. */ void -maybe_attach_decl (tree ctx, tree decl) +maybe_key_decl (tree ctx, tree decl) { if (!modules_p ()) return; @@ -18581,14 +18581,14 @@ maybe_attach_decl (tree ctx, tree decl) gcc_checking_assert (DECL_NAMESPACE_SCOPE_P (ctx)); - if (!attached_table) - attached_table = new attached_map_t (EXPERIMENT (1, 400)); + if (!keyed_table) + keyed_table = new keyed_map_t (EXPERIMENT (1, 400)); - auto &vec = attached_table->get_or_insert (ctx); + auto &vec = keyed_table->get_or_insert (ctx); if (!vec.length ()) { retrofit_lang_decl (ctx); - DECL_MODULE_ATTACHMENTS_P (ctx) = true; + DECL_MODULE_KEYED_DECLS_P (ctx) = true; } vec.safe_push (decl); } @@ -18898,8 +18898,8 @@ direct_import (module_state *import, cpp_reader *reader) if (import->loadedness < ML_LANGUAGE) { - if (!attached_table) - attached_table = new attached_map_t (EXPERIMENT (1, 400)); + if (!keyed_table) + keyed_table = new keyed_map_t (EXPERIMENT (1, 400)); import->read_language (true); } @@ -20004,9 +20004,9 @@ fini_modules () delete pending_table; pending_table = NULL; - /* Or any attachments -- Let it go! */ - delete attached_table; - attached_table = NULL; + /* Or any keys -- Let it go! */ + delete keyed_table; + keyed_table = NULL; /* Allow a GC, we've possibly made much data unreachable. */ ggc_collect ();