if [ $# -ne 1 ] then echo Syntax: comp file.c exit 1 else file_name=$1 base_name=$(basename $1 .cpp) btcd_name="$base_name.bc" ch_name="$base_name.ch" s_ch_name="$base_name.ch.s" ch_out="$base_name.ch.out" ln_name="$base_name.ln" ln_out="$base_name.ln.out" s_ln_name="$base_name.ln.s" gcc_name="$base_name.gcc" gcc_out="$base_name.gcc.out" llvm-gcc $file_name -o $base_name llc -regalloc=chordal -f $btcd_name -o $s_ch_name llc -regalloc=linearscan -f $btcd_name -o $s_ln_name gcc $s_ch_name -o $ch_name gcc $s_ln_name -o $ln_name gcc $file_name -o $gcc_name echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ch time:" time ./$ch_name > $ch_out echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ln time:" time ./$ln_name > $ln_out echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GCC time:" time ./$gcc_name > $gcc_out echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . wc output:" wc -l $s_ch_name wc -l $s_ln_name echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff output:" ls -la $ch_out $ln_out $gcc_out echo "" diff -qs $ch_out $ln_out diff -qs $ch_out $gcc_out diff -qs $ln_out $gcc_out echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . End:" rm -f $base_name rm -f $gcc_name rm -f $ch_name rm -f $ln_name rm -f $s_ch_name rm -f $s_ln_name rm -f $btcd_name rm -f $ch_out rm -f $ln_out rm -f $gcc_out fi