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