From: Michal Jires Date: Thu, 24 Oct 2024 00:04:12 +0000 (+0200) Subject: ipa-strub: Replace cgraph_node order with uid. X-Git-Tag: basepoints/gcc-16~3209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bad3714b117f6d5c09b3dc8925441ce6745d0a9d;p=thirdparty%2Fgcc.git ipa-strub: Replace cgraph_node order with uid. ipa_strub_set_mode_for_new_functions uses node order as unique ever increasing identifier. This is better satisfied with uid. Order loses uniqueness with following patches. gcc/ChangeLog: * ipa-strub.cc (ipa_strub_set_mode_for_new_functions): Replace order with uid. (pass_ipa_strub_mode::execute): Likewise. --- diff --git a/gcc/ipa-strub.cc b/gcc/ipa-strub.cc index f6e09cd50b6d..29ba143b4620 100644 --- a/gcc/ipa-strub.cc +++ b/gcc/ipa-strub.cc @@ -2257,16 +2257,16 @@ remove_named_attribute_unsharing (const char *name, tree *attrs) } } -/* Record the order of the last cgraph entry whose mode we've already set, so +/* Record the uid of the last cgraph entry whose mode we've already set, so that we can perform mode setting incrementally without duplication. */ -static int last_cgraph_order; +static int last_cgraph_uid; /* Set strub modes for functions introduced since the last call. */ static void ipa_strub_set_mode_for_new_functions () { - if (symtab->order == last_cgraph_order) + if (symtab->cgraph_max_uid == last_cgraph_uid) return; cgraph_node *node; @@ -2281,13 +2281,13 @@ ipa_strub_set_mode_for_new_functions () continue; /* Already done. */ - if (node->order < last_cgraph_order) + if (node->get_uid () < last_cgraph_uid) continue; set_strub_mode (node); } - last_cgraph_order = symtab->order; + last_cgraph_uid = symtab->cgraph_max_uid; } /* Return FALSE if NODE is a strub context, and TRUE otherwise. */ @@ -2663,7 +2663,7 @@ pass_ipa_strub::adjust_at_calls_calls (cgraph_node *node) unsigned int pass_ipa_strub_mode::execute (function *) { - last_cgraph_order = 0; + last_cgraph_uid = 0; ipa_strub_set_mode_for_new_functions (); /* Verify before any inlining or other transformations. */