Andreas Lange wrote:
Zdenek Kotala wrote:
Main problem is -fast switch. It modifies behavior of floating point
operation (it is reason why It is not good option for postgres) and
use another floating point libraries and some function are inlined. It
is reason why pow test passed with -fast switch without -lm switch.
Detail description of -fast you can found on
http://docs.sun.com/source/819-3688/cc_ops.app.html
I noticed that the Sun FAQ now has changed from hinting that -fast might
be very beneficial to recomend staying away from it.
Yes, because there was some problem with regression test.
Using -fast is an old habit, has been building with it for years. I've
seen that the testsuite breaks (in date/time) with only -fast, but it
seems the only option one has to disable to normalize floating point
enough is -fns. I hope passing the testsuite really means that fp math
behaves correctly. If I'm wrong about that, I'll have to change our
build routine.
I little bit played with compiler switches and only -xO5 had significant
deal for postgres. But I only tested it with pgbench.
Very important thing is that backend sends floating point number in
binary form. It means that you must compile also client library and
client application with -fast switch. If you don't do this, the result
should be nonsense.
Beeing lazy, it is a good bit easier to go with -fast and turn of the
problematic optimization with:
-fast -fns=no
than expanding the -fast macro and having to add all parameters:
-dalign -nofstore -fsimple=2 -fsingle -xalias_level=basic -native
-xdepend -xlibmil -xlibmopt -xO5 -xregs=frameptr
Parameters -fsimple=2 -xlibmopt -xlibmil also break IEEE floating point
arithmetic and also break errno behavior (does not report errno). If you
look in adt/float.c source code, you can see comment from Tom about
problems with errno on Linux many years ago. This should happen also
with -xlibmil and -xlibmopt switch.
My suggestion is do not use -fast anyway. Let me know if I'm not correct.
Zdenek
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq