-EDG_CFLAGS="--c --gnu=400002 -I/usr/lib/gcc-lib/i586-suse-linux/3.3.5/include"
-GCC_CFLAGS="-O3 -g -fomit-frame-pointer"
+#!/bin/sh
+
+export LANG=
+export LC_ALL=
+export LC_COLLATE=
+if test "$1" != "--recursive-hack"; then
+ "$0" --recursive-hack "$@"
+ exit $?
+else
+ shift
+fi
+
+EXEC_PREFIX=
+if [ "$ECC" = "" ]; then
+ ECC="eccp"
+fi
+#EXEC_PREFIX="qemu-arm"
+#ECC="/ben/beck/ipd/bin/eccp -march=arm -bra-chordal-co-algo=heur"
+ECC_CFLAGS="${ADDCFLAGS} -v -O3 -ffp-strict"
+GCC="icc -restrict"
+GCC_CFLAGS="-O0 -Itcc -fp-model precise"
LINKFLAGS="-lm"
+TIMEOUT_COMPILE=300
+TIMEOUT_RUN=30
+ECC_LINK="gcc -m32"
CFILES="*.c"
-OUTPUTDIR="stats-`date +%d.%m.%y`"
+OUTPUTDIR="stats-`date +%y.%m.%d`"
mkdir -p build_firm
mkdir -p build_gcc
<?xml version="1.0"?>
<results>
<environment>
- <EDG_CFLAGS>${EDG_CFLAGS}</EDG_CFLAGS>
+ <ECC_CFLAGS>${ECC_CFLAGS}</ECC_CFLAGS>
<GCC_CFLAGS>${GCC_CFLAGS}</GCC_CFLAGS>
</environment>
__END__
# so endless apps stop at some point...
-ulimit -t2
+#ulimit -t 2
-for file in ${CFILES}; do
+basedir=`pwd`
+
+DIRS=". langshootout ack gcc-testsuite gcc-testsuite/ieee"
+test -n "$1" && DIRS="$1"
+
+for dir in $DIRS; do
+ curdir=$basedir/$dir
+ echo "<section name=\"$curdir/\">" >> $XMLRES
+for file in $curdir/$CFILES; do
COMPILE_RES="ok"
LINK_RES="omitted"
GCC_RES="ok"
GCC_RUN_RES="omitted"
FIRM_RUN_RES="omitted"
DIFF_RES="omitted"
+ FILE_FLAGS=`awk '/\/\\*\\$ .* \\$\\*\// { for (i = 2; i < NF; ++i) printf "%s ", $i }' $file`
name="`basename $file .c`"
+ obj_name="build_firm/$name.o"
res="$OUTPUTDIR/buildresult_$name.txt"
- echo "Building $name"
+ echo -n "Building $name"
echo "Results for $name" > $res
- echo "*** EDG/FIRM Compile" >> $res
- CMD="edg ${EDG_CFLAGS} $file"
+ echo "*** ECC/FIRM Compile" >> $res
+ CMD="ulimit -t ${TIMEOUT_COMPILE} ; ${ECC} -c -o ${obj_name} ${ECC_CFLAGS} ${FILE_FLAGS} ${file}"
echo "$CMD" >> $res
- $CMD >> $res 2>&1 || COMPILE_RES="failed"
+ /bin/sh -c "$CMD" >> $res 2>&1 || { COMPILE_RES="failed"; echo -n " ... FAILED"; }
- if [ ${COMPILE_RES} == "ok" ]; then
+ if [ ${COMPILE_RES} = "ok" ]; then
LINK_RES="ok"
- CMD="mv $name.s build_firm/$name.s"
- echo "$CMD" >> $res
- $CMD >> $res 2>&1
echo "*** Linking" >> $res
- CMD="gcc build_firm/$name.s ${LINKFLAGS} -o build_firm/$name.exe"
+ CMD="${ECC_LINK} $obj_name ${LINKFLAGS} -o build_firm/$name.exe"
echo "$CMD" >> $res
- $CMD >> $res 2>&1 || LINK_RES="failed"
+ $CMD >> $res 2>&1 || { LINK_RES="failed"; echo -n " ... FAILED"; }
fi
echo "*** GCC Compile" >> $res
- CMD="gcc ${GCC_CFLAGS} $file ${LINKFLAGS} -o build_gcc/$name.exe"
+ CMD="${GCC} ${GCC_CFLAGS} ${FILE_FLAGS} $file ${LINKFLAGS} -o build_gcc/$name.exe"
echo "$CMD" >> $res
$CMD >> $res 2>&1 || GCC_RES="failed"
GCC_RUN_RES="ok"
echo "*** Run GCC" >> $res
- CMD="build_gcc/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1"
+ CMD="ulimit -t ${TIMEOUT_RUN} ; build_gcc/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1"
echo "$CMD" >> $res
- build_gcc/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1 || GCC_RUN_RES="failed"
+ /bin/sh -c "$CMD" > $OUTPUTDIR/result_gcc_$name.txt 2>&1 || GCC_RUN_RES="failed"
fi
if [ ${LINK_RES} = "ok" ]; then
FIRM_RUN_RES="ok"
echo "*** Run Firm" >> $res
- CMD="build_firm/$name.exe > $OUTPUTDIR/result_gcc_$name.txt 2>&1"
+ CMD="ulimit -t ${TIMEOUT_RUN} ; ${EXEC_PREFIX} build_firm/$name.exe > $OUTPUTDIR/result_firm_$name.txt 2>&1"
echo "$CMD" >> $res
- build_firm/$name.exe > $OUTPUTDIR/result_firm_$name.txt 2>&1 || FIRM_RUN_RES="failed"
+ /bin/sh -c "$CMD" > $OUTPUTDIR/result_firm_$name.txt 2>&1 || { FIRM_RUN_RES="failed"; echo -n " ... FAILED"; }
fi
if [ ${GCC_RUN_RES} = "ok" -a ${FIRM_RUN_RES} = "ok" ]; then
echo "*** Compare Results" >> $res
CMD="diff -u $OUTPUTDIR/result_gcc_$name.txt $OUTPUTDIR/result_firm_$name.txt"
- $CMD > $OUTPUTDIR/result_diff_$name.txt 2>&1 || DIFF_RES="failed"
+ $CMD > $OUTPUTDIR/result_diff_$name.txt 2>&1 || { DIFF_RES="failed"; echo -n " ... FAILED"; }
fi
+ echo
cat >> $XMLRES << __END__
<result name="$name">
<diff>$DIFF_RES</diff>
</result>
__END__
+done
+ echo "</section>" >> $XMLRES
done
echo "</results>" >> $XMLRES