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 <mli...@suse.cz>
Date:   Thu Nov 14 13:04:45 2019 +0100

    Remove dead code in switch conv pass.
    
    2019-11-14  Martin Liska  <mli...@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-aarch64-spec2k6-O2/22/artifact/artifacts/build-e61d0e4e2ed8170491e7dfe597340f86a75a31cd/
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-aarch64-spec2k6-O2/22/artifact/artifacts/build-4c4503bf8c538bdbd8db8940aae3d7000885776e/
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-aarch64-spec2k6-O2/22/

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-aarch64-spec2k6-O2/22/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/22/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/22/artifact/artifacts/test.sh
 --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/ci/tcwg_bmk_gnu_tx1/gnu-release-aarch64-spec2k6-O2

Artifacts: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/22/artifact/artifacts/
Build log: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/22/consoleText

Full commit (up to 1000 lines):
<cut>
commit 4c4503bf8c538bdbd8db8940aae3d7000885776e
Author: Martin Liska <mli...@suse.cz>
Date:   Thu Nov 14 13:04:45 2019 +0100

    Remove dead code in switch conv pass.
    
    2019-11-14  Martin Liska  <mli...@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  <mli...@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  <mli...@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 mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to