Toon Moene wrote:
>>> Can somebody with access to SPEC sources confirm / deny and file a bug
>>> report, if appropriate?
>>
>> It is an x87 bug only and has already been filed:
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39856  and working on
>> being fixed already.

The reason that is was not found before - despite several people running
SPEC's CPU benchmark - was exactly that they run it in 32bit mode. After
they send me the options, Richard could immediately reproduce the problem.

The patch is at:
http://gcc.gnu.org/ml/gcc-patches/2009-04/msg01926.html

> A x87 bug only exposed using SPEC ?!?!?!?

Seemingly yes. To a certain extend this was by accident as "-msse3" was
used, but it is on i586 only effective with -mfpmath=sse  (that is not
completely obvious). By the way, my tests using the Polyhedron benchmark
show that for 32bit, x87 and SSE are similarly fast, depending a lot on
the test case thus it does not slow down the benchmark too much.

The author regretted that Atom support is not available in 4.4 - it will
be in 4.5, but that's rather late given that the CPUs are around since
some time. I agree with this.

If I understood correctly, the 32bit mode was used since the 64bit mode
needs more than the available 2GB memory.

Similarly, the option -funroll-loops was avoided as they expect that
unrolling badly interacts with the small cache Atom processors have.
(That CPU2006 runs that long, does not make testing different options
that easy.)

> What are these guys thinking - like, lets cripple this benchmark and
> use completely out of date floating point arithmetic ?
> Duh, I hope the rest of their reporting is more useful ...

Well, I think it will be just a short article announcing the new
version. I think it is difficult to give a full account of a new
compiler if the article needs to be in the next issue. And SPEC
seemingly runs for 4 days with the additional problem that if a result
is too much off, the run completely aborts (which makes the journalists
avoid certain options).

I would have liked that the options were reported. For instance
-ffast-math was not used out of fear that it results in too imprecise
results causing SPEC to abort. (Admittedly, I'm also careful with that
option, though I assume that -ffast-math works for SPEC.) On the other
hand, certain flags implies by -ffast-math are already applied with -O1
in some commercial compilers.

David Korn wrote:
> They accused us of a too-hasty release.  My irony meter exploded!

I think their accuse it right and wrong at the same time. Between the
release candidate and the release there was indeed very little time.
Thus 4.4.0 was released before he could report the bug which he found in
RC1. -- And it is wrong since there was a very long Stage4.

Whether one agrees, also depends on one's expectations. I think .0
releases are usually not as stable as people only start with .0 testing
the release and that release candidates are also not much more tested
than the Stage4 builds. (And in general, I believe .0 releases or - even
most of the time the trunk - are quite well usable.)

Tobias

Reply via email to