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]

Re: FWD: FLOATING-POINT CONSISTENCY, -FFLOAT-STORE, AND X86


Jamie Lokier <egcs@tantalophile.demon.co.uk> writes:

 > On Mon, Dec 14, 1998 at 06:51:28PM -0800, Edward Jason Riedy wrote:
 > > Using 80-bit spills is a quick approximation to extending the FP stack
 > > into memory, and it should give some of the benefit with very little 
 > > (hopefully) hassle.  Of course, 80 bits is wider than the normal spill,
 > > so it eats more memory bandwidth, cache space, etc.  Anyone who's that
 > > concerned will bend over backwards to avoid spills anyways.
 > 
 > I like this 80-bit spills idea.
 > 
 > But given that you can just put the FPU into 64-bit precision mode
 > anyway to get predictable arithmetic, I would like to see the option to
 > use just 64-bit spills for those programs that do run the FPU in 64-bit
 > precision mode.

I was just thinking along these lines.  It seems that in general when
one spills a register, one should spill the register and not part of
it.  This means that the spill width should be >= the FP register
width being used.

This would imply that for now, since the spill width is 64 bits &
can't immediately be changed, that the FPU be set to double precision,
and when gcc is capable of spilling other widths then the spill width
should be increased to 80 bits.  It'd be nice to allow it to be
selectable, but then you're really getting into what Craig Burley was
talking about - namely different compiled code could have different
spill widths and mucking with the FP control word could cause all
sorts of havoc.

 > Maybe that option could be implied by -ffast-math.

I'd much rather have more precise control over it.  Doesn't
-ffast-math imply various sorts of liberties to be taken?  This modulo
the above comment.

-- 
Harvey J. Stein
BFM Financial Research
hjstein@bfr.co.il


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