Hi! On 2014-09-01T21:56:28-0400, tsaund...@mozilla.com wrote: > [...] this part [...]
... became commit b086d5308de0d25444243f482f2f3d1dfd3a9a62 (Subversion r214834), which added GGC support to 'hash_map', 'hash_set', and converted to those a number of 'htab' instances. It doesn't really interfere with my ongoing work, but I have doubts about two functions that were added here: > --- a/gcc/ggc.h > +++ b/gcc/ggc.h > +static inline void > +gt_ggc_mx (const char *s) > +{ > + ggc_test_and_set_mark (const_cast<char *> (s)); > +} > + > +static inline void > +gt_pch_nx (const char *) > +{ > +} If (in current sources) I put '__builtin_abort' calls into these functions, those don't trigger, so the functions are (currently) unused, at least in my configuration. Moreover, comparing these two to other string-related 'gt_ggc_mx' functions in (nowadays) 'gcc/ggc-page.cc', and string-related 'gt_pch_nx' functions in (nowadays) 'gcc/stringpool.cc' (..., which already did exist back then in 2014), we find that this 'gt_ggc_mx' doesn't call 'gt_ggc_m_S', so doesn't get the special string handling, and this 'gt_pch_nx' doesn't call 'gt_pch_n_S' and also doesn't 'gt_pch_note_object' manually, so I wonder how that ever worked? So maybe these two in fact never were used? Should we dare to put in the attached "GGC: Remove 'const char *' 'gt_ggc_mx', 'gt_pch_nx' variants"? Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From a1341d0e75ab20ee9ba09a1a8428c9d3dd2fd54a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Thu, 6 Jul 2023 17:44:35 +0200 Subject: [PATCH] GGC: Remove 'const char *' 'gt_ggc_mx', 'gt_pch_nx' variants Those were added in 2014 commit b086d5308de0d25444243f482f2f3d1dfd3a9a62 (Subversion r214834) "support ggc hash_map and hash_set". If (in current sources) I put '__builtin_abort' calls into these functions, those don't trigger, so the functions are (currently) unused, at least in my configuration. Moreover, comparing these two to other string-related 'gt_ggc_mx' functions in (nowadays) 'gcc/ggc-page.cc', and string-related 'gt_pch_nx' functions in (nowadays) 'gcc/stringpool.cc' (..., which already did exist back then in 2014), we find that this 'gt_ggc_mx' doesn't call 'gt_ggc_m_S', so doesn't get the special string handling, and this 'gt_pch_nx' doesn't call 'gt_pch_n_S' and also doesn't 'gt_pch_note_object' manually, so I wonder how that ever worked? So maybe these two in fact never were used? gcc/ * ggc.h (gt_ggc_mx (const char *s), gt_pch_nx (const char *)): Remove. --- gcc/ggc.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/gcc/ggc.h b/gcc/ggc.h index 78eab7eaba6..1f3d665fc57 100644 --- a/gcc/ggc.h +++ b/gcc/ggc.h @@ -331,17 +331,6 @@ ggc_alloc_cleared_gimple_statement_stat (size_t s CXX_MEM_STAT_INFO) return (gimple *) ggc_internal_cleared_alloc (s PASS_MEM_STAT); } -inline void -gt_ggc_mx (const char *s) -{ - ggc_test_and_set_mark (const_cast<char *> (s)); -} - -inline void -gt_pch_nx (const char *) -{ -} - inline void gt_pch_nx (bool) { } inline void gt_pch_nx (char) { } inline void gt_pch_nx (signed char) { } -- 2.34.1