On Fri, Apr 27, 2012 at 8:36 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
> On Fri, Apr 27, 2012 at 7:53 AM, Sriraman Tallam <tmsri...@google.com> wrote:
>> On Fri, Apr 27, 2012 at 7:38 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>>> On Fri, Apr 27, 2012 at 7:35 AM, Sriraman Tallam <tmsri...@google.com> 
>>> wrote:
>>>> On Fri, Apr 27, 2012 at 6:38 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>>>>> On Thu, Apr 26, 2012 at 10:08 PM, Sriraman Tallam <tmsri...@google.com> 
>>>>> wrote:
>>>>>> Hi,
>>>>>>
>>>>>>   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:
>>>>>> http://codereview.appspot.com/5752064
>>>>>>
>>>>>
>>>>> 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?
>>
>> I am not sure I understand what the complication is here, but FWIW, I
>> tried this example and it works
>>
>> int foo ()
>> {
>>  return 0;
>> }
>>
>> int  __attribute__ ((target ("arch=corei7)))
>> foo ()
>> {
>>  return 1;
>> }
>>
>> int (*foo_p)() = foo;
>> int main ()
>> {
>>  return (*foo_p)();
>> }
>>
>> g++ -fPIC -O2 example.cc
>>
>>
>> Did you have something else in mind? Could you please elaborate if you
>> a have a particular case in mind.
>>
>
> That is what I meant.  But I didn't see it in your testcase.
> Can you add it to your testcase?
>
> Also you should verify the correct function is called in
> your testcase at run-time.

Ok, i will update the patch.

Thanks,
-Sri.

>
>
> Thanks.
>
>
> --
> H.J.

Reply via email to