GCC beaten by ICC in stupid trig test!

Scott Robert Ladd coyote@coyotegulch.com
Wed Mar 17 00:36:00 GMT 2004


Robert Dewar wrote:
> The other view point here is "please don't assume the programmer
> is incompetent and does not know what he is doing. Floating-point
> operations are precisely defined in IEEE and if I am a serious
> fpt programmer, I write the computations I want, and I do not
> want the compiler substituting arbitrary non-equivalent
> expressions.
> 
> It's OK by me (though I consider it dubious and useless) to have
> such optimizations around. It is absolutely essential that it be
> possible to disable them.
> 
> I suppose that for people writing casual fpt code without error
> analysis assuming that it gives some acceptable approximation
> of real arithmetic, such optimizations are relatively harmless.
> After all if you are happy with wrong results, then I suppose
> getting different wrong results faster is not unacceptable.
> (wrong results here = results whose accuracy is unknown).
> 
> But as above, for serious fpt programming, a compiler that
> performs non-meaning preserving transformations (e.g. assuming
> that fpt addition is commutative, or even worse associative),
> is a menace.

I strongly concur with everything Robert said here. People have a wide 
range of requirements for floating point code; what may work well for a 
game is not going to work well for a details. Sometimes, you need high 
accuracy; sometimes you need reproducible results on many platforms; 
sometimes, you need fast numbers the have low precision requirements. A 
quality compiler must make clear how options affect these parameters, 
and allow precise control of its behavior.

I'm working on an advanced accuracy benchmark for C, C++, and Fortran 
95; if anyone has suggestions, please feel free to e-mail me privately.

-- 
Scott Robert Ladd
Coyote Gulch Productions (http://www.coyotegulch.com)
Software Invention for High-Performance Computing



More information about the Gcc mailing list