[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
Tue Feb 5 14:31:13 PST 2008


On Feb 5, 2008, at 2:25 PM, Chris Lattner wrote:

> On Feb 5, 2008, at 12:46 PM, Dale Johannesen wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=46764&view=rev
>> Log:
>> Implement sseregparm.
>
> Very nice.
>
> One thought about X86_SSECall: if it is only used to return float/
> double in an xmm reg, you could get the same effect by having the CFE
> lower ssecall functions to return <4x f32> and <2 x f64> instead of
> float/double.  On the callee, you'd end up with an "ret insertelement
> undef, fpval" and on the caller side you'd get an extract element.
>
> I think the calling convention stuff that Evan has been working on is
> powerful enough to model though sort of stuff, but might need minor
> extensions.  Do you think it would be reasonable do use this
> approach?  Doing so would eliminate a "magic" calling convention,
> which would be nice :)

It would, but coercing standard types to a different type strikes me  
as worse.
The IR really ought to be able to handle standard types without  
obfuscation.

What I really wanted was to put InReg on the return value.




More information about the llvm-commits mailing list