123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- #!/bin/sh
- #$Id$
- #
- # returns the CFLAGS for the given compiler (maximum optimizations)
- #
- ARCH=`uname -m |sed -e s/i.86/i386/ -e s/sun4u/sparc64/ `
- # gcc 3.x optimize for:
- x86CPU=athlon
- WARN_ARCH="WARNING: Not tested on architecture $ARCH, using default flags"
- if [ $# -lt 1 ]
- then
- echo "ERROR: you must specify the compiler name" 1>&2
- exit 1
- fi
- if [ "$1" = "-h" ]
- then
- echo "Usage: "
- echo " $0 compiler_name"
- exit 1
- fi
- if CCVER=`./ccver.sh $1`
- then
- NAME=`echo "$CCVER"|cut -d" " -f 1`
- VER=`echo "$CCVER"|cut -d" " -f 2`
- MAJOR_VER=`echo "$CCVER"|cut -d" " -f 3`
- else
- echo "ERROR executing ./ccver.sh" 2>&1
- exit 1
- fi
- echo "name=$NAME, ver=$VER, mver=$MAJOR_VER"
- case $NAME
- in
- gcc)
- #common stuff
- CFLAGS="-O9 -funroll-loops -Winline -Wall"
- case $MAJOR_VER
- in
- 3)
- case $ARCH
- in
- i386)
- CFLAGS="$CFLAGS -minline-all-stringops -malign-double"
- CFLAGS="$CFLAGS -falign-loops -march=$x86CPU"
- ;;
- sparc64)
- CFLAGS="$CFLAGS -mcpu=ultrasparc -mtune=ultrasparc"
- CFLAGS="$CFLAGS -m32"
- #other interesting options:
- # -mcpu=v9 or ultrasparc? # -mtune implied by -mcpu
- #-mno-epilogue #try to inline function exit code
- #-mflat # omit save/restore
- #-faster-structs #faster non Sparc ABI structure copy
- ;;
- armv4l)
- CFLAGS="$CFLAGS -mcpu=strongarm1100"
- ;;
- *)
- echo "$WARN_ARCH" 1>&2
- ;;
- esac
- ;;
- 2|*)
- case $ARCH
- in
- i386)
- CFLAGS="$CFLAGS -m486 -malign-loops=4"
- ;;
- sparc64)
- CFLAGS="$CFLAGS -mv8 -Wa,-xarch=v8plus"
- ;;
- armv4l)
- ;;
- *)
- echo "$WARN_ARCH" 1>&2
- ;;
- esac
- ;;
- esac
- ;;
- icc)
- CFLAGS="-O3 -ipo -ipo_obj -unroll"
- case $ARCH
- in
- i386)
- CFLAGS="$CFLAGS -tpp6 -xK"
- #-openmp #optimize for PIII
- # -prefetch doesn't seem to work
- #( ty to inline acroos files, unroll loops,prefetch,
- # optimize for PIII, use PIII instructions & vect.,
- # mutlithread loops)
- ;;
- *)
- echo "$WARN_ARCH" 1>&2
- ;;
- esac
- ;;
- suncc)
- CFLAGS="-xO5 -fast -native -xCC -xc99"
- case $ARCH
- in
- sparc64)
- CFLAGS="$CFLAGS -xarch=v8plusa"
- ;;
- *)
- echo "$WARN_ARCH" 1>&2
- ;;
- esac
- ;;
- *)
- echo "WARNING: unknown compiler $NAME, trying _very_ generic flags" 1>&2
- CFLAGS="-O2"
- esac
- echo "CFLAGS=$CFLAGS"
|