On Thu, 13 Feb 2025, Jakub Jelinek wrote:

> On Thu, Feb 13, 2025 at 12:48:44PM +0100, Richard Biener wrote:
> > So what this basically does is ensure we mark DECL_VALUE_EXPR when
> > VAR is marked which isn't done when marking a tree node.
> > 
> > That you special-case the hashtable walker is a workaround for
> > us not being able to say
> > 
> > struct GTY((mark_extra_stuff)) tree_decl_with_vis {
> > 
> > on 'tree' (or specifically the structs for a VAR_DECL).  And that we
> > rely on gengtype producing the 'tree' marker.  So we rely on the
> > hashtable keeping referenced trees live.
> 
> Yes, we could just arrange for gt_ggc_mx_lang_tree_node to additionally
> mark DECL_VALUE_EXPR for VAR_DECLs with DECL_HAS_VALUE_EXPR_P set (dunno how
> exactly).
> I think what the patch does should be slightly cheaper, we avoid those
> DECL_VALUE_EXPR hash table lookups in the common case where DECL_VALUE_EXPR
> of marked variables just refers to trees which reference only marked
> VAR_DECLs and no unmarked ones.

Agreed, I also don't know how to inject additional code into
gt_ggc_mx_lang_tree_node.

Richard.

Reply via email to