Successfully identified regression in *gcc* in CI configuration tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O2. So far, this commit has regressed CI configurations: - tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O2
Culprit: <cut> commit 4c4503bf8c538bdbd8db8940aae3d7000885776e Author: Martin Liska mliska@suse.cz Date: Thu Nov 14 13:04:45 2019 +0100
Remove dead code in switch conv pass.
2019-11-14 Martin Liska mliska@suse.cz
* tree-switch-conversion.c (switch_conversion::switch_conversion): Do not initialize m_other_count. (switch_conversion::collect): Do not count m_default_count and m_other_count as we use frequencies for edges. * tree-switch-conversion.h: Remove m_default_count and m_other_count.
From-SVN: r278217 </cut>
Results regressed to (for first_bad == 4c4503bf8c538bdbd8db8940aae3d7000885776e) # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer: -8 # build_abe linux: -7 # build_abe glibc: -6 # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer: -5 # true: 0 # benchmark -- -O2 artifacts/build-4c4503bf8c538bdbd8db8940aae3d7000885776e/results_id: 1 # 401.bzip2,bzip2_base.default regressed by 104 # 401.bzip2,[.] mainSort regressed by 116
from (for last_good == e61d0e4e2ed8170491e7dfe597340f86a75a31cd) # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer: -8 # build_abe linux: -7 # build_abe glibc: -6 # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer: -5 # true: 0 # benchmark -- -O2 artifacts/build-baseline/results_id: 1
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... Results ID of last_good: tx1_64/tcwg_bmk_gnu_tx1/baseline-gnu-release-aarch64-spec2k6-O2/3251 Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... Results ID of first_bad: tx1_64/tcwg_bmk_gnu_tx1/bisect-gnu-release-aarch64-spec2k6-O2/3279 Build top page/logs: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa...
Configuration details:
Reproduce builds: <cut> mkdir investigate-gcc-4c4503bf8c538bdbd8db8940aae3d7000885776e cd investigate-gcc-4c4503bf8c538bdbd8db8940aae3d7000885776e
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... --fail chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh
# Save baseline build state (which is then restored in artifacts/test.sh) mkdir -p ./bisect rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /gcc/ ./ ./bisect/baseline/
cd gcc
# Reproduce first_bad build git checkout --detach 4c4503bf8c538bdbd8db8940aae3d7000885776e ../artifacts/test.sh
# Reproduce last_good build git checkout --detach e61d0e4e2ed8170491e7dfe597340f86a75a31cd ../artifacts/test.sh
cd .. </cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/c...
Artifacts: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa... Build log: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aa...
Full commit (up to 1000 lines): <cut> commit 4c4503bf8c538bdbd8db8940aae3d7000885776e Author: Martin Liska mliska@suse.cz Date: Thu Nov 14 13:04:45 2019 +0100
Remove dead code in switch conv pass.
2019-11-14 Martin Liska mliska@suse.cz
* tree-switch-conversion.c (switch_conversion::switch_conversion): Do not initialize m_other_count. (switch_conversion::collect): Do not count m_default_count and m_other_count as we use frequencies for edges. * tree-switch-conversion.h: Remove m_default_count and m_other_count.
From-SVN: r278217 --- gcc/ChangeLog | 8 ++++++++ gcc/tree-switch-conversion.c | 6 +----- gcc/tree-switch-conversion.h | 6 ------ 3 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6060edff243..6b77d87a97d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-11-14 Martin Liska mliska@suse.cz + + * tree-switch-conversion.c (switch_conversion::switch_conversion): + Do not initialize m_other_count. + (switch_conversion::collect): Do not count m_default_count and + m_other_count as we use frequencies for edges. + * tree-switch-conversion.h: Remove m_default_count and m_other_count. + 2019-11-14 Martin Liska mliska@suse.cz
PR other/92329 diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index af4fd5e33bd..e741f56b520 100644 --- a/gcc/tree-switch-conversion.c +++ b/gcc/tree-switch-conversion.c @@ -61,7 +61,7 @@ using namespace tree_switch_conversion;
/* Constructor. */
-switch_conversion::switch_conversion (): m_final_bb (NULL), m_other_count (), +switch_conversion::switch_conversion (): m_final_bb (NULL), m_constructors (NULL), m_default_values (NULL), m_arr_ref_first (NULL), m_arr_ref_last (NULL), m_reason (NULL), m_default_case_nonstandard (false), m_cfg_altered (false) @@ -89,10 +89,6 @@ switch_conversion::collect (gswitch *swtch) e_default = gimple_switch_default_edge (cfun, swtch); m_default_bb = e_default->dest; m_default_prob = e_default->probability; - m_default_count = e_default->count (); - FOR_EACH_EDGE (e, ei, m_switch_bb->succs) - if (e != e_default) - m_other_count += e->count ();
/* Get upper and lower bounds of case values, and the covered range. */ min_case = gimple_switch_label (swtch, 1); diff --git a/gcc/tree-switch-conversion.h b/gcc/tree-switch-conversion.h index c58bccea7f1..a0639fc5477 100644 --- a/gcc/tree-switch-conversion.h +++ b/gcc/tree-switch-conversion.h @@ -819,12 +819,6 @@ public: /* The probability of the default edge in the replaced switch. */ profile_probability m_default_prob;
- /* The count of the default edge in the replaced switch. */ - profile_count m_default_count; - - /* Combined count of all other (non-default) edges in the replaced switch. */ - profile_count m_other_count; - /* Number of phi nodes in the final bb (that we'll be replacing). */ int m_phi_count;
</cut>
linaro-toolchain@lists.linaro.org