summaryrefslogtreecommitdiff
path: root/jenkins/notify-full.log
diff options
context:
space:
mode:
Diffstat (limited to 'jenkins/notify-full.log')
-rw-r--r--jenkins/notify-full.log1582
1 files changed, 87 insertions, 1495 deletions
diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log
index 7747c50..d5c2c69 100644
--- a/jenkins/notify-full.log
+++ b/jenkins/notify-full.log
@@ -1,27 +1,27 @@
++ pwd
++ cat
-+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh
++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh
+ set -euf -o pipefail
+ local host
-++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
+++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
++ cut -d: -f 1
+ host=tcwg-snow_bmk-02
+ local port
-++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
+++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
++ cut -s -d: -f 2
+ port=
+ local dir
-++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
+++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
++ cut -s -d: -f 3
-+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_2
++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_4
+ local opts
-++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
+++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
++ cut -s -d: -f 4
-+ opts=-p39137
++ opts=-p40217
+ local env_vars
-++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p39137:ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
+++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p40217:ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
++ cut -s -d: -f 5
-+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=39137'
++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=40217'
+ shift
+ local -a cmd
+ cmd=()
@@ -58,10 +58,10 @@
+ for i in "$@"
+ cmd+=("$(printf '%q' "$i")")
++ printf %q tcwg_bmk-build.sh
-++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_2
-+ ssh -p39137 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=39137 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_2 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh'
+++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_4
++ ssh -p40217 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=40217 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_4 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh'
-/home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh
+/home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh
+ false
+ dryrun=
@@ -70,8 +70,8 @@
+ declare -a changed_components
+ declare print_commits_f print_result_f print_config_f print_last_icommit_f
+ dump_model_only=false
-+ setup_notify_environment
# setup_notify_environment
++ setup_notify_environment
+ echo '# setup_notify_environment'
+ top_artifacts=artifacts
++ get_current_manifest '{rr[ci_project]}'
@@ -81,21 +81,21 @@
++ get_current_manifest '{rr[ci_config]}'
++ get_manifest artifacts/manifest.sh '{rr[ci_config]}'
++ set +x
-+ ci_config=llvm-arm-master-O2
# Debug traces :
++ ci_config=llvm-arm-master-O2
+ echo '# Debug traces :'
++ get_baseline_manifest BUILD_URL
++ get_manifest base-artifacts/manifest.sh BUILD_URL false
++ set +x
-# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/
-+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/'
+# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/
# Using dir : base-artifacts
++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/'
+ echo '# Using dir : base-artifacts'
++ get_current_manifest BUILD_URL
++ get_manifest artifacts/manifest.sh BUILD_URL
++ set +x
-# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/
-+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/'
+# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/86/
++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/86/'
# Using dir : artifacts
+ echo '# Using dir : artifacts'
@@ -111,7 +111,7 @@
++ get_current_manifest '{rr[update_baseline]}'
++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}'
++ set +x
-+ '[' onsuccess '!=' init ']'
++ '[' force '!=' init ']'
+ IFS=' '
+ read -r -a changed_components
++ print_changed_components
@@ -121,94 +121,18 @@
+++ set -euf -o pipefail
+++ local c delim=
+++ for c in ${rr[components]}
-+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']'
-+++ echo -ne llvm
-+++ delim=' '
++++ '[' xbaseline '!=' xbaseline ']'
+++ echo
-++ for c in $(print_updated_components)
-+++ get_current_git llvm_rev
-+++ set -euf -o pipefail
-+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat artifacts/git/llvm_rev
-+++ get_baseline_git llvm_rev
-+++ set -euf -o pipefail
-+++ local base_artifacts=base-artifacts
-+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat base-artifacts/git/llvm_rev
-++ '[' x90576084c1d797f845055e8d95c2d9f455268841 '!=' xa502dddfd0da8ccefd2cee15599b49f6eaf74efa ']'
-++ echo -ne llvm
-++ delim=' '
++ echo
+ local c base_rev cur_rev c_commits
-+ '[' 1 = 0 ']'
-+ '[' 1 = 1 ']'
-+ changed_single_component=llvm
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ first_bad=90576084c1d797f845055e8d95c2d9f455268841
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ last_good=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-+ local res
-+ res=0
-+ wait 47394
-+ git -C llvm rev-parse --verify HEAD
-+ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']'
-+ set -euf -o pipefail +x
-+ single_commit_p llvm
-+ set -euf -o pipefail
-+ local c=llvm
-+ local base_rev cur_rev sha1
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-++ git -C llvm rev-parse '90576084c1d797f845055e8d95c2d9f455268841^@'
-+ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@")
-+ '[' 4434253f0fa663f5da4f460c798d1666da8868c7 = a502dddfd0da8ccefd2cee15599b49f6eaf74efa ']'
-+ return 1
-+ change_kind=single_component
# Debug traces :
-+ echo '# Debug traces :'
-# change_kind=single_component : llvm
-+ echo '# change_kind=single_component : llvm'
-+ for c in "${changed_components[@]}"
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-++ git -C llvm rev-list --count a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-+ c_commits=200
-# rev for llvm : a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841 (200 commits)
+# change_kind=no_change :
-+ echo '# rev for llvm : a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841 (200 commits)'
++ '[' 0 = 0 ']'
++ change_kind=no_change
++ changed_single_component=
++ echo '# Debug traces :'
++ echo '# change_kind=no_change : '
+ echo ''
+ setup_stages_to_run
+ '[' ignore = onregression ']'
@@ -235,7 +159,7 @@
# post_interesting_commits
+ echo '# post_interesting_commits'
+ local stage=init
-+ '[' single_component '!=' single_commit ']'
++ '[' no_change '!=' single_commit ']'
+ return
+ '[' full '!=' full ']'
+ bmk_generate_extra_details
@@ -243,21 +167,21 @@
+ local artifacts_mail_dir
+ artifacts_mail_dir=artifacts/notify
+ local res=0
-+ wait 47418
-+ /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose
++ wait 44820
++ /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose
+ assert_with_msg 'ERROR while trying to regenerate bmk-data results. Aborting..' '[' 0 = 0 ']'
+ set -euf -o pipefail +x
+ check_if_first_report
+ declare -g first_icommit_to_report
+ first_icommit_to_report=false
-+ '[' xsingle_component '!=' xsingle_commit ']'
++ '[' xno_change '!=' xsingle_commit ']'
+ return
+ post_interesting_commits full
+ set -euf -o pipefail
# post_interesting_commits
+ echo '# post_interesting_commits'
+ local stage=full
-+ '[' single_component '!=' single_commit ']'
++ '[' no_change '!=' single_commit ']'
+ return
+ true
+ generate_jira_dir
@@ -268,7 +192,7 @@
++ set -euf -o pipefail
++ local print_arg=--entry
++ shift 1
-++ '[' xsingle_component '!=' xsingle_commit ']'
+++ '[' xno_change '!=' xsingle_commit ']'
++ return 0
+ icommit_entry=
+ '[' '' '!=' '' ']'
@@ -288,8 +212,7 @@
++ '[' full '!=' full ']'
++ local improved_or_regressed
++ '[' -f artifacts/notify/exe.regression ']'
-++ '[' -f artifacts/notify/symbol.regression ']'
-++ improved_or_regressed=improvement
+++ improved_or_regressed=regression
++ declare -A changed_by_msg
++ changed_by_msg[size-regression]='grew in size by'
++ changed_by_msg[size-improvement]='reduced in size by'
@@ -299,27 +222,28 @@
++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by'
++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by'
++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by'
-++ changed_by='speeds up by'
+++ changed_by='slowed down by'
++ case ${rr[metric_id]} in
++ exe_threshold=3
++ symbol_threshold=15
++ case "$print_arg" in
-++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']'
+++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']'
++ set -euf -o pipefail +x
++ local metric bmk symbol short_diag long_diag
-++ '[' -f artifacts/notify/exe.improvement ']'
-++ '[' -f artifacts/notify/symbol.improvement ']'
-++ short_diag='No change'
-++ echo 'No change'
+++ '[' -f artifacts/notify/exe.regression ']'
+++ IFS=,
+++ read metric bmk symbol short_diag long_diag
++++ head -n1 artifacts/notify/exe.regression
+++ echo '541.leela_r failed to run'
++ print_artifacts_url 'notify/mail-body.txt/*view*/'
++ set -euf -o pipefail
++ local url
+++ get_current_manifest BUILD_URL
+++ get_manifest artifacts/manifest.sh BUILD_URL
+++ set +x
-++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/artifact/artifacts
+++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/86/artifact/artifacts
++ '[' '' '!=' '' ']'
-++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/artifact/artifacts/notify/mail-body.txt/*view*/'
+++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/86/artifact/artifacts/notify/mail-body.txt/*view*/'
# print all notification files
+ echo '# print all notification files'
+ true
@@ -327,1304 +251,16 @@
+ set -euf -o pipefail
+ print_mail_recipients
+ set -euf -o pipefail
-+ local c=llvm
-+ '[' llvm = '' ']'
-+ local -A emails
-+ emails["tcwg-validation@linaro.org"]=bcc
-+ emails["author"]=cc
-+ emails["committer"]=to
-+ case "$ci_project/$ci_config:$c" in
-+ emails["author"]=no
-+ emails["committer"]=no
-+ emails["maxim.kuvyrkov@linaro.org"]=to
-+ local c email base_rev cur_rev
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-+ read -r email
-++ git -C llvm log --pretty=%ae a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ local precommit_postcommit=postcommit
++ local c=
+ '[' '' = '' ']'
-++ get_baseline_git llvm_rev
-++ set -euf -o pipefail
-++ local base_artifacts=base-artifacts
-++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat base-artifacts/git/llvm_rev
-+ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-++ get_current_git llvm_rev
-++ set -euf -o pipefail
-++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-++ set -euf -o pipefail +x
-++ cat artifacts/git/llvm_rev
-+ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-+ read -r email
-++ git -C llvm log --pretty=%ce a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ emails["$email"]=no
-+ read -r email
-+ unset 'emails[author]' 'emails[committer]'
-+ local type
-+ recipients=()
-+ local -a recipients
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=bcc
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ recipients+=("$type:$email")
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=to
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ recipients+=("$email")
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ for email in "${!emails[@]}"
-+ type=no
-+ case "$precommit_postcommit:$type" in
-+ case "$type" in
-+ IFS=,
-+ echo bcc:tcwg-validation@linaro.org,maxim.kuvyrkov@linaro.org
++ echo bcc:tcwg-validation@linaro.org
++ return 0
++ print_commits --oneline
++ set -euf -o pipefail
++ false
++ local print_arg=--oneline
-++ '[' single_component = no_change ']'
-++ local more_lines
-++ '[' single_component = single_commit ']'
-++ '[' single_component = single_component ']'
-++ local new_commits c base_rev cur_rev c_commits components
-++ local commits_or_patches
-++ '[' '' '!=' '' ']'
-++ commits_or_patches=commits
-++ new_commits=0
-++ for c in "${changed_components[@]}"
-+++ get_baseline_git llvm_rev
-+++ set -euf -o pipefail
-+++ local base_artifacts=base-artifacts
-+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat base-artifacts/git/llvm_rev
-++ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-+++ get_current_git llvm_rev
-+++ set -euf -o pipefail
-+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat artifacts/git/llvm_rev
-++ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-+++ git -C llvm rev-list --count a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-++ c_commits=200
-++ new_commits=200
-+++ echo llvm
-+++ tr ' ' ,
-++ components=llvm
-++ echo '200 commits in llvm'
-++ '[' --oneline = --oneline ']'
+++ '[' no_change = no_change ']'
+++ echo 'baseline build'
++ return 0
++ bmk_print_result --oneline
++ set -euf -o pipefail
@@ -1634,8 +270,7 @@
++ '[' full '!=' full ']'
++ local improved_or_regressed
++ '[' -f artifacts/notify/exe.regression ']'
-++ '[' -f artifacts/notify/symbol.regression ']'
-++ improved_or_regressed=improvement
+++ improved_or_regressed=regression
++ declare -A changed_by_msg
++ changed_by_msg[size-regression]='grew in size by'
++ changed_by_msg[size-improvement]='reduced in size by'
@@ -1645,20 +280,21 @@
++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by'
++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by'
++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by'
-++ changed_by='speeds up by'
+++ changed_by='slowed down by'
++ case ${rr[metric_id]} in
++ exe_threshold=3
++ symbol_threshold=15
++ case "$print_arg" in
-++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']'
+++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']'
++ set -euf -o pipefail +x
++ local metric bmk symbol short_diag long_diag
-++ '[' -f artifacts/notify/exe.improvement ']'
-++ '[' -f artifacts/notify/symbol.improvement ']'
-++ short_diag='No change'
-++ echo 'No change'
+++ '[' -f artifacts/notify/exe.regression ']'
+++ IFS=,
+++ read metric bmk symbol short_diag long_diag
++++ head -n1 artifacts/notify/exe.regression
+++ echo '541.leela_r failed to run'
++ bmk_print_config --oneline
-++ . /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/tcwg_bmk-config.sh
+++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh
+++ [[ -v rr[ci_project] ]]
+++ [[ -v rr[ci_config] ]]
+++ declare -A bmk_data
@@ -1710,20 +346,20 @@
++ case "$ci_config" in
++ echo 'arm O2'
++ return 0
-+ echo '[Linaro-TCWG-CI]' '200 commits in llvm: No change on arm O2'
++ echo '[Linaro-TCWG-CI]' 'baseline build: 541.leela_r failed to run on arm O2'
+ print_mail_body
+ local bad_artifacts_url good_artifacts_url
++ get_current_manifest BUILD_URL
++ get_manifest artifacts/manifest.sh BUILD_URL
++ set +x
-+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/artifact/artifacts
++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/86/artifact/artifacts
++ get_baseline_manifest BUILD_URL
++ get_manifest base-artifacts/manifest.sh BUILD_URL false
++ set +x
-+ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/artifact/artifacts
++ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/82/artifact/artifacts
+ cat
++ bmk_print_config --short
-++ . /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/tcwg_bmk-config.sh
+++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh
+++ [[ -v rr[ci_project] ]]
+++ [[ -v rr[ci_config] ]]
+++ declare -A bmk_data
@@ -1783,58 +419,8 @@
++ set -euf -o pipefail
++ false
++ local print_arg=--short
-++ '[' single_component = no_change ']'
-++ local more_lines
-++ '[' single_component = single_commit ']'
-++ '[' single_component = single_component ']'
-++ local new_commits c base_rev cur_rev c_commits components
-++ local commits_or_patches
-++ '[' '' '!=' '' ']'
-++ commits_or_patches=commits
-++ new_commits=0
-++ for c in "${changed_components[@]}"
-+++ get_baseline_git llvm_rev
-+++ set -euf -o pipefail
-+++ local base_artifacts=base-artifacts
-+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat base-artifacts/git/llvm_rev
-++ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-+++ get_current_git llvm_rev
-+++ set -euf -o pipefail
-+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat artifacts/git/llvm_rev
-++ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-+++ git -C llvm rev-list --count a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-++ c_commits=200
-++ new_commits=200
-+++ echo llvm
-+++ tr ' ' ,
-++ components=llvm
-++ echo '200 commits in llvm'
-++ '[' --short = --oneline ']'
-++ for c in "${changed_components[@]}"
-+++ get_baseline_git llvm_rev
-+++ set -euf -o pipefail
-+++ local base_artifacts=base-artifacts
-+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat base-artifacts/git/llvm_rev
-++ base_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa
-+++ get_current_git llvm_rev
-+++ set -euf -o pipefail
-+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']'
-+++ set -euf -o pipefail +x
-+++ cat artifacts/git/llvm_rev
-++ cur_rev=90576084c1d797f845055e8d95c2d9f455268841
-+++ git -C llvm rev-list --count a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-++ c_commits=200
-++ '[' '' '!=' '' ']'
-++ git -C llvm log -n 5 --oneline a502dddfd0da8ccefd2cee15599b49f6eaf74efa..90576084c1d797f845055e8d95c2d9f455268841
-++ '[' 200 -gt 5 ']'
-++ echo '... and 195 more commits in llvm'
-++ '[' '' '!=' '' ']'
+++ '[' no_change = no_change ']'
+++ echo 'baseline build'
++ return 0
++ bmk_print_result --short
++ set -euf -o pipefail
@@ -1844,8 +430,7 @@
++ '[' full '!=' full ']'
++ local improved_or_regressed
++ '[' -f artifacts/notify/exe.regression ']'
-++ '[' -f artifacts/notify/symbol.regression ']'
-++ improved_or_regressed=improvement
+++ improved_or_regressed=regression
++ declare -A changed_by_msg
++ changed_by_msg[size-regression]='grew in size by'
++ changed_by_msg[size-improvement]='reduced in size by'
@@ -1855,18 +440,25 @@
++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by'
++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by'
++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by'
-++ changed_by='speeds up by'
+++ changed_by='slowed down by'
++ case ${rr[metric_id]} in
++ exe_threshold=3
++ symbol_threshold=15
++ case "$print_arg" in
-++ '[' -f artifacts/notify/exe.improvement ']'
-++ '[' -f artifacts/notify/symbol.improvement ']'
-++ '[' -f artifacts/notify/exe.improvement ']'
-++ '[' -f artifacts/notify/symbol.improvement ']'
-++ echo 'No change'
+++ '[' -f artifacts/notify/exe.regression ']'
+++ sort -gr -o artifacts/notify/exe.regression artifacts/notify/exe.regression
+++ echo 'the following benchmarks slowed down by more than 3%:'
+++ local metric exe symbol short_diag long_diag
+++ IFS=,
+++ read metric exe symbol short_diag long_diag
+++ echo '- 541.leela_r failed to run '
+++ '[' -f artifacts/notify/541.leela_r.symbols-regression ']'
+++ IFS=,
+++ read metric exe symbol short_diag long_diag
+++ '[' -f artifacts/notify/symbol.regression ']'
+++ '[' -f artifacts/notify/exe.regression ']'
++ bmk_print_config --long
-++ . /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/tcwg_bmk-config.sh
+++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh
+++ [[ -v rr[ci_project] ]]
+++ [[ -v rr[ci_config] ]]
+++ declare -A bmk_data
@@ -1962,44 +554,44 @@
+++ case "$target" in
+++ target=arm-linux-gnueabihf
+++ echo arm-linux-gnueabihf
-+ '[' single_component '!=' single_commit ']'
++ '[' no_change '!=' single_commit ']'
+ return
++ echo '# generate dashboard'
# generate dashboard
++ generate_dashboard_squad
# generate_dashboard_squad
... Skipping
-# post_dashboard_squad
-... Skipping
-+ echo '# generate dashboard'
-+ generate_dashboard_squad
+ local results_date
+ echo '# generate_dashboard_squad'
+ false
+ echo '... Skipping'
+ return
+# post_dashboard_squad
+... Skipping
+ post_dashboard_squad
+ echo '# post_dashboard_squad'
+ false
+ echo '... Skipping'
+ return
+ generate_lnt_report
-+ wait 47563
++ wait 44912
+ set -euf -o pipefail
-+ echo '# generate_lnt_report'
# generate_lnt_report
++ echo '# generate_lnt_report'
+ true
+ case "$ci_project" in
-... Skipping
+ echo '... Skipping'
+... Skipping
+ return
+ false
+ post_to_jira
+ set -euf -o pipefail
-+ echo '# post_to_jira'
# post_to_jira
++ echo '# post_to_jira'
+ local post_card_comment=false
+ local post_template_comment=false
+ false
+ false
+ false
-+ echo 'Full stage ran successfully.'
Full stage ran successfully.
++ echo 'Full stage ran successfully.'