On 02/21/2010 12:13 PM, Richard Guenther wrote:
> On Sun, Feb 21, 2010 at 1:06 PM, Geert Bosch <[email protected]> wrote:
>>
>> On Feb 21, 2010, at 06:18, Steven Bosscher wrote:
>>> My point: gcc may fail to attract users (and/or may be losing users)
>>> when it tries to tailor to the needs of minorities.
>>>
>>> IMHO it would be much more reasonable to change the defaults to
>>> generate code that can run on, say, 95% of the computers still in use.
>>> If a user want to use the latest-and-greatest gcc for a really old
>>> machine, the burden of adding extra flags to change the default
>>> behavior of the compiler should be on that user.
>>>
>>> In this case of the i386 back end, that probably means changing the
>>> default to something like pentium3.
>>
>> The biggest change we need to make for x86 is to enable SSE2,
>> so we can get proper rounding behavior for float and double,
>> as well as significant performance increases.
>
> I think Joseph fixed the rounding behavior for 4.5. Also without an adjusted
> ABI you'd introduce x87 <-> SSE register moves which are not helpful
> for performance.
Exactly. For example,
double plus(double a, double b)
{
return a+b;
}
plus:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movsd 16(%ebp), %xmm0
addsd 8(%ebp), %xmm0
movsd %xmm0, -8(%ebp)
fldl -8(%ebp)
leave
ret
Andrew.