#!/bin/sh M1=`make path` time() { sed '/^.*of \([0-9.]*\) seconds.*/s//\1/p;d' $2" } rank() { op=$1 txt=`$2 $3 $6` a=`echo "$txt" | trim` b=`$2 $4 $6 | trim` c=`$2 $5 $6 | trim` if [ $a $op $b -a $a $op $c ]; then col=$green elif [ $b $op $a -a $c $op $a ]; then col=$red else col=white fi echo "$txt$7" } red="#ffb0b0" green="#a0ffa0" html=false if [ $1 = -h ]; then html=true shift fi if $html; then cat < Scheduler comparison 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 ref new opt $n rank -lt size ref new opt $n rank -gt eff ref new opt $n % rank -lt regs ref new opt $n echo "
Original New (no optimizer) New (LCPF) Equiv Name
TimeSizeEffRegs   TimeSizeEffRegs   TimeSizeEffRegs  
" 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 < EOF exit fi echo "Original New sched (no opt) New sched (LCPF) Equiv Name" echo "Time Size Eff Regs Time Size Eff Regs Time Size Eff Regs" tref=0 tnew=0 topt=0 for n in `ls -1 data/ref/out`; do ref=`sum ref $n` new=`sum new $n` opt=`sum opt $n` printf "%5.1f %4d%3d%% %4d %5.1f %4d%3d%% %4d %5.1f %4d%3d%% %4d %s " \ `time ref $n` `size ref $n` `eff ref $n` `regs ref $n` \ `time new $n` `size new $n` `eff new $n` `regs new $n` \ `time opt $n` `size opt $n` `eff opt $n` `regs opt $n` \ `eq $ref $new`/`eq $ref $opt`/`eq $new $opt` echo $n tref="$tref `time ref $n` +" tnew="$tnew `time new $n` +" topt="$topt `time opt $n` +" done printf "Original time: %9.1f s\n" `dc -e "$tref p"` printf "New (unopt) time: %6.1f s\n" `dc -e "$tnew p"` printf "New (opt) time: %8.1f s\n" `dc -e "$topt p"`