[Patches] aix known-architectures for XLC/XLF

Steve White steve.white at aei.mpg.de
Fri Apr 7 09:16:02 CDT 2006


Hello,

Included is a patch for the AIX known-architectures file, meant to
improve performance for the IBM XLC/XLF compilers.

I made the default optimization to be 
	-O3 -qarch=auto -qtune=auto -qcache=auto -qhot
for all the IBM compilers.

I also made XLF to suppress congratulatory messages ("Yay! I compiled!) 
on successful compilation.

I tested -02 through -O5.  On BSSNCarpet runs, "-O3 -qhot" performed
best--but beware, it moves instructions. While turning on -qstrict
fixes this, it also degrades performance. The -qarch=auto causes the
code to be customized for the architecture on which it is compiled.
The higher levels turn on -qipa which does global optimizations and
work best if this option is also supplied at link time.

See http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp

-- 
Steve White : Programmer
Max-Planck-Institut für Gravitationsphysik      Albert-Einstein-Institut
Am Mühlenberg 1, D-14476 Golm, Germany                  +49-331-567-7625
-------------- next part --------------
Index: aix
===================================================================
RCS file: /cactusdevcvs/Cactus/lib/make/known-architectures/aix,v
retrieving revision 1.27
diff -r1.27 aix
53,56c53,55
<   : ${F90FLAGS="-q$AIX_BITS -qmaxmem=-1 -qspill=10000"}
<   : ${F77FLAGS="-q$AIX_BITS -qmaxmem=-1"}
<   : ${F90_OPTIMISE_FLAGS='-O5'}
<   : ${F77_OPTIMISE_FLAGS='-O5'}
---
>                   # suppress congratulatory message on successful compilation
>   : ${F90FLAGS="-q$AIX_BITS -qextname -qsuppress=1501-510:cmpmsg"}
>   : ${F77FLAGS="-q$AIX_BITS -qextname -qsuppress=1501-510:cmpmsg"}
76a76,83
>   # NOTE IBM XLC/XLF optimizations.
>   # Tested -02 through -O5.  On BSSNCarpet runs, "-O3 -qhot" performed
>   # best--but beware, it moves instructions. While turning on -qstrict
>   # fixes this, it also degrades performance. The -qarch=auto causes the
>   # code to be customized for the architecture on which it is compiled.
>   # The higher levels turn on -qipa which does global optimizations and
>   # work best if this option is also supplied at link time. --SW
> 
86c93,94
<      : ${CFLAGS="-q$AIX_BITS -qspill=17000 -qmaxmem=-1 -qlanglvl=stdc99"}
---
>      : ${CFLAGS="-q$AIX_BITS -qlanglvl=stdc99"}
>      : ${C_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
101c109,110
<      : ${CXXFLAGS="-q$AIX_BITS -qspill=10000 -qmaxmem=-1"}
---
>      : ${CXXFLAGS="-q$AIX_BITS"}
>      : ${CXX_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
107a117,138
>   case "$F90" in
>     xlf|xlf_r|xlf90|xlf90_r)
>      : ${F90_DEPEND='$(F90) -E -M $(F90FLAGS)'}
>      : ${F90FLAGS="-q$AIX_BITS"}
>      : ${F90_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
>      ;;
>     *)
>      : ${F90_OPTIMISE_FLAGS="-O3"}
>      ;;
>   esac
> 
>   case "$F77" in
>     xlf|xlf_r|xlf77|xlf77_r|xlf90|xlf90_r)
>      : ${F77_DEPEND='$(F77) -E -M $(F77FLAGS)'}
>      : ${FF77LAGS="-q$AIX_BITS"}
>      : ${F77_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
>      ;;
>     *)
>      : ${F77_OPTIMISE_FLAGS="-O3"}
>      ;;
>   esac
> 


More information about the Patches mailing list