Hi Richard, This report was sent out accidentally, due to a mistake in email preferences in our bisection scripts.
It appears that your patch regresses code-speed of a single function -- 447.dealII,[.] _ZNK12SparseMatrixIdE5vmultI6VectorIdES3_EEvRT -- by 12%. I don't there is anything worth investigating here. Regards, -- Maxim Kuvyrkov https://www.linaro.org > On Jul 11, 2021, at 8:17 PM, ci_not...@linaro.org wrote: > > 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 a4dfaad2e5594d871fe00a1116005e28f95d644e > Author: Richard Sandiford <richard.sandif...@arm.com> > Date: Mon Sep 30 16:20:44 2019 +0000 > > Remove global call sets: gcse.c > > This is another case in which we can conservatively treat partial > kills as full kills. Again this is in principle a bug fix for > TARGET_HARD_REGNO_CALL_PART_CLOBBERED targets, but in practice > it probably doesn't make a difference. > > 2019-09-30 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * gcse.c: Include function-abi.h. > (compute_hash_table_work): Use insn_callee_abi to get the ABI of > the call insn target. Invalidate partially call-clobbered > registers as well as fully call-clobbered ones. > > From-SVN: r276323 > </cut> > > Results regressed to (for first_bad == > a4dfaad2e5594d871fe00a1116005e28f95d644e) > # 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-a4dfaad2e5594d871fe00a1116005e28f95d644e/results_id: > 1 > # 447.dealII,[.] _ZNK12SparseMatrixIdE5vmultI6VectorIdES3_EEvRT regressed by > 112 > > from (for last_good == c1b582720a39c3cb944aaff0298f721cdd034e3f) > # 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-c1b582720a39c3cb944aaff0298f721cdd034e3f/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/15/artifact/artifacts/build-c1b582720a39c3cb944aaff0298f721cdd034e3f/ > Results ID of last_good: > tx1_64/tcwg_bmk_gnu_tx1/bisect-gnu-release-aarch64-spec2k6-O2/1425 > Artifacts of first_bad build: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/15/artifact/artifacts/build-a4dfaad2e5594d871fe00a1116005e28f95d644e/ > Results ID of first_bad: > tx1_64/tcwg_bmk_gnu_tx1/bisect-gnu-release-aarch64-spec2k6-O2/1421 > Build top page/logs: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/15/ > > Configuration details: > > > Reproduce builds: > <cut> > mkdir investigate-gcc-a4dfaad2e5594d871fe00a1116005e28f95d644e > cd investigate-gcc-a4dfaad2e5594d871fe00a1116005e28f95d644e > > 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/15/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/15/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/15/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 > > cd gcc > > # Reproduce first_bad build > git checkout --detach a4dfaad2e5594d871fe00a1116005e28f95d644e > ../artifacts/test.sh > > # Reproduce last_good build > git checkout --detach c1b582720a39c3cb944aaff0298f721cdd034e3f > ../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/15/artifact/artifacts/ > Build log: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/15/consoleText > > Full commit (up to 1000 lines): > <cut> > commit a4dfaad2e5594d871fe00a1116005e28f95d644e > Author: Richard Sandiford <richard.sandif...@arm.com> > Date: Mon Sep 30 16:20:44 2019 +0000 > > Remove global call sets: gcse.c > > This is another case in which we can conservatively treat partial > kills as full kills. Again this is in principle a bug fix for > TARGET_HARD_REGNO_CALL_PART_CLOBBERED targets, but in practice > it probably doesn't make a difference. > > 2019-09-30 Richard Sandiford <richard.sandif...@arm.com> > > gcc/ > * gcse.c: Include function-abi.h. > (compute_hash_table_work): Use insn_callee_abi to get the ABI of > the call insn target. Invalidate partially call-clobbered > registers as well as fully call-clobbered ones. > > From-SVN: r276323 > --- > gcc/ChangeLog | 7 +++++++ > gcc/gcse.c | 10 ++++++++-- > 2 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index 9d8b083d539..1b1c31cf009 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,10 @@ > +2019-09-30 Richard Sandiford <richard.sandif...@arm.com> > + > + * gcse.c: Include function-abi.h. > + (compute_hash_table_work): Use insn_callee_abi to get the ABI of > + the call insn target. Invalidate partially call-clobbered > + registers as well as fully call-clobbered ones. > + > 2019-09-30 Richard Sandiford <richard.sandif...@arm.com> > > * function.c (aggregate_value_p): Work out which ABI the > diff --git a/gcc/gcse.c b/gcc/gcse.c > index 9bde8619b7b..aeb59c645e1 100644 > --- a/gcc/gcse.c > +++ b/gcc/gcse.c > @@ -160,6 +160,7 @@ along with GCC; see the file COPYING3. If not see > #include "dbgcnt.h" > #include "gcse.h" > #include "gcse-common.h" > +#include "function-abi.h" > > /* We support GCSE via Partial Redundancy Elimination. PRE optimizations > are a superset of those done by classic GCSE. > @@ -1528,8 +1529,13 @@ compute_hash_table_work (struct gcse_hash_table_d > *table) > if (CALL_P (insn)) > { > hard_reg_set_iterator hrsi; > - EXECUTE_IF_SET_IN_HARD_REG_SET (regs_invalidated_by_call, > - 0, regno, hrsi) > + > + /* We don't track modes of hard registers, so we need > + to be conservative and assume that partial kills > + are full kills. */ > + HARD_REG_SET callee_clobbers > + = insn_callee_abi (insn).full_and_partial_reg_clobbers (); > + EXECUTE_IF_SET_IN_HARD_REG_SET (callee_clobbers, 0, regno, hrsi) > record_last_reg_set_info (insn, regno); > > if (! RTL_CONST_OR_PURE_CALL_P (insn) > </cut> _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain