#!/bin/sh -x sanitize() { basename "$1" .fnp | tr ' ' _ | tr -cd 'A-Za-z0-9_-' | tr -s _ _ } usage() { cat <&2 usage: $0 [-e|-p] [-n [-o] [-s]] dir -e generate the calculated expression (default: just dump debug output) -p profile 10000 runs (default: just dump debug output) -n use "new" scheduler -o enable LCPF optimizer -s enable register pressure statistics EOF } M1=`make path` extra= sched= profile=false evaluate=false while [ "${1#-}" != "$1" ]; do case "$1" in -e) evaluate=true;; -p) profile=true;; -n) sched=SCHED=sched.o;; -o) extra="$extra -DLCPF";; -s) extra="$extra -DREG_STATS";; *) usage;; esac shift done [ -z "$1" -o "$2" ] && usage if [ ! -d "$1" ]; then echo "$1: directory not found" 1>&2 exit 1 fi $profile || extra="$extra -DCOMP_DEBUG" make CFLAGS_EXTRA="$extra" $sched clean all for n in $M1/flickernoise/patches/*/*.fnp; do s=`sanitize "$n"` if $profile; then ./main "$n" 10000 || exit gprof main >"$1"/$s elif $evaluate; then ./main "$n" | ./eval.pl >"$1"/$s || exit else ./main "$n" >"$1"/$s || exit fi done