This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Change x86 default arch for 4.5?


On Feb 21, 2010, at 12:34, Joseph S. Myers wrote:

> Correct - I said API, not ABI.  The API for C programs on x86 GNU/Linux 
> involves FLT_EVAL_METHOD == 2, whereas that on x86 Darwin involves 
> FLT_EVAL_METHOD == 0 and that on FreeBSD involves FLT_EVAL_METHOD == 2 
> but with FPU rounding precision set to 53 bits so only excess range, not 
> precision, applies.

Your following paragraph "If people really want a new 32-bit x86 ABI..."
threw me off. Your message contained the word ABI 4 times, and API once.
I missed it, apologies.

However, I think this is a bit of a red herring. There
really is no consistent well-defined model for our current 
floating-point semantics on x86. Wether a value is computed with
extra precision or not depends on many factors, such as optimization.

The best way to describe the current situation is that any operation
may or may not keep excess precision or range. Your patch to incur 
more double rounding by going through memory more often does not 
really solve this issue, it will just make results a little more 
consistent, but possible also less accurate and less precise.

So, in short, we all will lose in a quest to support C99
on least common denominator hardware. We will not
be able to achieve full compliance, we will all have to 
deal with worse performance due to additional spilling. 
All at the same time any other compiler will
happily take advantage of the user's hardware and compile
great code that is faster and produces better results.

  -Geert


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]