update isl to version 0.12
[ppcg.git] / polybench_test.sh.in
bloba73b4aa58175cb78a9b537b08c6335eeb220b0aa
1 #!/bin/sh
3 EXEEXT=@EXEEXT@
4 DIR=@POLYBENCH_DIR@
5 SIZE=-DMINI_DATASET
6 CC="@CC@"
7 TMPDIR=`mktemp -d --suffix=.ppcg`
8 CPPFLAGS="-DPOLYBENCH_DUMP_ARRAYS $SIZE -I $DIR/utilities"
9 CFLAGS="-lm --std=gnu99"
11 echo "Running tests in folder ${TMPDIR}"
13 run_tests () {
14 ext=$1
16 ppcg_options=$2
17 cc_options=$3
19 if [ "x$ppcg_options" = "x" ]; then
20 ppcg_option_str="none"
21 else
22 ppcg_option_str=$ppcg_options
25 if [ "x$cc_options" = "x" ]; then
26 cc_option_str="none"
27 else
28 cc_option_str=$cc_options
31 echo Test: $ext, ppcg options: $ppcg_option_str, CC options: $cc_option_str
32 for i in `cat $DIR/utilities/benchmark_list`; do
33 echo $i
34 name=`basename $i`
35 name=${name%.c}
36 source_opt="${TMPDIR}/$name.$ext.c"
37 prog_orig=${TMPDIR}/$name.orig${EXEEXT}
38 prog_opt=${TMPDIR}/$name.$ext${EXEEXT}
39 output_orig=${TMPDIR}/$name.orig.out
40 output_opt=${TMPDIR}/$name.$ext.out
41 dir=`dirname $i`
42 ./ppcg$EXEEXT --target=c -I $DIR/$dir $DIR/$i $CPPFLAGS \
43 -o $source_opt $ppcg_options || exit
44 $CC -I $DIR/$dir $CPPFLAGS $DIR/$i -o $prog_orig \
45 $DIR/utilities/polybench.c $CFLAGS
46 $prog_orig 2> $output_orig
47 $CC -I $DIR/$dir $CPPFLAGS $source_opt -o $prog_opt \
48 $DIR/utilities/polybench.c $CFLAGS $cc_options || exit
50 $prog_opt 2> $output_opt
51 cmp $output_orig $output_opt || exit
52 done
55 run_tests ppcg
57 # Test OpenMP code, if compiler supports openmp
58 echo | $CC -x c - -fsyntax-only -fopenmp -Werror 1> /dev/null 2> /dev/null
59 OUT=$?
60 if [ $OUT -eq 0 ]; then
61 run_tests ppcg_omp --openmp -fopenmp
62 echo Introduced `grep -R 'omp parallel' "${TMPDIR}" | wc -l` '"pragma omp parallel for"'
63 else
64 echo Compiler does not support OpenMP. Skipping OpenMP tests.
67 rm -r "${TMPDIR}"