[llvm-commits] [llvm] r46764 - in /llvm/trunk: include/llvm/CallingConv.h lib/Target/X86/X86CallingConv.td lib/Target/X86/X86ISelLowering.cpp

Dale Johannesen dalej at apple.com
Wed Feb 6 10:36:24 PST 2008


On Feb 6, 2008, at 10:25 AM, Chris Lattner wrote:

>>>>
>>>> Ah, that's a good idea.  Why not do that? :)  Generally, putting  
>>>> the
>>>> attribute on argument "#0" means that the attribute applies to the
>>>> function or the return value.  Given that 'inreg' doesn't make any
>>>> sense for a function, it would be fine to overload it for this,  
>>>> what
>>>> do you think?
>>>
>>> Sound good if it's that simple.  It looked more complicated, but I
>>> was probably missing something.  I'll look again.
>>
>> Attaching this to the Function node went smoothly enough, but I  
>> actually need it on the Return node, which it appears isn't  
>> supported in the current IR, but is in the the machine-level RET  
>> node.  I could transfer the info from the Function node to the RET  
>> node at some point, or even reference the Function node from the  
>> code that handles RET I suppose, but it seems cleaner to change the  
>> IR; which would break binary compatibility.   Considering that this  
>> works as is and is not all that important to begin with, I'm  
>> thinking it's best to wait until we can change the IR and do it  
>> right.  Thoughts?
>
> From the current SelectionDAG you can get a pointer to the Function  
> object, which should have the attribute.  Lowering for an ISD::RET  
> can thus getting it from following this chain,

I know, I just don't think that's the right way to do it.




More information about the llvm-commits mailing list