Hi Wilco, This report was sent out accidentally, it's for an old patch.
Still, it appears that your patch regresses code-speed of several SPEC2k6 benchmarks by up to 16% on 436.cactusADM when compiled with "-marm -O3 -flto". May be worth to look for low-hanging fruit and get some of the performance back. -- Maxim Kuvyrkov https://www.linaro.org > On Jul 12, 2021, at 9:23 AM, ci_not...@linaro.org wrote: > > Successfully identified regression in *gcc* in CI configuration > tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O3_LTO. So far, this commit has > regressed CI configurations: > - tcwg_bmk_gnu_tk1/gnu-release-arm-spec2k6-O3_LTO > > Culprit: > <cut> > commit c7207339a7dbce5b68f872064e624dcf1639ba46 > Author: Wilco Dijkstra <wdijk...@arm.com> > Date: Mon Oct 14 12:21:14 2019 +0000 > > [ARM] Switch to default sched pressure algorithm > > Currently the Arm backend selects the alternative sched pressure algorithm. > The issue is that this doesn't take register pressure into account, and so > it causes significant additional spilling on Arm where there are only 14 > allocatable registers. Building SPEC2006 showed significant codesize gains > with the default pressure algorithm, so switch back to that. PR77308 shows > ~800 fewer instructions. > > SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode > patches. Overall SPEC codesize is 1.1% smaller. > > gcc/ > * config/arm/arm.c (arm_option_override): Don't override sched > pressure algorithm. > > From-SVN: r276960 > </cut> > > Results regressed to (for first_bad == > c7207339a7dbce5b68f872064e624dcf1639ba46) > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set gcc_override_configure=--with-mode=arm --set > gcc_override_configure=--disable-libsanitizer: > -8 > # build_abe linux: > -7 > # build_abe glibc: > -6 > # build_abe stage2 -- --set gcc_override_configure=--with-mode=arm --set > gcc_override_configure=--disable-libsanitizer: > -5 > # true: > 0 > # benchmark -O3_LTO_marm -- > artifacts/build-c7207339a7dbce5b68f872064e624dcf1639ba46/results_id: > 1 > # 410.bwaves,bwaves_base.default regressed by > 108 > # 454.calculix,calculix_base.default regressed by > 105 > # 482.sphinx3,sphinx_livepretend_base.default regressed by > 104 > # 436.cactusADM,cactusADM_base.default regressed by > 116 > # 444.namd,namd_base.default regressed by > 103 > # 435.gromacs,gromacs_base.default regressed by > 106 > > from (for last_good == 7bd8bec53f0e43c7a7852c54650746e65324514b) > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set gcc_override_configure=--with-mode=arm --set > gcc_override_configure=--disable-libsanitizer: > -8 > # build_abe linux: > -7 > # build_abe glibc: > -6 > # build_abe stage2 -- --set gcc_override_configure=--with-mode=arm --set > gcc_override_configure=--disable-libsanitizer: > -5 > # true: > 0 > # benchmark -O3_LTO_marm -- > artifacts/build-7bd8bec53f0e43c7a7852c54650746e65324514b/results_id: > 1 > > Artifacts of last_good build: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/artifact/artifacts/build-7bd8bec53f0e43c7a7852c54650746e65324514b/ > Results ID of last_good: > tk1_32/tcwg_bmk_gnu_tk1/bisect-gnu-release-arm-spec2k6-O3_LTO/1468 > Artifacts of first_bad build: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/artifact/artifacts/build-c7207339a7dbce5b68f872064e624dcf1639ba46/ > Results ID of first_bad: > tk1_32/tcwg_bmk_gnu_tk1/bisect-gnu-release-arm-spec2k6-O3_LTO/1469 > Build top page/logs: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/ > > Configuration details: > > > Reproduce builds: > <cut> > mkdir investigate-gcc-c7207339a7dbce5b68f872064e624dcf1639ba46 > cd investigate-gcc-c7207339a7dbce5b68f872064e624dcf1639ba46 > > 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_tk1-gnu-release-arm-spec2k6-O3_LTO/27/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_tk1-gnu-release-arm-spec2k6-O3_LTO/27/artifact/artifacts/manifests/build-parameters.sh > --fail > curl -o artifacts/test.sh > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/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 c7207339a7dbce5b68f872064e624dcf1639ba46 > ../artifacts/test.sh > > # Reproduce last_good build > git checkout --detach 7bd8bec53f0e43c7a7852c54650746e65324514b > ../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_tk1/gnu-release-arm-spec2k6-O3_LTO > > Artifacts: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/artifact/artifacts/ > Build log: > https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-release-arm-spec2k6-O3_LTO/27/consoleText > > Full commit (up to 1000 lines): > <cut> > commit c7207339a7dbce5b68f872064e624dcf1639ba46 > Author: Wilco Dijkstra <wdijk...@arm.com> > Date: Mon Oct 14 12:21:14 2019 +0000 > > [ARM] Switch to default sched pressure algorithm > > Currently the Arm backend selects the alternative sched pressure algorithm. > The issue is that this doesn't take register pressure into account, and so > it causes significant additional spilling on Arm where there are only 14 > allocatable registers. Building SPEC2006 showed significant codesize gains > with the default pressure algorithm, so switch back to that. PR77308 shows > ~800 fewer instructions. > > SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode > patches. Overall SPEC codesize is 1.1% smaller. > > gcc/ > * config/arm/arm.c (arm_option_override): Don't override sched > pressure algorithm. > > From-SVN: r276960 > --- > gcc/ChangeLog | 5 +++++ > gcc/config/arm/arm.c | 5 ----- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index c2cbd4274ca..f07a0e61e6b 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,8 @@ > +2019-10-14 Wilco Dijkstra <wdijk...@arm.com> > + > + * config/arm/arm.c (arm_option_override): Don't override sched > + pressure algorithm. > + > 2019-10-14 Richard Biener <rguent...@suse.de> > > PR tree-optimization/92069 > diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c > index 39e1a1ef9a2..394b1dd1902 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -3555,11 +3555,6 @@ arm_option_override (void) > global_options.x_param_values, > global_options_set.x_param_values); > > - /* Use the alternative scheduling-pressure algorithm by default. */ > - maybe_set_param_value (PARAM_SCHED_PRESSURE_ALGORITHM, > SCHED_PRESSURE_MODEL, > - global_options.x_param_values, > - global_options_set.x_param_values); > - > /* Look through ready list and all of queue for instructions > relevant for L2 auto-prefetcher. */ > int param_sched_autopref_queue_depth; > </cut> _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain