> >>>>> >  class ipa_opt_pass_d;
> >>>>> >  typedef ipa_opt_pass_d *ipa_opt_pass;
> >>>>> > @@ -2894,7 +2896,8 @@ cgraph_node::only_called_directly_or_aliased_p 
> >>>>> > (void)
> >>>>> >           && !DECL_STATIC_CONSTRUCTOR (decl)
> >>>>> >           && !DECL_STATIC_DESTRUCTOR (decl)
> >>>>> >           && !used_from_object_file_p ()
> >>>>> > -         && !externally_visible);
> >>>>> > +         && !externally_visible
> >>>>> > +         && !lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)));
> >>>>>
> >>>>> How's it handled for our own generated resolver functions?  That is,
> >>>>> isn't there sth cheaper than doing a lookup_attribute here?  I see
> >>>>> that make_dispatcher_decl nor ix86_get_function_versions_dispatcher
> >>>>> adds the 'ifunc' attribute (though they are TREE_PUBLIC there).
> >>>>
> >>>> Is there any drawback of setting force_output flag?
> >>>> Honza
> >>>
> >>> Setting force_output may prevent some optimizations.  Can we add a bit
> >>> for IFUNC resolver?
> >>>
> >>
> >> Here is the patch to add ifunc_resolver to cgraph_node. Tested on x86-64
> >> and i686.  Any comments?
> >>
> >
> > PING:
> >
> > https://gcc.gnu.org/ml/gcc-patches/2018-04/msg00647.html
> >
> 
> PING.
OK, but please extend the verifier that ifunc_resolver flag is equivalent to
lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl))
so we are sure things stays in sync.

Thanks and sorry for the delay,
Honza
> 
> 
> -- 
> H.J.

Reply via email to