www.delorie.com/archives/browse.cgi   search  
Mail Archives: pgcc/1998/03/16/18:16:14

X-pop3-spooler: POP3MAIL 2.1.0 b 3 961213 -bs-
Delivered-To: pcg AT goof DOT com
Message-ID: <dhl9JCA2SHD1EwEN@foobar.co.uk>
Date: Mon, 16 Mar 1998 00:39:18 +0000
Cc: beastium <beastium-list AT Desk DOT nl>
From: Paul Shirley <Paul AT chocolat DOT foobar DOT co DOT uk>
Subject: Re: paranoia & extra precision [was -fno-float-store in pgcc]
In-Reply-To: <19980312074656.14562@cerebro.laendle>
MIME-Version: 1.0
X-Mailer: Turnpike (32) Version 3.05 <XvxOq6RVjuMF4FZcD8CYlzCnSO>
Sender: Marc Lehmann <pcg AT goof DOT com>
Resent-From: Marc Lehmann <pcg AT goof DOT com>
Resent-Date: Mon, 4 May 1998 18:11:11 +0200
Resent-To: Marc Lehmann <root AT cerebro DOT laendle>
Resent-Message-Id: <E0yWNpf-0001rE-00 DOT pgcc-forever-1998-05-04-18-11-11-pgcc-forever AT cerebro>
Status: RO
X-Status: A
Lines: 19

In message <19980312074656 DOT 14562 AT cerebro DOT laendle>, Marc Lehmann
<pcg AT goof DOT com> writes
>This is why the loop stops at y = 5*10^-17. This is compliant to the ieee
>rule that intermediate values have to be at the same precision as the
>result.
>
>Now, when optimizing, gcc tries to keep values in the floating point
>registers. But other than, say, the m68k fpu, the x86 fpu has no notion of
>different data types, all fpu registers have the same type, long double (80
>bits extended format). 80 bits extended format => 64 bits mantissa => ~19
>digits precision.

This puzzles me, in the past I have had to force various C compilers to
keep intermediates on the fpu stack (by defining them as long doubles),
even when optimising. Is a C compiler really allowed to make this change
without explicit permission? (ie not just a general -On flag)

-- 
Paul Shirley

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019