[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#212912: gcc-3.3: [alpha] Linux linker/loader does not support -mieee-conformant

On Monday 06 October 2003 03:42, Falk Hueffner wrote:
> > > Richard Henderson (the Alpha fellow from Red Hat) said he wouldn't
> > > accept it into the general GCC unless all users of GCC (i.e. BSD,
> > > etc) came forward and said they wanted it.
> > >
> > > He also gave three reasons why he personally didn't like it:
> > > 1- The default under DEC C is to not IEEE compliance
> > > 2- IEEE compliance leads to 'severe' performance penalties
> > > 3- The vast majority of SIGFPEs are due to unitialized data reads
> > >
> > > While one and three might be true (timing tests show that two is
> > > just plain wrong),
> Well, 20% looks pretty severe to me.

For the record, the test results are as follows (on an EV56 machine):

The programs:
a)  A hard coded C loop that takes 1024 complex Fast Fourier Transform of 2048 
vector doubles.
b)  Monte Carlo option pricing.
c)  Molecular Dynamics simulation.

The results (with out/with):
a)  9.4s / 11.4s (82.5%)
b)  10.2s / 10.3s  (99.0%)
c)  191.0s / 201.2s (95.0%)

Program (a) was chosen to give an upper bound (as it did nothing but crunch 
crunch crunch in a tight loop).  Programs (b) and (c) (two pieces of code 
from our department I had access to) to be Representative of the more 
standard intensive numerical simulations (i.e. code that has to maintain data 
structures for dynamic meshing, etc).

I guess all can draw their own conclusions.  However, I think it's fairly safe 
to conclude that the difference made to the performance of Joe average 
application is not even going to be measurable over OS noise.

Do keep in mind that the purpose of the patch is simply to minimize work.  The 
set of all packages that don't require IEEE compliance and need -mno-ieee to 
perform acceptably (I personally only know of one -- the FFTW libraries) is a 
lot smaller than those that SIGFPE without -mieee.

> Like rth, I'd say as a minimum -ffast-math should turn off IEEE
> complicance. When that's the case, the patch would be OK with me,
> since actually also very little code needs high floating point
> performance.

I don't have time right now to look at any more GCC code, but from what I have 
seen, the OVERRIDE_OPTIONS macro looks like it might do what you are looking 
for.  Possibly someone with could code this up as an additional patch.

In the meantime, you can always specify -mno-ieee.

Later  -T

 Tyson Whitehead  (-twhitehe@uwo.ca -- WSC-)
 Computer Engineer                        Dept. of Applied Mathematics,
 Graduate Student- Applied Mathematics    University of Western Ontario,
 GnuPG Key ID# 0x8A2AB5D8                 London, Ontario, Canada

Reply to: