diff --git a/cpp-examples/test_spec.sh b/cpp-examples/test_spec.sh index 180d2a9bb8481a3de29501ebae52ea4b05647371..35886b3ccada2195fc6eecb014966da35a7c12ee 100755 --- a/cpp-examples/test_spec.sh +++ b/cpp-examples/test_spec.sh @@ -17,7 +17,7 @@ # " # all -benchmarks="400.perlbench 401.bzip2 403.gcc 410.bwaves 416.gamess 429.mcf 433.milc 434.zeusmp 435.gromacs 436.cactusADM 437.leslie3d 444.namd 445.gobmk 450.soplex 453.povray 454.calculix 456.hmmer 458.sjeng 459.GemsFDTD 462.libquantum 464.h264ref 465.tonto 470.lbm 471.omnetpp 473.astar 481.wrf 482.sphinx3 483.xalancbmk" +all_benchmarks="400.perlbench 401.bzip2 403.gcc 410.bwaves 416.gamess 429.mcf 433.milc 434.zeusmp 435.gromacs 436.cactusADM 437.leslie3d 444.namd 445.gobmk 450.soplex 453.povray 454.calculix 456.hmmer 458.sjeng 459.GemsFDTD 462.libquantum 464.h264ref 465.tonto 470.lbm 471.omnetpp 473.astar 481.wrf 482.sphinx3 483.xalancbmk" number=1 @@ -29,6 +29,9 @@ setup() svn co ^/spec2006/trunk spec2006 fi + if [[ ! -f /usr/bin/gfortran ]]; then + sudo apt-get install gfortran -y + fi cd spec2006/ if [ ! -L bin ]; then @@ -43,6 +46,7 @@ run_test() { config_name=$1 config=$2 + benchmarks="$3" cd $SPEC if [ ! -d result.$config_name ]; then dropdb $PGDATABASE @@ -114,7 +118,15 @@ get_result() } + get_raw_results() +{ + get_raw_perf_results "$@" + get_raw_size_results "$@" + get_raw_fde_results "$@" +} + +get_raw_perf_results() { configs=$* first_config=$1 @@ -132,7 +144,10 @@ get_raw_results() done echo done +} +get_raw_size_results() +{ echo "--------------------------------------------------------------" echo "Size results are:" echo "--------------------------------------------------------------" @@ -140,49 +155,100 @@ get_raw_results() echo benchmark $configs for bench in $SPEC/result.$first_config/*_base.amd64-m64-gcc42-nn do - #printf "%-20s" $(basename $bench _base.amd64-m64-gcc42-nn) echo -n "$(basename $bench _base.amd64-m64-gcc42-nn) " for config in $* do - file="$SPEC/result.$config/$(basename $bench)" + if [[ $config == "baseline" ]]; then + file="$SPEC/result.$config/$(basename $bench)" + cp $file /tmp/foo.exe + strip /tmp/foo.exe + file="/tmp/foo.exe" + else + file="$SPEC/result.$config/$(basename $bench)" + fi res=$(get_size_result $file) #printf "%15s" $res - echo -n "$res " + echo -n " $res" done echo done } +get_raw_fde_results() +{ + echo "--------------------------------------------------------------" + echo "FDE results are:" + echo "--------------------------------------------------------------" + configs=$* + echo benchmark $configs + for bench in $SPEC/result.$first_config/*_base.amd64-m64-gcc42-nn + do + #printf "%-20s" $(basename $bench _base.amd64-m64-gcc42-nn) + echo -n $(basename $bench _base.amd64-m64-gcc42-nn) + for config in $* + do + file="$SPEC/result.$config/$(basename $bench)" + res=$(readelf -w $file |grep FDE|wc -l ) + #if [[ $config == "baseline" ]]; then + #else + #fi + + #printf "%15s" $res + echo -n " $res" + done + echo + done + +} main() { + zipr_flags=" --backend zipr --step-option zipr:--add-sections --step-option zipr:true" trace_flags=" --step-option zipr:--traceplacement:on --step-option zipr:true" relax_flags=" --step-option zipr:--relax:on --step-option zipr:true --step-option zipr:--unpin:on --step-option zipr:false" nounpin_flags=" --step-option zipr:--unpin:on --step-option zipr:false" split_flags=" --step-option fill_in_indtargs:--split-eh-frame " icall_flags=" --step-option fix_calls:--no-fix-icalls " + p1flags=" --step p1transform=on " start_dir=$(pwd) setup - run_test baseline $SPEC/config/ubuntu14.04lts-64bit.cfg - PSOPTS="--backend zipr" run_test zipr $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $nounpin_flags " run_test zipr-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - PSOPTS="--backend zipr $trace_flags " run_test zipr-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $relax_flags " run_test zipr-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $relax_flags $nounpin_flags " run_test zipr-relax-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - PSOPTS="--backend zipr $split_flags " run_test split $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $split_flags $nounpin_flags " run_test split-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $split_flags $trace_flags " run_test split-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $split_flags $trace_flags " run_test split-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - PSOPTS="--backend zipr $split_flags $icall_flags " run_test split-no-fix-icalls $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - PSOPTS="--backend zipr $split_flags $icall_flags $trace_flags " run_test split-no-fix-icalls-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $split_flags $icall_flags $relax_flags " run_test split-no-fix-icalls-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - #PSOPTS="--backend zipr $split_flags $icall_flags $relax_flags $nounpin_flags " run_test split-no-fix-icalls-relax-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg - - #get_raw_results baseline zipr zipr-nounpin zipr-trace zipr-relax zipr-relax-nounpin split split-nounpin split-trace split-no-fix-icalls split-no-fix-icalls-trace split-no-fix-icalls-relax split-no-fix-icalls-relax-nounpin - get_raw_results baseline zipr zipr-trace split-no-fix-icalls split-no-fix-icalls-trace + run_test baseline $SPEC/config/ubuntu14.04lts-64bit.cfg "$all_benchmarks" + + # should be 100% success, tested by jdh on 8/28/17 as 100% success. + #PSOPTS="$zipr_flags " run_test zipr $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + #PSOPTS="$zipr_flags $trace_flags " run_test zipr-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags " run_test split $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $icall_flags " run_test split-no-fix-icalls $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $icall_flags $trace_flags " run_test split-no-fix-icalls-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + # should be 100% success, tested by jdh on 8/28/17 as 100% success. + PSOPTS="$zipr_flags $split_flags $trace_flags " run_test split-trace $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + # p1 -- expect 2 failures (povray and omnetpp) + #PSOPTS="$zipr_flags $trace_flags $p1flags " run_test zipr-trace-p1 $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $trace_flags $p1flags " run_test split-trace-p1 $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + # p1 -- expect no failures (--split-eh-frame fixes povray and omnetpp) + PSOPTS="$zipr_flags $split_flags $trace_flags $icall_flags $p1flags " run_test split-no-fix-icalls-trace-p1 $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + #PSOPTS="$zipr_flags $nounpin_flags " run_test zipr-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $relax_flags " run_test zipr-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $relax_flags $nounpin_flags " run_test zipr-relax-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $nounpin_flags " run_test split-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $relax_flags " run_test split-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $icall_flags $relax_flags " run_test split-no-fix-icalls-relax $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + #PSOPTS="$zipr_flags $split_flags $icall_flags $relax_flags $nounpin_flags " run_test split-no-fix-icalls-relax-nounpin $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$all_benchmarks" + + + #p1_broken_benchmarks="403.gcc 416.gamess 483.xalancbmk" + #p1_broken_benchmarks="483.xalancbmk" + #PN_NUMFUNCSTOTRY=9805 PSOPTS="$zipr_flags $trace_flags $p1flags " run_test zipr-trace-p1-rerun $SPEC/config/ubuntu14.04lts-64bit-withps.cfg "$p1_broken_benchmarks" + get_raw_results baseline split-trace split-no-fix-icalls-trace-p1 + # get_raw_results baseline zipr zipr-trace split-no-fix-icalls split-no-fix-icalls-trace zipr-trace-p1 split-trace-p1 split-no-fix-icalls-trace-p1 zipr-trace-p1-rerun } main "$@"