Ping.

On Fri, Aug 24, 2012 at 5:34 PM, Sriraman Tallam <tmsri...@google.com> wrote:
> Hi Jason,
>
>    I have created a new patch to use target hooks for all the
> functionality and make the front-end just call the target hooks at the
> appropriate places. This is more like what you suggested in a previous
> mail. In particular, target hooks address the following questions:
>
> * Determine if two function decls with the same signature are versions.
> * Determine the new assembler name of a function version.
> * Generate the dispatcher function for a set of function versions.
> * Compare versions to see if one has a higher priority over the other.
>
> Patch attached and also available for review at:
>
> http://codereview.appspot.com/5752064/
>
> Hope this is more along the lines of what you had in mind, please let
> me know what you think.
>
> Thanks,
> -Sri.
>
>
> On Mon, Jul 30, 2012 at 12:01 PM, Sriraman Tallam <tmsri...@google.com> wrote:
>> On Thu, Jul 19, 2012 at 1:39 PM, Jason Merrill <ja...@redhat.com> wrote:
>>>
>>> On 07/10/2012 03:14 PM, Sriraman Tallam wrote:
>>>>
>>>> I am using the questions you asked previously
>>>> to explain how I solved each of them. When working on this patch, these
>>>> are the exact questions I had and tried to address it.
>>>>
>>>> * Does this attribute affect a function signature?
>>>>
>>>> The function signature should be changed when there is more than one
>>>> definition/declaration of foo distinguished by unique target attributes.
>>>
>>> >[...]
>>>
>>> I agree.  I was trying to suggest that these questions are what the front 
>>> end needs to care about, not about versioning specifically.  If these 
>>> questions are turned into target hooks, all of the logic specific to 
>>> versioning can be contained in the target.
>>>
>>> My only question intended to be answered by humans is, do people think 
>>> moving the versioning logic behind more generic target hooks is worthwhile?
>>
>> I have  some comments related
>>
>> For the example below,
>>
>> // Default version.
>> int foo ()
>> {
>>   .....
>> }
>>
>> // Version  XXX feature supported by Target ABC.
>> int foo __attribute__ ((target ("XXX")))
>> {
>>    ....
>> }
>>
>> How should the second version of foo be treated for targets where
>> feature XXX is not supported? Right now, I am working on having my
>> patch completely ignore such function versions when compiled for
>> targets that do not understand the attribute. I could move this check
>> into a generic target hook so that a function definition that does not
>> make sense for the current target is ignored.
>>
>> Also, currently the patch uses target hooks to do the following:
>>
>> - Find if a particular version can be called directly, rather than go
>> through the dispatcher.
>> - Determine what the dispatcher body should be.
>> - Determining the order in which function versions must be dispatched.
>>
>> I do not have a strong opinion on whether the entire logic should be
>> based on target hooks.
>>
>> Thanks,
>> -Sri.
>>
>>>
>>>
>>>
>>> Jason

Reply via email to