[TCWG CI] Regression caused by llvm:a26f1bf67ec70f72e64101cf483b26466928fc38

2021-09-12 Thread ci_notify
Identified regression caused by *llvm:a26f1bf67ec70f72e64101cf483b26466928fc38*:
commit a26f1bf67ec70f72e64101cf483b26466928fc38
Author: Roman Lebedev 

[PassManager] Run additional LICM before LoopRotate

Results regressed to (for first_bad == a26f1bf67ec70f72e64101cf483b26466928fc38)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=thumb --set 
gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=thumb --set 
gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -- -Os_mthumb 
artifacts/build-a26f1bf67ec70f72e64101cf483b26466928fc38/results_id:
1
# 447.dealII,[.] SparseMatrix::vmult. Ve regressed by 111

from (for last_good == bb1e5399e4586239d6424f5eea5a9f06c52ebe9b)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=thumb --set 
gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=thumb --set 
gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -- -Os_mthumb 
artifacts/build-bb1e5399e4586239d6424f5eea5a9f06c52ebe9b/results_id:
1

This commit has regressed these CI configurations:
 - tcwg_bmk_llvm_apm/llvm-release-arm-spec2k6-Os

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/artifact/artifacts/build-bb1e5399e4586239d6424f5eea5a9f06c52ebe9b/
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/artifact/artifacts/build-a26f1bf67ec70f72e64101cf483b26466928fc38/
Even more details: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/artifact/artifacts/

Reproduce builds:

mkdir investigate-llvm-a26f1bf67ec70f72e64101cf483b26466928fc38
cd investigate-llvm-a26f1bf67ec70f72e64101cf483b26466928fc38

# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts

# Fetch manifests and test.sh script
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_apm-llvm-release-arm-spec2k6-Os/6/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 /llvm/ ./ ./bisect/baseline/

cd llvm

# Reproduce first_bad build
git checkout --detach a26f1bf67ec70f72e64101cf483b26466928fc38
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach bb1e5399e4586239d6424f5eea5a9f06c52ebe9b
../artifacts/test.sh

cd ..


Full commit (up to 1000 lines):

commit a26f1bf67ec70f72e64101cf483b26466928fc38
Author: Roman Lebedev 
Date:   Fri Apr 2 10:40:12 2021 +0300

[PassManager] Run additional LICM before LoopRotate

Loop rotation often has to perform code duplication
from header into preheader, which introduces PHI nodes.

>>! In D99204, @thopre wrote:
>
> With loop peeling, it is important that unnecessary PHIs be avoided or
> it will leads to spurious peeling. One source of such PHIs is loop
> rotation which creates PHIs for invariant loads. Those PHIs are
> particularly problematic since loop peeling is now run as part of simple
> loop unrolling before GVN is run, and are thus a source of spurious
> peeling.
>
> Note that while some of the load can be hoisted and eventually
> eliminated by instruction combine, this is not always possible due to
> alignment issue. In particular, the motivating example [1] was a load
> inside a class instance which cannot be hoisted because the `this'
> pointer has an alignment of 1.
>
> [1] 
http://lists.llvm.org/pipermail/llvm-dev/attachments/20210312/4ce73c47/attachment.cpp

Now, we could enhance LoopRotate to avoid duplicating code when not needed,
but instead hoist loop-invariant code, but isn't that a code duplication? 
(*sic*)
We have LICM, and in fact we already run it right after LoopRotation.

We could try to move it to before LoopRotation,
that is basically free from compile-time perspective:

https://l

[TCWG CI] Regression caused by llvm:50f4ae58eb136bc9d802cb98f02b6ff237eb61e0

2021-09-12 Thread ci_notify
Identified regression caused by *llvm:50f4ae58eb136bc9d802cb98f02b6ff237eb61e0*:
commit 50f4ae58eb136bc9d802cb98f02b6ff237eb61e0
Author: David Green 

[AArch64] Correct store ReadAdrBase operand

Results regressed to (for first_bad == 50f4ae58eb136bc9d802cb98f02b6ff237eb61e0)
# 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
# build_llvm true:
-3
# true:
0
# benchmark -- -O2 
artifacts/build-50f4ae58eb136bc9d802cb98f02b6ff237eb61e0/results_id:
1
# 447.dealII,[.] _ZNK9MappingQ1ILi3EE12compute_fillERK12TriaIte regressed by 114

from (for last_good == 955c9437fd605216445fbd608de4ef1d96f825e9)
# 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
# build_llvm true:
-3
# true:
0
# benchmark -- -O2 
artifacts/build-955c9437fd605216445fbd608de4ef1d96f825e9/results_id:
1

This commit has regressed these CI configurations:
 - tcwg_bmk_llvm_tx1/llvm-master-aarch64-spec2k6-O2

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/artifact/artifacts/build-955c9437fd605216445fbd608de4ef1d96f825e9/
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/artifact/artifacts/build-50f4ae58eb136bc9d802cb98f02b6ff237eb61e0/
Even more details: 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/artifact/artifacts/

Reproduce builds:

mkdir investigate-llvm-50f4ae58eb136bc9d802cb98f02b6ff237eb61e0
cd investigate-llvm-50f4ae58eb136bc9d802cb98f02b6ff237eb61e0

# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts

# Fetch manifests and test.sh script
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tx1-llvm-master-aarch64-spec2k6-O2/19/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 /llvm/ ./ ./bisect/baseline/

cd llvm

# Reproduce first_bad build
git checkout --detach 50f4ae58eb136bc9d802cb98f02b6ff237eb61e0
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 955c9437fd605216445fbd608de4ef1d96f825e9
../artifacts/test.sh

cd ..


Full commit (up to 1000 lines):

commit 50f4ae58eb136bc9d802cb98f02b6ff237eb61e0
Author: David Green 
Date:   Mon Aug 23 21:07:55 2021 +0100

[AArch64] Correct store ReadAdrBase operand

It appears that the Read operand for stores was being placed on the
first operand (the stored value) not the address base. This adds a
ReadST for the stored value operand, allowing the ReadAdrBase to
correctly act upon the address.

Differential Revision: https://reviews.llvm.org/D108287
---
 llvm/lib/Target/AArch64/AArch64InstrFormats.td |  20 +-
 llvm/lib/Target/AArch64/AArch64SchedA53.td |   1 +
 llvm/lib/Target/AArch64/AArch64SchedA55.td |   1 +
 llvm/lib/Target/AArch64/AArch64SchedA57.td |   1 +
 llvm/lib/Target/AArch64/AArch64SchedA64FX.td   |   1 +
 llvm/lib/Target/AArch64/AArch64SchedCyclone.td |   1 +
 llvm/lib/Target/AArch64/AArch64SchedExynosM3.td|   1 +
 llvm/lib/Target/AArch64/AArch64SchedExynosM4.td|   1 +
 llvm/lib/Target/AArch64/AArch64SchedExynosM5.td|   1 +
 llvm/lib/Target/AArch64/AArch64SchedFalkor.td  |   1 +
 llvm/lib/Target/AArch64/AArch64SchedKryo.td|   1 +
 llvm/lib/Target/AArch64/AArch64SchedTSV110.td  |   1 +
 llvm/lib/Target/AArch64/AArch64SchedThunderX.td|   1 +
 .../lib/Target/AArch64/AArch64SchedThunderX2T99.td |   1 +
 .../Target/AArch64/AArch64SchedThunderX3T110.td|   1 +
 llvm/lib/Target/AArch64/AArch64Schedule.td |   1 +
 .../llvm-mca/AArch64/Cortex/A55-store-readadv.s| 246 ++---
 17 files changed, 148 insertions(+), 133 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td 
b/llvm/lib/Target/AArch64/AArch64InstrFormats.td
index 10c6fcd5c

[TCWG CI] Regression caused by linux:30f349097897c115345beabeecc5e710b479ff1e

2021-09-12 Thread ci_notify
Identified regression caused by 
*linux:30f349097897c115345beabeecc5e710b479ff1e*:
commit 30f349097897c115345beabeecc5e710b479ff1e
Merge: 9c566611ac5c f76c87e8c337
Author: Linus Torvalds 

Merge tag 'pm-5.15-rc1-2' of 
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Results regressed to (for first_bad == 30f349097897c115345beabeecc5e710b479ff1e)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
21782
# First few build errors in logs:

from (for last_good == 9c566611ac5cc7b45af943632f7a9b1b6a642991)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
29893
# linux build successful:
all

This commit has regressed these CI configurations:
 - tcwg_kernel/gnu-release-arm-mainline-allmodconfig

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/build-9c566611ac5cc7b45af943632f7a9b1b6a642991/
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/build-30f349097897c115345beabeecc5e710b479ff1e/
Even more details: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/

Reproduce builds:

mkdir investigate-linux-30f349097897c115345beabeecc5e710b479ff1e
cd investigate-linux-30f349097897c115345beabeecc5e710b479ff1e

# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts

# Fetch manifests and test.sh script
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-mainline-allmodconfig/9/artifact/artifacts/test.sh
 --fail
chmod +x artifacts/test.sh

# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_kernel-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 /linux/ ./ ./bisect/baseline/

cd linux

# Reproduce first_bad build
git checkout --detach 30f349097897c115345beabeecc5e710b479ff1e
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 9c566611ac5cc7b45af943632f7a9b1b6a642991
../artifacts/test.sh

cd ..


Full commit (up to 1000 lines):

commit 30f349097897c115345beabeecc5e710b479ff1e
Merge: 9c566611ac5c f76c87e8c337
Author: Linus Torvalds 
Date:   Wed Sep 8 16:38:25 2021 -0700

Merge tag 'pm-5.15-rc1-2' of 
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull more power management updates from Rafael Wysocki:
 "These are mostly ARM cpufreq driver updates, including one new
  MediaTek driver that has just passed all of the reviews, with the
  addition of a revert of a recent intel_pstate commit, some core
  cpufreq changes and a DT-related update of the operating performance
  points (OPP) support code.

  Specifics:

   - Add new cpufreq driver for the MediaTek MT6779 platform called
 mediatek-hw along with corresponding DT bindings (Hector.Yuan).

   - Add DCVS interrupt support to the qcom-cpufreq-hw driver (Thara
 Gopinath).

   - Make the qcom-cpufreq-hw driver set the dvfs_possible_from_any_cpu
 policy flag (Taniya Das).

   - Blocklist more Qualcomm platforms in cpufreq-dt-platdev (Bjorn
 Andersson).

   - Make the vexpress cpufreq driver set the CPUFREQ_IS_COOLING_DEV
 flag (Viresh Kumar).

   - Add new cpufreq driver callback to allow drivers to register with
 the Energy Model in a consistent way and make several drivers use
 it (Viresh Kumar).

   - Change the remaining users of the .ready() cpufreq driver callback
 to move the code from it elsewhere and drop it from the cpufreq
 core (Viresh Kumar).

   - Revert recent intel_pstate change adding HWP guaranteed performance
 change notification support to it that led to problems, because the
 notification in question is triggered prematurely on some systems
 (Rafael Wysocki).

   - Convert the OPP DT bindings to DT schema and clean them up while at
 it (Rob Herring)"

* tag 'pm-5.15-rc1-2' of 
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
  Revert "cpufreq: intel_pstate: Process HWP Guaranteed change notification"
  cpufreq: mediatek-hw: Add support for

[TCWG CI] Regression caused by gcc:01b5038718056b024b370b74a874fbd92c5bbab3

2021-09-12 Thread ci_notify
Identified regression caused by *gcc:01b5038718056b024b370b74a874fbd92c5bbab3*:
commit 01b5038718056b024b370b74a874fbd92c5bbab3
Author: Aldy Hernandez 

Disable threading through latches until after loop optimizations.

Results regressed to (for first_bad == 01b5038718056b024b370b74a874fbd92c5bbab3)
# 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 -- -Os 
artifacts/build-01b5038718056b024b370b74a874fbd92c5bbab3/results_id:
1
# 459.GemsFDTD,GemsFDTD_base.defaultregressed by 102
# 464.h264ref,h264ref_base.default  regressed by 102

from (for last_good == fb88bf9931f17d137eb50c001e1c924aa1e34e83)
# 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 -- -Os 
artifacts/build-fb88bf9931f17d137eb50c001e1c924aa1e34e83/results_id:
1

This commit has regressed these CI configurations:
 - tcwg_bmk_gnu_apm/gnu-master-aarch64-spec2k6-Os

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_apm-gnu-master-aarch64-spec2k6-Os/1/artifact/artifacts/build-fb88bf9931f17d137eb50c001e1c924aa1e34e83/
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_apm-gnu-master-aarch64-spec2k6-Os/1/artifact/artifacts/build-01b5038718056b024b370b74a874fbd92c5bbab3/
Even more details: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_apm-gnu-master-aarch64-spec2k6-Os/1/artifact/artifacts/

Reproduce builds:

mkdir investigate-gcc-01b5038718056b024b370b74a874fbd92c5bbab3
cd investigate-gcc-01b5038718056b024b370b74a874fbd92c5bbab3

# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts

# Fetch manifests and test.sh script
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_apm-gnu-master-aarch64-spec2k6-Os/1/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_apm-gnu-master-aarch64-spec2k6-Os/1/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_apm-gnu-master-aarch64-spec2k6-Os/1/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 01b5038718056b024b370b74a874fbd92c5bbab3
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach fb88bf9931f17d137eb50c001e1c924aa1e34e83
../artifacts/test.sh

cd ..


Full commit (up to 1000 lines):

commit 01b5038718056b024b370b74a874fbd92c5bbab3
Author: Aldy Hernandez 
Date:   Thu Sep 9 20:30:28 2021 +0200

Disable threading through latches until after loop optimizations.

The motivation for this patch was enabling the use of global ranges in
the path solver, but this caused certain properties of loops being
destroyed which made subsequent loop optimizations to fail.
Consequently, this patch's mail goal is to disable jump threading
involving the latch until after loop optimizations have run.

As can be seen in the test adjustments, we mostly shift the threading
from the early threaders (ethread, thread[12] to the late threaders
thread[34]).  I have nuked some of the early notes in the testcases
that came as part of the jump threader rewrite.  They're mostly noise
now.

Note that we could probably relax some other restrictions in
profitable_path_p when loop optimizations have completed, but it would
require more testing, and I'm hesitant to touch more things than needed
at this point.  I have added a reminder to the function to keep this
in mind.

Finally, perhaps as a follow-up, we should apply the same restrictions to
the forward threader.  At some point I'd like to combine the cost models.

Tested on x86-64 Linux.

p.s. There is a thorough discussion involving the limitations of jump
threading involving loops here:

https://gcc.gnu.org/pipermail/gcc/2021-September/237247.html

gcc/ChangeLog:

* tree-pass.h (PROP_loop_opts_done): New.
* gimple-range-path.cc (path_range_que