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 6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Thu Oct 31 17:16:31 2019 +0000

    [AArch64] Fix build for non-default languages
    
    The SVE PCS support broke go, D and Ada because those languages don't
    call TARGET_INIT_BUILTINS.  We therefore ended up trying to get the
    TYPE_MAIN_VARIANT of a null __SVBool_t.
    
    We shouldn't really need to apply TYPE_MAIN_VARIANT there anyway,
    since the ABI-defined types are (and need to be) their own main
    variants.  This patch asserts for that instead.
    
    2019-10-31  Richard Sandiford  <richard.sandif...@arm.com>
    
    gcc/
            * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
            Assert that the type we store in abi_vector_types is its own
            main variant.
            (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
    
    From-SVN: r277680
</cut>

Results regressed to (for first_bad == 6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093)
# 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-6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093/results_id:
1
# 458.sjeng,[.] setup_attackers                                 regressed by 111
# 458.sjeng,[.] search                                          regressed by 215

from (for last_good == aaa80941e042d18dcd5add6e7bb28cb392767a39)
# 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-aaa80941e042d18dcd5add6e7bb28cb392767a39/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/20/artifact/artifacts/build-aaa80941e042d18dcd5add6e7bb28cb392767a39/
Results ID of last_good: 
tx1_64/tcwg_bmk_gnu_tx1/bisect-gnu-release-aarch64-spec2k6-O2/2854
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/20/artifact/artifacts/build-6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093/
Results ID of first_bad: 
tx1_64/tcwg_bmk_gnu_tx1/bisect-gnu-release-aarch64-spec2k6-O2/2851
Build top page/logs: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/20/

Configuration details:


Reproduce builds:
<cut>
mkdir investigate-gcc-6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093
cd investigate-gcc-6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093

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/20/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/20/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/20/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 6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach aaa80941e042d18dcd5add6e7bb28cb392767a39
../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/20/artifact/artifacts/
Build log: 
https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-release-aarch64-spec2k6-O2/20/consoleText

Full commit (up to 1000 lines):
<cut>
commit 6ff0cdebb1bc281ba2374f3ecdbe358c4fa74093
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Thu Oct 31 17:16:31 2019 +0000

    [AArch64] Fix build for non-default languages
    
    The SVE PCS support broke go, D and Ada because those languages don't
    call TARGET_INIT_BUILTINS.  We therefore ended up trying to get the
    TYPE_MAIN_VARIANT of a null __SVBool_t.
    
    We shouldn't really need to apply TYPE_MAIN_VARIANT there anyway,
    since the ABI-defined types are (and need to be) their own main
    variants.  This patch asserts for that instead.
    
    2019-10-31  Richard Sandiford  <richard.sandif...@arm.com>
    
    gcc/
            * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
            Assert that the type we store in abi_vector_types is its own
            main variant.
            (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
    
    From-SVN: r277680
---
 gcc/ChangeLog                              | 7 +++++++
 gcc/config/aarch64/aarch64-sve-builtins.cc | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66b7a142251..affa74cdd25 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-10-31  Richard Sandiford  <richard.sandif...@arm.com>
+
+       * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
+       Assert that the type we store in abi_vector_types is its own
+       main variant.
+       (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
+
 2019-10-31  Richard Earnshaw  <rearn...@arm.com>
 
        * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc 
b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 70d7b1a165d..424f64adfef 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -2993,6 +2993,7 @@ register_builtin_types ()
                                   BITS_PER_SVE_VECTOR));
        }
       vectype = build_distinct_type_copy (vectype);
+      gcc_assert (vectype == TYPE_MAIN_VARIANT (vectype));
       SET_TYPE_STRUCTURAL_EQUALITY (vectype);
       TYPE_ARTIFICIAL (vectype) = 1;
       abi_vector_types[i] = vectype;
@@ -3235,8 +3236,7 @@ bool
 svbool_type_p (const_tree type)
 {
   tree abi_type = abi_vector_types[VECTOR_TYPE_svbool_t];
-  return (type != error_mark_node
-         && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (abi_type));
+  return type != error_mark_node && TYPE_MAIN_VARIANT (type) == abi_type;
 }
 
 /* If TYPE is a built-in type defined by the SVE ABI, return the mangled name,
</cut>
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to