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

Chris Lattner clattner at apple.com
Wed Feb 6 10:25:12 PST 2008


>>>
>>> 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,

-Chris



More information about the llvm-commits mailing list