70 lines
2.1 KiB
Bash
70 lines
2.1 KiB
Bash
#!/bin/sh
|
|
# Allow core dumps
|
|
ulimit -c hard
|
|
set -x
|
|
N=''
|
|
root=simple_test
|
|
#root=simple_test
|
|
#root=linux_test
|
|
#root=raminit_test
|
|
if [ -n "$2" -a -n "$1" ] ; then
|
|
root=$1
|
|
N=$2
|
|
elif [ -n "$1" ] ; then
|
|
root=$1
|
|
else
|
|
echo "too few arguments"
|
|
exit 1
|
|
fi
|
|
ROMCC=./romcc
|
|
stem="$root$N"
|
|
base=tests/$stem
|
|
op="-Itests/include"
|
|
op="$op -feliminate-inefectual-code -fsimplify -fscc-transform "
|
|
#op="$op -O2 "
|
|
#op="$op -mmmx -msse"
|
|
op="$op -finline-policy=defaulton"
|
|
#op="$op -finline-policy=nopenalty"
|
|
#op="$op -finline-policy=never"
|
|
op="$op -fdebug -fdebug-triples -fdebug-interference -fdebug-verification"
|
|
op="$op -fdebug-fdominators"
|
|
op="$op -fdebug-inline"
|
|
op="$op -fdebug-calls"
|
|
#op="$op -mnoop-copy"
|
|
#op="$op -fsimplify -fno-simplify-op -fno-simplify-phi -fno-simplify-label -fno-simplify-branch -fno-simplify-copy -fno-simplify-arith -fno-simplify-shift -fno-simplify-bitwise -fno-simplify-logical"
|
|
#op="$op -fdebug-rebuild-ssa-form"
|
|
op="$op -fmax-allocation-passes=8"
|
|
op="$op -fdebug-live-range-conflicts"
|
|
op="$op -fdebug-scc-transform"
|
|
op="$op -fdebug-scc-transform2"
|
|
#-fdebug-coalescing
|
|
#-fdebug-coalesing2
|
|
#-fno-simplify-call "
|
|
#-fno-always-inline"
|
|
#
|
|
#op="-O2 -mmmx -msse --debug=4294967295"
|
|
#op="-fdebug -fdebug-triples -fdebug-inline -O2 -mmmx -msse -fno-always-inline "
|
|
#op="-fdebug -fdebug-inline -O2 -mmmx "
|
|
#op="-fdebug -fdebug-live-range-conflicts -fdebug-live-range-conflicts2 -fno-debug-interference -fdebug-color-graph -fdebug-coalescing -fmax-allocation-passes=10 -O2 -mmmx -msse"
|
|
#op="-fdebug -O2 -mmmx -msse"
|
|
#op="-fdebug -fdebug-inline -fno-eliminate-inefectual-code -fno-always-inline -mmmx"
|
|
#op="-fdebug -fdebug-inline -fno-always-inline -mmmx"
|
|
export ALLOC_CHECK_=2
|
|
rm -f core $base.S $base.debug $base.debug2 $base.elf $base.out &&
|
|
make romcc &&
|
|
$ROMCC $op -o $base.S $base.c 2>&1 > $base.debug | tee $base.debug2
|
|
if [ '(' -f $base.c ')' -a '(' '!' -f core ')' -a '(' -f $base.S ')' ]; then
|
|
if [ "$stem" = "linux_test$N" ] ; then
|
|
as $base.S -o $base.o &&
|
|
ld -T tests/ldscript.ld $base.o -o $base.elf &&
|
|
./$base.elf > $base.out &&
|
|
diff -u results/$stem.out $base.out
|
|
else
|
|
/bin/true
|
|
fi
|
|
else
|
|
/bin/false
|
|
fi
|
|
|
|
|