diff --git a/m1/perf/tabulate b/m1/perf/tabulate index c5d8b1b..bf43a77 100755 --- a/m1/perf/tabulate +++ b/m1/perf/tabulate @@ -45,6 +45,107 @@ eq() } +trim() +{ + sed 's/[^0-9].*//' +} + + +cfield() +{ + echo "
Original | +New (no optimizer) | +New (LCPF) | +Equiv | +Name | +||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Time | Size | Eff | Regs | ++ | Time | Size | Eff | Regs | ++ | Time | Size | Eff | Regs | ++EOF + for n in `ls -1 data/ref/out`; do + ref=`sum ref $n` + new=`sum new $n` + opt=`sum opt $n` + same=`eq $ref $new`/`eq $ref $opt`/`eq $new $opt` + + echo " | ||
" + rank -lt time new ref opt $n + rank -lt size new ref opt $n + rank -gt eff new ref opt $n % + rank -lt regs new ref opt $n + + echo " | " + rank -lt time opt ref new $n + rank -lt size opt ref new $n + rank -gt eff opt ref new $n % + rank -lt regs opt ref new $n + + echo " | "
+ if [ $same = Y/Y/Y ]; then
+ cfield $green $same
+ else
+ cfield $red $same
+ fi
+ cfield white "$n"
+ done
+ cat < |