diff options
author | swhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2006-06-08 12:20:16 +0000 |
---|---|---|
committer | swhite <swhite@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2006-06-08 12:20:16 +0000 |
commit | 62c2f614d78a5b382bda982ce282e9a55879af00 (patch) | |
tree | 88bb373ca33c74d76d9a1a7e7647f9b4048fc349 /lib/make/known-architectures | |
parent | 7f09221b475a593a96ff3080b9fcee86185f3ea7 (diff) |
Applied patch
aix known-architectures for XLC/XLF
http://www.cactuscode.org/old/pipermail/patches/2006-April/000159.html
> ... 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
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4312 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/make/known-architectures')
-rw-r--r-- | lib/make/known-architectures/aix | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/lib/make/known-architectures/aix b/lib/make/known-architectures/aix index 53458404..96844f68 100644 --- a/lib/make/known-architectures/aix +++ b/lib/make/known-architectures/aix @@ -50,10 +50,9 @@ else fi # Fortran compilers - : ${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"} : ${F90_DEBUG_FLAGS='-g'} : ${F77_DEBUG_FLAGS='-g'} @@ -74,6 +73,14 @@ else F77_VERSION=`$F77 2>&1 | head -n1` F90_VERSION=`$F90 2>&1 | head -n1` + # 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 + # C/C++ compilers case "$CC" in gcc) @@ -83,7 +90,8 @@ else cc|xlc|xlc_r) : ${C_DEPEND='$(CC) -E -M $(CPPFLAGS)'} : ${C_DEPEND_OUT=' > /dev/null ; mv $(basename $(basename $@)).u $@'} - : ${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"} CC_VERSION=`$CC 2>&1 | head -n1` ;; *) @@ -98,13 +106,36 @@ else xlC|xlC_r) : ${CXX_DEPEND='$(CXX) -E -M $(CPPFLAGS)'} : ${CXX_DEPEND_OUT=' > /dev/null ; mv $(basename $(basename $@)).u $@'} - : ${CXXFLAGS="-q$AIX_BITS -qspill=10000 -qmaxmem=-1"} + : ${CXXFLAGS="-q$AIX_BITS"} + : ${CXX_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"} CXX_VERSION=`$CXX 2>&1 | head -n1` ;; *) ;; esac + 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 + # Linker : ${ARFLAGS="-X$AIX_BITS -rucs"} if test -z "$LIBS" -a "$LD" != 'xlf90' ; then |