ppcg.c: eliminate_dead_code: extract out computation of live out accesses
[ppcg.git] / polybench_test.sh.in
blobabfe1a5a6c0ca5bb51da9c4c169306bcafc2b936
1 #!/bin/sh
3 keep=no
5 for option; do
6 case "$option" in
7 --keep)
8 keep=yes
9 ;;
10 esac
11 done
13 EXEEXT=@EXEEXT@
14 DIR=@POLYBENCH_DIR@
15 VERSION=@GIT_HEAD_VERSION@
16 SIZE=-DMINI_DATASET
17 CC="@CC@"
18 if [ $keep = "yes" ]; then
19 OUTDIR="out.$VERSION"
20 mkdir "$OUTDIR" || exit 1
21 else
22 if test "x$TMPDIR" = "x"; then
23 TMPDIR=/tmp
25 OUTDIR=`mktemp -d $TMPDIR/ppcg.XXXXXXXXXX` || exit 1
27 CPPFLAGS="-DPOLYBENCH_USE_C99_PROTO -DPOLYBENCH_DUMP_ARRAYS"
28 CPPFLAGS="$CPPFLAGS $SIZE -I $DIR/utilities"
29 CFLAGS="-lm --std=gnu99"
31 echo "Running tests in folder ${OUTDIR}"
33 run_tests () {
34 ext=$1
36 ppcg_options=$2
37 cc_options=$3
39 if [ "x$ppcg_options" = "x" ]; then
40 ppcg_option_str="none"
41 else
42 ppcg_option_str=$ppcg_options
45 if [ "x$cc_options" = "x" ]; then
46 cc_option_str="none"
47 else
48 cc_option_str=$cc_options
51 echo Test: $ext, ppcg options: $ppcg_option_str, CC options: $cc_option_str
52 for i in `cat $DIR/utilities/benchmark_list`; do
53 echo $i
54 name=`basename $i`
55 name=${name%.c}
56 source_opt="${OUTDIR}/$name.$ext.c"
57 prog_orig=${OUTDIR}/$name.orig${EXEEXT}
58 prog_opt=${OUTDIR}/$name.$ext${EXEEXT}
59 output_orig=${OUTDIR}/$name.orig.out
60 output_opt=${OUTDIR}/$name.$ext.out
61 dir=`dirname $i`
62 ./ppcg$EXEEXT --target=c -I $DIR/$dir $DIR/$i $CPPFLAGS \
63 -o $source_opt $ppcg_options || exit
64 $CC -I $DIR/$dir $CPPFLAGS $DIR/$i -o $prog_orig \
65 $DIR/utilities/polybench.c $CFLAGS
66 $prog_orig 2> $output_orig
67 $CC -I $DIR/$dir $CPPFLAGS $source_opt -o $prog_opt \
68 $DIR/utilities/polybench.c $CFLAGS $cc_options || exit
70 $prog_opt 2> $output_opt
71 cmp $output_orig $output_opt || exit
72 done
75 run_tests ppcg
77 # Test OpenMP code, if compiler supports openmp
78 echo | $CC -x c - -fsyntax-only -fopenmp -Werror 1> /dev/null 2> /dev/null
79 OUT=$?
80 if [ $OUT -eq 0 ]; then
81 run_tests ppcg_omp --openmp -fopenmp
82 echo Introduced `grep -R 'omp parallel' "${OUTDIR}" | wc -l` '"pragma omp parallel for"'
83 else
84 echo Compiler does not support OpenMP. Skipping OpenMP tests.
87 if [ $keep = "no" ]; then
88 rm -r "${OUTDIR}"