Re: [PERFORM] Sun performance - Major discovery! - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [PERFORM] Sun performance - Major discovery!
Date
Msg-id 200310090319.h993JpM10523@candle.pha.pa.us
Whole thread Raw
In response to Re: [PERFORM] Sun performance - Major discovery!  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PERFORM] Sun performance - Major discovery!
Re: [PERFORM] Sun performance - Major discovery!
List pgsql-hackers
Tom Lane wrote:
> Neil Conway <neilc@samurai.com> writes:
> > On Wed, 2003-10-08 at 14:31, Bruce Momjian wrote:
> >> Well, this is really embarassing.  I can't imagine why we would not set
> >> at least -O on all platforms.
>
> I believe that autoconf will automatically select -O2 (when CFLAGS isn't
> already set) *if* it's chosen gcc.  It won't select anything for vendor
> ccs.
>
> > Can we get these optimizations enabled in time for the next 7.4 beta?
>
> I think it's too late in the beta cycle to add optimization flags except
> for platforms we can get specific success results for.  (Solaris is
> probably okay for instance.)  The risk of breaking things seems too
> high.

OK, patch attached and applied.  It centralizes the optimization
defaults into configure.in, rather than having CFLAGS= in the template
files.

It used -O2 for gcc (generated automatically by autoconf), and -O for
non-gcc, unless the template overrides it.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: configure
===================================================================
RCS file: /cvsroot/pgsql-server/configure,v
retrieving revision 1.302
diff -c -c -r1.302 configure
*** configure    3 Oct 2003 03:08:14 -0000    1.302
--- configure    9 Oct 2003 03:16:44 -0000
***************
*** 2393,2398 ****
--- 2393,2402 ----
  if test "$ac_env_CFLAGS_set" = set; then
    CFLAGS=$ac_env_CFLAGS_value
  fi
+ # configure sets CFLAGS to -O2 for gcc, so this is only for non-gcc
+ if test x"$CFLAGS" = x""; then
+     CFLAGS="-O"
+ fi
  if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
    CFLAGS="$CFLAGS -g"
  fi
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql-server/configure.in,v
retrieving revision 1.293
diff -c -c -r1.293 configure.in
*** configure.in    3 Oct 2003 03:08:14 -0000    1.293
--- configure.in    9 Oct 2003 03:16:46 -0000
***************
*** 238,243 ****
--- 238,247 ----
  if test "$ac_env_CFLAGS_set" = set; then
    CFLAGS=$ac_env_CFLAGS_value
  fi
+ # configure sets CFLAGS to -O2 for gcc, so this is only for non-gcc
+ if test x"$CFLAGS" = x""; then
+     CFLAGS="-O"
+ fi
  if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
    CFLAGS="$CFLAGS -g"
  fi
Index: src/template/beos
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/beos,v
retrieving revision 1.6
diff -c -c -r1.6 beos
*** src/template/beos    21 Oct 2000 22:36:13 -0000    1.6
--- src/template/beos    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS='-O2'
--- 0 ----
Index: src/template/bsdi
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/bsdi,v
retrieving revision 1.16
diff -c -c -r1.16 bsdi
*** src/template/bsdi    27 Sep 2003 16:24:44 -0000    1.16
--- src/template/bsdi    9 Oct 2003 03:16:51 -0000
***************
*** 5,13 ****
  esac

  case $host_os in
!   bsdi2.0 | bsdi2.1 | bsdi3*)
!     CC=gcc2
!     ;;
  esac

  THREAD_SUPPORT=yes
--- 5,11 ----
  esac

  case $host_os in
!   bsdi2.0 | bsdi2.1 | bsdi3*) CC=gcc2;;
  esac

  THREAD_SUPPORT=yes
Index: src/template/cygwin
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/cygwin,v
retrieving revision 1.2
diff -c -c -r1.2 cygwin
*** src/template/cygwin    9 Oct 2003 02:37:09 -0000    1.2
--- src/template/cygwin    9 Oct 2003 03:16:51 -0000
***************
*** 1,2 ****
- CFLAGS='-O2'
  SRCH_LIB='/usr/local/lib'
--- 1 ----
Index: src/template/dgux
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/dgux,v
retrieving revision 1.10
diff -c -c -r1.10 dgux
*** src/template/dgux    21 Oct 2000 22:36:13 -0000    1.10
--- src/template/dgux    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS=
--- 0 ----
Index: src/template/freebsd
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/freebsd,v
retrieving revision 1.23
diff -c -c -r1.23 freebsd
*** src/template/freebsd    27 Sep 2003 16:24:44 -0000    1.23
--- src/template/freebsd    9 Oct 2003 03:16:51 -0000
***************
*** 1,17 ****
- CFLAGS='-pipe'
-
  case $host_cpu in
!   alpha*)   CFLAGS="$CFLAGS -O" ;;
  esac

  THREAD_SUPPORT=yes
  NEED_REENTRANT_FUNCS=yes
  THREAD_CPPFLAGS="-D_THREAD_SAFE"
  case $host_os in
!         freebsd2*|freebsd3*|freebsd4*)
!             THREAD_LIBS="-pthread"
!             ;;
!         *)
!             THREAD_LIBS="-lc_r"
!             ;;
  esac
--- 1,11 ----
  case $host_cpu in
!   alpha*)   CFLAGS="-O";;
  esac

  THREAD_SUPPORT=yes
  NEED_REENTRANT_FUNCS=yes
  THREAD_CPPFLAGS="-D_THREAD_SAFE"
  case $host_os in
!     freebsd2*|freebsd3*|freebsd4*) THREAD_LIBS="-pthread";;
!     *) THREAD_LIBS="-lc_r";;
  esac
Index: src/template/hpux
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/hpux,v
retrieving revision 1.7
diff -c -c -r1.7 hpux
*** src/template/hpux    2 Apr 2003 00:49:28 -0000    1.7
--- src/template/hpux    9 Oct 2003 03:16:51 -0000
***************
*** 1,8 ****
! if test "$GCC" = yes ; then
!   CPPFLAGS="-D_XOPEN_SOURCE_EXTENDED"
!   CFLAGS="-O2"
! else
    CC="$CC -Ae"
-   CPPFLAGS="-D_XOPEN_SOURCE_EXTENDED"
    CFLAGS="+O2"
  fi
--- 1,6 ----
! CPPFLAGS="-D_XOPEN_SOURCE_EXTENDED"
!
! if test "$GCC" != yes ; then
    CC="$CC -Ae"
    CFLAGS="+O2"
  fi
Index: src/template/irix5
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/irix5,v
retrieving revision 1.9
diff -c -c -r1.9 irix5
*** src/template/irix5    21 Oct 2000 22:36:13 -0000    1.9
--- src/template/irix5    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS=
--- 0 ----
Index: src/template/linux
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/linux,v
retrieving revision 1.18
diff -c -c -r1.18 linux
*** src/template/linux    27 Sep 2003 22:23:35 -0000    1.18
--- src/template/linux    9 Oct 2003 03:16:51 -0000
***************
*** 1,4 ****
- CFLAGS=-O2
  # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise
  CPPFLAGS="-D_GNU_SOURCE"

--- 1,3 ----
***************
*** 6,9 ****
  NEED_REENTRANT_FUNCS=yes    # Debian kernel 2.2 2003-09-27
  THREAD_CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"
  THREAD_LIBS="-lpthread"
-
--- 5,7 ----
Index: src/template/netbsd
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/netbsd,v
retrieving revision 1.13
diff -c -c -r1.13 netbsd
*** src/template/netbsd    27 Sep 2003 16:24:44 -0000    1.13
--- src/template/netbsd    9 Oct 2003 03:16:51 -0000
***************
*** 1,4 ****
- CFLAGS='-O2 -pipe'
-
  THREAD_SUPPORT=yes
  NEED_REENTRANT_FUNCS=yes    # 1.6 2003-09-14
--- 1,2 ----
Index: src/template/nextstep
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/nextstep,v
retrieving revision 1.7
diff -c -c -r1.7 nextstep
*** src/template/nextstep    15 Jul 2000 15:54:52 -0000    1.7
--- src/template/nextstep    9 Oct 2003 03:16:51 -0000
***************
*** 1,4 ****
  AROPT=rc
- CFLAGS=
  SHARED_LIB=
  DLSUFFIX=.o
--- 1,3 ----
Index: src/template/openbsd
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/openbsd,v
retrieving revision 1.8
diff -c -c -r1.8 openbsd
*** src/template/openbsd    21 Oct 2000 22:36:14 -0000    1.8
--- src/template/openbsd    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS='-O2 -pipe'
--- 0 ----
Index: src/template/osf
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/osf,v
retrieving revision 1.10
diff -c -c -r1.10 osf
*** src/template/osf    27 Sep 2003 16:24:45 -0000    1.10
--- src/template/osf    9 Oct 2003 03:16:51 -0000
***************
*** 1,6 ****
! if test "$GCC" = yes ; then
!   CFLAGS=
! else
    CC="$CC -std"
    CFLAGS='-O4 -Olimit 2000'
  fi
--- 1,4 ----
! if test "$GCC" != yes ; then
    CC="$CC -std"
    CFLAGS='-O4 -Olimit 2000'
  fi
Index: src/template/qnx4
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/qnx4,v
retrieving revision 1.4
diff -c -c -r1.4 qnx4
*** src/template/qnx4    24 May 2001 22:33:18 -0000    1.4
--- src/template/qnx4    9 Oct 2003 03:16:51 -0000
***************
*** 1,2 ****
! CFLAGS=-I/usr/local/include
! LIBS=-lunix
--- 1,2 ----
! CFLAGS="-O2 -I/usr/local/include"
! LIBS="-lunix"
Index: src/template/sco
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/sco,v
retrieving revision 1.10
diff -c -c -r1.10 sco
*** src/template/sco    11 Dec 2002 22:27:26 -0000    1.10
--- src/template/sco    9 Oct 2003 03:16:51 -0000
***************
*** 1,7 ****
- if test "$GCC" = yes; then
-   CFLAGS=-O2
- else
-   CFLAGS=-O
- fi
  CC="$CC -b elf"

--- 1,2 ----
Index: src/template/solaris
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/solaris,v
retrieving revision 1.5
diff -c -c -r1.5 solaris
*** src/template/solaris    27 Sep 2003 16:24:45 -0000    1.5
--- src/template/solaris    9 Oct 2003 03:16:51 -0000
***************
*** 1,8 ****
! if test "$GCC" = yes ; then
!   CFLAGS=
! else
    CC="$CC -Xa"            # relaxed ISO C mode
!   CFLAGS=-v            # -v is like gcc -Wall
  fi

  THREAD_SUPPORT=yes
--- 1,6 ----
! if test "$GCC" != yes ; then
    CC="$CC -Xa"            # relaxed ISO C mode
!   CFLAGS="-O -v"        # -v is like gcc -Wall
  fi

  THREAD_SUPPORT=yes
Index: src/template/sunos4
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/sunos4,v
retrieving revision 1.2
diff -c -c -r1.2 sunos4
*** src/template/sunos4    21 Oct 2000 22:36:14 -0000    1.2
--- src/template/sunos4    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS=
--- 0 ----
Index: src/template/svr4
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/svr4,v
retrieving revision 1.10
diff -c -c -r1.10 svr4
*** src/template/svr4    21 Oct 2000 22:36:14 -0000    1.10
--- src/template/svr4    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS=
--- 0 ----
Index: src/template/ultrix4
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/ultrix4,v
retrieving revision 1.10
diff -c -c -r1.10 ultrix4
*** src/template/ultrix4    21 Oct 2000 22:36:14 -0000    1.10
--- src/template/ultrix4    9 Oct 2003 03:16:51 -0000
***************
*** 1 ****
- CFLAGS=
--- 0 ----
Index: src/template/univel
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/univel,v
retrieving revision 1.13
diff -c -c -r1.13 univel
*** src/template/univel    21 Oct 2000 22:36:14 -0000    1.13
--- src/template/univel    9 Oct 2003 03:16:51 -0000
***************
*** 1,2 ****
  CFLAGS='-v -O -K i486,host,inline,loop_unroll -Dsvr4'
! LIBS=-lc89
--- 1,2 ----
  CFLAGS='-v -O -K i486,host,inline,loop_unroll -Dsvr4'
! LIBS="-lc89"
Index: src/template/unixware
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/unixware,v
retrieving revision 1.24
diff -c -c -r1.24 unixware
*** src/template/unixware    27 Sep 2003 16:24:45 -0000    1.24
--- src/template/unixware    9 Oct 2003 03:16:51 -0000
***************
*** 1,5 ****
  if test "$GCC" = yes; then
-   CFLAGS=-O2
    THREAD_CPPFLAGS="-pthread"
  else
  # the -Kno_host is temporary for a bug in the compiler.  See -hackers
--- 1,4 ----
Index: src/template/win
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/win,v
retrieving revision 1.5
diff -c -c -r1.5 win
*** src/template/win    8 Oct 2003 18:23:08 -0000    1.5
--- src/template/win    9 Oct 2003 03:16:51 -0000
***************
*** 1,3 ****
- if test "$GCC" = yes; then
-   CFLAGS="-O2"
- fi
--- 0 ----
Index: src/template/win32
===================================================================
RCS file: /cvsroot/pgsql-server/src/template/win32,v
retrieving revision 1.1
diff -c -c -r1.1 win32
*** src/template/win32    15 May 2003 16:35:30 -0000    1.1
--- src/template/win32    9 Oct 2003 03:16:51 -0000
***************
*** 1,3 ****
- if test "$GCC" = yes; then
-   CFLAGS="-O2"
- fi
--- 0 ----

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: missing COMMENT ON objects
Next
From: "Matthew T. O'Connor"
Date:
Subject: Re: Autovacuum readme