This is the mail archive of the
mailing list for the GCC project.
Re: User directed Function Multiversioning via Function Overloading (issue5752064)
On Fri, Apr 27, 2012 at 7:35 AM, Sriraman Tallam <firstname.lastname@example.org> wrote:
> On Fri, Apr 27, 2012 at 6:38 AM, H.J. Lu <email@example.com> wrote:
>> On Thu, Apr 26, 2012 at 10:08 PM, Sriraman Tallam <firstname.lastname@example.org> wrote:
>>> ? I have made the following changes in this new patch which is attached:
>>> * Use target attribute itself to create function versions.
>>> * Handle any number of ISA names and arch= ?args to target attribute,
>>> generating the right dispatchers.
>>> * Integrate with the CPU runtime detection checked in this week.
>>> * Overload resolution: If the caller's target matches any of the
>>> version function's target, then a direct call to the version is
>>> generated, no need to go through the dispatching.
>>> Patch also available for review here:
>> Does it work with
>> int foo ();
>> int foo () __attribute__ ((targetv("arch=corei7")));
>> int (*foo_p) () = foo?
> Yes, this will work. foo_p will be the address of the dispatcher
> function and hence doing (*foo_p)() will call the right version.
Even when foo_p is a global variable and compiled with -fPIC?