On Mon, Aug 16, 2021 at 8:15 AM Richard Biener <richard.guent...@gmail.com> wrote: > > On Fri, Aug 13, 2021 at 11:14 AM Martin Liška <mli...@suse.cz> wrote: > > > > Hi. > > > > This is a first part fixing the PR. It makes sense making "naked" functions > > "noipa". > > What's missing is IPA MOD pass support where the pass should not optimize > > fns > > with "noipa" attributes. > > > > @Honza: Can you please implement that? > > > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > > > Ready to be installed? > > Thanks, > > Martin > > > > PR ipa/101354 > > > > gcc/ChangeLog: > > > > * attribs.c (decl_attributes): Make naked functions "noipa" > > functions. > > --- > > gcc/attribs.c | 11 +++-------- > > 1 file changed, 3 insertions(+), 8 deletions(-) > > > > diff --git a/gcc/attribs.c b/gcc/attribs.c > > index afa485ed37d..e149f5b66dd 100644 > > --- a/gcc/attribs.c > > +++ b/gcc/attribs.c > > @@ -517,14 +517,9 @@ decl_attributes (tree *node, tree attributes, int > > flags, > > if (TREE_CODE (*node) == FUNCTION_DECL > > && attributes > > && lookup_attribute ("naked", attributes) != NULL > > - && lookup_attribute_spec (get_identifier ("naked"))) > > - { > > - if (lookup_attribute ("noinline", attributes) == NULL) > > - attributes = tree_cons (get_identifier ("noinline"), NULL, > > attributes); > > - > > - if (lookup_attribute ("noclone", attributes) == NULL) > > - attributes = tree_cons (get_identifier ("noclone"), NULL, > > attributes); > > - } > > + && lookup_attribute_spec (get_identifier ("naked")) > > + &&(lookup_attribute ("noipa", attributes) == NULL)) > > + attributes = tree_cons (get_identifier ("noipa"), NULL, attributes); > > that adds noipa only for the purpose of "decomposing" it below.
Hmm, no, we do seem to check for "noipa" in quite some places, so ignore me. Richard. > > /* A "noipa" function attribute implies "noinline", "noclone" and > > "no_icf" > > for those targets that support it. */ > > -- > > 2.32.0 > >