[ACTIVITY] report week ending 30 July
Progress: * UM-2 [QEMU upstream maintainership] + collected up/reviewed arm patches ready for rc1 + sent patch fixing a silly crash if the user tried to pass both a guest kernel and a firmware blob to the raspi3 machine + patchset fixing a lot of places in our docs where we used `foo` in rST markup but we meant ``foo`` + some docs patches converting old .txt files to .rst so we actually ship the docs to users + patchset doing a bit of cleanup on arch-init.c + patches implementing M-profile trap-on-division-by-zero + started to look at refactoring the M-profile systick timer to no longer rely on an ugly global variable to specify the frequency * QEMU-406 [QEMU support for MVE (M-profile Vector Extension; Helium)] + sent out MVE patchset for review which has full coverage of the instruction set and includes "enable MVE on Cortex-M55" + remaining TODO items: fault on unaligned accesses; report MVE registers via gdbstub; optimize codegen for the no-predication case -- PMM ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain
[CI-NOTIFY]: TCWG Bisect tcwg_gnu/gnu-master-aarch64-check_gcc - Build # 1 - Successful!
Successfully identified regression in *gcc* in CI configuration tcwg_gnu/gnu-master-aarch64-check_gcc. So far, this commit has regressed CI configurations: - tcwg_gnu/gnu-master-aarch64-check_gcc Culprit: commit 13586172d0b70c9d7ca464fc5a2a46a8532b06d7 Author: Martin Jambor Date: Tue Jul 27 10:02:38 2021 +0200 ipa: Adjust references to identify read-only globals this patch has been motivated by SPEC 2017's 544.nab_r in which there is a static variable which is never written to and so zero throughout the run-time of the benchmark. However, it is passed by reference to a function in which it is read and (after some multiplications) passed into __builtin_exp which in turn unnecessarily consumes almost 10% of the total benchmark run-time. The situation is illustrated by the added testcase remref-3.c. The patch adds a flag to ipa-prop descriptor of each parameter to mark such parameters. IPA-CP and inling then take the effort to remove IPA_REF_ADDR references in the caller and only add IPA_REF_LOAD reference to the clone/overall inlined function. This is sufficient for subsequent symbol table analysis code to identify the read-only variable as such and optimize the code. There are two changes from the RFC version posted to the list earlier. First, three missing calls to get_base_address were added (there was another one in an assert). Second, references are not stripped off the callers if the cloned function cannot change the signature. The second change reveals a real shortcoming stemming from the fact we cannot adjust function prototypes with fnspecs. But that is a more general problem. gcc/ChangeLog: 2021-07-20 Martin Jambor * cgraph.h (ipa_replace_map): New field force_load_ref. * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost, aded new flag load_dereferenced, adjusted comments. (ipa_get_param_dereferenced): New function. (ipa_set_param_dereferenced): Likewise. * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it. * ipa-cp.c: Include gimple.h. (ipcp_discover_new_direct_edges): Take into account dereferenced flag. (get_replacement_map): New parameter force_load_ref, set the appropriate flag in ipa_replace_map if set. (struct symbol_and_index_together): New type. (adjust_refs_in_act_callers): New function. (adjust_references_in_caller): Likewise. (create_specialized_node): When appropriate, call adjust_references_in_caller and force only load references. * ipa-prop.c (load_from_dereferenced_name): New function. (ipa_analyze_controlled_uses): Also detect loads from a dereference, harden testing of call statements. (ipa_write_node_info): Stream the dereferenced flag. (ipa_read_node_info): Likewise. (ipa_set_jf_constant): Also create refdesc when jump function references a variable. (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work also on references of variables and return a symtab_node. Adjust all callers. (propagate_controlled_uses): Also remove references to VAR_DECLs. gcc/testsuite/ChangeLog: 2021-06-29 Martin Jambor * gcc.dg/ipa/remref-3.c: New test. * gcc.dg/ipa/remref-4.c: Likewise. * gcc.dg/ipa/remref-5.c: Likewise. * gcc.dg/ipa/remref-6.c: Likewise. Results regressed to (for first_bad == 13586172d0b70c9d7ca464fc5a2a46a8532b06d7) # reset_artifacts: -10 # build_abe binutils: -2 # build_abe gcc: -1 # build_abe dejagnu: 0 # build_abe check_gcc -- --set runtestflags=g++.dg/dg.exp --set runtestflags=g++.dg/vect/vect.exp --set runtestflags=gcc.dg/ipa/ipa.exp: 1 # Getting actual results from build directory /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/libstdc++.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/gfortran.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/libitm.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/libgomp.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/libatomic.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build-13586172d0b70c9d7ca464fc5a2a46a8532b06d7/sumfiles/g++.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_3/artifacts/build
[CI-NOTIFY]: TCWG Bisect tcwg_gnu/gnu-master-arm-check_gcc - Build # 2 - Successful!
Successfully identified regression in *gcc* in CI configuration tcwg_gnu/gnu-master-arm-check_gcc. So far, this commit has regressed CI configurations: - tcwg_gnu/gnu-master-arm-check_gcc Culprit: commit 34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3 Author: Marek Polacek Date: Tue Jul 20 16:26:28 2021 -0400 include: Fix -Wundef warnings in ansidecl.h This quashes -Wundef warnings in ansidecl.h when compiled in C or C++. In C, __cpp_constexpr and __cplusplus aren't defined so we evaluate them to 0; conversely, __STDC_VERSION__ is not defined in C++. This has caused grief when -Wundef is used with -Werror. I've also tested -traditional-cpp. include/ChangeLog: * ansidecl.h: Check if __cplusplus is defined before checking the value of __cpp_constexpr and __cplusplus. Don't check __STDC_VERSION__ in C++. Results regressed to (for first_bad == 34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3) # reset_artifacts: -10 # build_abe binutils: -2 # build_abe gcc: -1 # build_abe dejagnu: 0 # build_abe check_gcc -- --set runtestflags=gcc.c-torture/execute/execute.exp: 1 # Getting actual results from build directory /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/libstdc++.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/gfortran.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/libitm.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/libgomp.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/libatomic.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/g++.sum # /home/tcwg-buildslave/workspace/tcwg_gnu_0/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/sumfiles/gcc.sum # Manifest: gcc-compare-results/contrib/testsuite-management/flaky/gnu-master-arm-check_gcc.xfail # Getting actual results from build directory base-artifacts/sumfiles # base-artifacts/sumfiles/libstdc++.sum # base-artifacts/sumfiles/gfortran.sum # base-artifacts/sumfiles/libitm.sum # base-artifacts/sumfiles/libgomp.sum # base-artifacts/sumfiles/libatomic.sum # base-artifacts/sumfiles/g++.sum # base-artifacts/sumfiles/gcc.sum # # # Unexpected results in this build (new failures) # === gcc tests === # # Running gcc.c-torture/execute/execute.exp ... # FAIL: gcc.c-torture/execute/20030117-1.c -Os execution test # FAIL: gcc.c-torture/execute/20031215-1.c -O1 execution test # # === Results Summary === from (for last_good == ead235f60139edc6eb408d8d083cbb15e417b447) # reset_artifacts: -10 # build_abe binutils: -2 # build_abe gcc: -1 # build_abe dejagnu: 0 # build_abe check_gcc -- --set runtestflags=gcc.c-torture/execute/execute.exp: 1 Artifacts of last_good build: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_gcc/2/artifact/artifacts/build-ead235f60139edc6eb408d8d083cbb15e417b447/ Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_gcc/2/artifact/artifacts/build-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3/ Build top page/logs: https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_gcc/2/ Configuration details: Reproduce builds: mkdir investigate-gcc-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3 cd investigate-gcc-34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3 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_gcc-bisect-gnu-master-arm-check_gcc/2/artifact/artifacts/manifests/build-baseline.sh --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_gcc/2/artifact/artifacts/manifests/build-parameters.sh --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_gcc-bisect-gnu-master-arm-check_gcc/2/artifact/artifacts/test.sh --fail chmod +x artifacts/test.sh # Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_gnu-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 34dbb5f346459a1b36cd0cfbfe1cf18cd099fdf3 ../artifacts/test.sh # Reproduce last_good build git checkout --detach ead235f60139edc6eb408d8d083cbb15e417b447 ../artif