[llvm-commits] [llvm] r46764 - in /llvm/trunk: include/llvm/CallingConv.h lib/Target/X86/X86CallingConv.td lib/Target/X86/X86ISelLowering.cpp
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,
More information about the llvm-commits