[PATCH] Improve -Ofast vectorization of std::sin etc. (PR libstdc++/81706)

Jakub Jelinek jakub@redhat.com
Tue Sep 12 07:49:00 GMT 2017


On Sat, Sep 09, 2017 at 03:42:35PM +0200, Jason Merrill wrote:
> On Fri, Sep 1, 2017 at 1:12 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> > +                 tree s = lookup_attribute ("omp declare simd",
> > +                                            DECL_ATTRIBUTES (newdecl));
> > +                 if (s)
> > +                   {
> > +                     tree b
> > +                       = builtin_decl_explicit (DECL_FUNCTION_CODE (newdecl));
> > +                     if (b)
> > +                       duplicate_one_attribute (&DECL_ATTRIBUTES (b), s,
> > +                                                "omp declare simd");
> > +                   }
> 
> Is there a reason not to set b first and move the lookup of s into the
> function as well?

I wanted to handle the most common case (no DECL_ATTRIBUTES at all) and the
second most common case (lookup_attribute returning NULL) inline, otherwise
we'll do an extra function call for all builtins in all cases.
But if you strongly prefer that lookup to be in duplicate_one_attribute,
I can change the patch and retest.

	Jakub



More information about the Libstdc++ mailing list