RE: Function Multiversioning in GCC6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Victor,

Thanks to you and  Abraham Duenas, and Evgeny Stupachenko for your work on FMV - it's a very neat feature and from my own investigations so far it works with minimal overhead even when used with inlined functions.

One thing that could be stated explicitly in the article is that use of the 'target' attribute with identically named functions (i.e. the first code sample in the lwn article) is still C++-only in gcc-6 and if you want to do this with C you need to create your own ifunc resolver and have several differently named functions.

Thanks,
Billy.



> -----Original Message-----
> From: Victor Rodriguez [mailto:vm.rod25@xxxxxxxxx]
> Sent: Thursday, March 30, 2017 1:10 AM
> To: O Mahony, Billy <billy.o.mahony@xxxxxxxxx>
> Cc: Xi Ruoyao <ryxi@xxxxxxxxxxxxxxxxx>; gcc-help@xxxxxxxxxxx
> Subject: Re: Function Multiversioning in GCC6
> 
> On Thu, Mar 23, 2017 at 4:45 AM, O Mahony, Billy
> <billy.o.mahony@xxxxxxxxx> wrote:
> >
> > Hi Xi,
> >
> > Thanks for the clarification/confirmation.
> >
> > Regards,
> > Billy.
> >
> > > -----Original Message-----
> > > From: Xi Ruoyao [mailto:ryxi@xxxxxxxxxxxxxxxxx]
> > > Sent: Thursday, March 23, 2017 9:21 AM
> > > To: O Mahony, Billy <billy.o.mahony@xxxxxxxxx>
> > > Cc: ryxi@xxxxxxxxxxxxxxxxx; gcc-help@xxxxxxxxxxx
> > > Subject: Re: Function Multiversioning in GCC6
> > >
> > > On 2017-03-22 10:51 +0000, O Mahony, Billy wrote:
> > >
> > > > However when I compile the first example in this LWN article
> > > > https://lwn.net/Articles/691932/ with gcc-6 C compiler it fails
> > > > with
> > > > (error: redefinition of
> > > > 'foo'...) .
> > >
> > > The document <https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Function-
> > > Multiversioning.html> said:
> > >
> > >     With the GNU *C++* front end, for x86 targets, you may specify
> > > multiple versions of the function.
> > >
> > > FMV doesn't work with C FE.  In C, __attribute__((target("sse4.2")))
> > > just means to compile this function with -msse4.2, see
> > > <https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Common-Function-
> > > Attributes.html>.
> > >
> > > --
> > > Xi Ruoyao <ryxi@xxxxxxxxxxxxxxxxx>
> > > School of Aerospace Science and Technology, Xidian University
> >
> 
> You can also read this LWN article:
> 
> https://lwn.net/Articles/691932/




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux