summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtcwg_bmk-build.sh29
1 files changed, 23 insertions, 6 deletions
diff --git a/tcwg_bmk-build.sh b/tcwg_bmk-build.sh
index a802a594..787d8825 100755
--- a/tcwg_bmk-build.sh
+++ b/tcwg_bmk-build.sh
@@ -365,22 +365,22 @@ compare_results_perf ()
esac
local -a arr
- local bmk symbol metric time2 regression result prev_bmk
+ local metric bmk symbol rtime rsize time1 time2 size1 size2 regression result prev_bmk
echo "bmk,symbol,result" > $run_step_artifacts/results-compare.csv
printf "extra_build_params=" > $run_step_artifacts/extra-bisect-params
assert_with_msg "Found stale regression files" \
[ x"$(find $run_step_artifacts/ -name "*.regression" | wc -l)" = x"0" ]
- local regressed_by metric_field
+ local metric_id regressed_by
case "${cflags[0]}" in
"-Os"*|"-Oz"*)
+ metric_id="size"
regressed_by="grew in size by"
- metric_field=3
;;
*)
+ metric_id="time"
regressed_by="slowed down by"
- metric_field=2
;;
esac
@@ -390,13 +390,22 @@ compare_results_perf ()
while IFS=, read -a arr; do
bmk=${arr[0]}
symbol=${arr[1]}
- metric=${arr[$metric_field]}
+ rtime=${arr[2]}
+ rsize=${arr[3]}
+ time1=${arr[4]}
time2=${arr[5]}
+ size1=${arr[6]}
+ size2=${arr[7]}
+
+ case $metric_id in
+ size) metric=$rsize ;;
+ time) metric=$rtime ;;
+ *) assert false ;;
+ esac
# Skip case where we have no info ("n/a")
if [ "$metric" != "n/a" ]; then
metric=$(($metric - 100))
- regression="$regressed_by ${metric}%"
# Remove padding from the tail of $symbol (padding is added by
# csvs2table.py for better formatting).
local short_symbol
@@ -418,7 +427,15 @@ compare_results_perf ()
if ! [ "$metric" -le "$threshold" ]; then
result=100
+
+ case $metric_id in
+ size) regression="$regressed_by ${metric}% from $size1 to $size2 bytes" ;;
+ time) regression="$regressed_by ${metric}% from $time1 to $time2 perf samples" ;;
+ *) assert false ;;
+ esac
if $bmk_exe; then
+ # Detect magic sample counts that indicate failure to build
+ # and failure to run
case "$time2" in
888888888) regression="failed to run correctly" ;;
999999999) regression="failed to build" ;;