[Python-Dev] stupid floating point question...
Martin von Loewis
loewis@informatik.hu-berlin.de
Thu, 28 Sep 2000 17:37:10 +0200 (MET DST)
> A *good* compiler won't collapse *any* fp expressions at
> compile-time, because doing so can change the 754 semantics at
> runtime (for example, the evaluation of 1./6 triggers the 754
> "inexact" signal, and the compiler has no way to know whether the
> user is expecting that to happen at runtime, so a good compiler will
> leave it alone
Of course, that doesn't say anything about what *most* compilers do.
For example, gcc, on i586-pc-linux-gnu, compiles
double foo(){
return (double)1/6;
}
into
.LC0:
.long 0x55555555,0x3fc55555
.text
.align 4
.globl foo
.type foo,@function
foo:
fldl .LC0
ret
when compiling with -fomit-frame-pointer -O2. That still doesn't say
anything about what most compilers do - if there is interest, we could
perform a comparative study on the subject :-)
The "would break 754" argument is pretty weak, IMO - gcc, for example,
doesn't claim to comply to that standard.
Regards,
Martin