On Jan 27, 2008, at 10:09 AM, Dale Johannesen wrote:
> On Jan 26, 2008, at 11:18 PM, Chris Lattner wrote:
>> Author: lattner
>> Date: Sun Jan 27 01:18:20 2008
>> New Revision: 46412
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=46412&view=rev
>> Log:
>> Change x86-32 aggregate passing code to pass many aggregates "by
>> pieces"
>> instead of passing them with byval.  This allows us to get
>> significantly
>> better code without affecting the ABI (because x86-32 passes stuff
>> on the
>> stack).  Most significantly, we pass _Complex as a two scalar fp
>> values
>> now.  For example, before we compiled ccosf to:
>
> Not everything is passed on the stack with -msseregparm, which doesn't
> work now but should.  In that mode a _Complex is not passed the same
> as two scalars.

Right, in that case, the scalars need to be marked with the inreg  
attribute though.  In this case, they never will be marked with that,  
so I don't think this could cause a problem.  The corollary is when  
you use -mregparm, which marks integer registers as inreg.

-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to