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

Reply via email to