[gcc/gcc-TEST] #49 FMV refactor and ACLE compliance for C++ quoted printable with html alternative
Claudio Bantaloukas
claudio.bantaloukas@arm.com
Tue Jun 24 14:54:12 GMT 2025
Quoted printable version with html
Created on
2025-04-03 12:06:42+00:00
Latest update
2025-05-21 13:56:44+00:00
Author
<mailto:alfierichards@sourceware.org>alfie.richards
Changes
93 changed files, 2727 additions, 922 deletions
Head revision
alfie.richards/gcc-TEST ref fmv_cxx commit b47c31eaa3f42a720b635b4dc050959703ca82c5
Base revision
gcc/gcc-TEST ref master commit 97044a47de533f2a9b3fc864e5ea318e53979079 r16-648-gf99017c3125f44
Merge base
f99017c3125f4400cf6a098cf5b33d32fe3e6645
Requested Reviewers
rsandifo, rearnsha
Full diff<https://forge.sourceware.org/gcc/gcc-TEST/pulls/49.diff> Discussion<https://forge.sourceware.org/gcc/gcc-TEST/pulls/49>
Another update to this series.
This patch changes the version info structure to be sorted by priority. This allows easier reasoning for optimisations and prevents having to calculate the priority of functions repeatedly.
The other change is that the target_clones pass was split in two. This is because the target_clones pass now dispatches the target_versions and target_clones, and different versions may have arbitrarily idfferent bodies. Therefore, allowing passes like efvp before dispatching made some invalid optimisations. However, as Alice Carlotti (alice.carlotti@arm.com) pointed out offline, the target_clones pass was likely put in this position late as for target_clones it is valid, as all the versions have the same body. So I split it in two. In the early stage complicated cases where there are multiple decls are expanded and dispatched. In the later stages, the simple case of a lone target_clones decl is dispatched (as is always the case for TARGET_HAS_FMV_TARGET_ATTRIBUTE targets).
Regression tested and bootstrapped for aarch64-none-linux-gnu and x86_64-unknown-linux-gnu.
Cross compiled and checked FMV tests for riscv and powerpc.
Hoping for GCC16 stage 1 for this.
Change log
V4:
* Changed version_info structure to be sorted by priority
* Split the target_clones pass into early/late stages
* Split out fix for PR c++/119498
V3: https://gcc.gnu.org/pipermail/gcc-patches/2025-March/679488.html
* Added reject target_clones version logic and hook
* Added pretty print for string_slice
* Refactored merging and conflict logic in front end
* Improved diagnostics
V2: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/675960.html
* Changed recording of assembly name to be done in version into initialisation
* Changed behaviour for a lone default decl
V1: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/674973.htmlhttps://gcc.gnu.org/pipermail/gcc-patches/2025-February/674973.html
* Initial
Changed files:
* M: gcc/attribs.cc
* M: gcc/attribs.h
* M: gcc/c-family/c-attribs.cc
* M: gcc/c-family/c-format.cc
* M: gcc/c-family/c-format.h
* M: gcc/cgraph.cc
* M: gcc/cgraph.h
* M: gcc/cgraphclones.cc
* M: gcc/cgraphunit.cc
* M: gcc/config/aarch64/aarch64.cc
* M: gcc/config/aarch64/aarch64.opt
* M: gcc/config/i386/i386-features.cc
* M: gcc/config/riscv/riscv-protos.h
* M: gcc/config/riscv/riscv-target-attr.cc
* M: gcc/config/riscv/riscv.cc
* M: gcc/config/rs6000/rs6000.cc
* M: gcc/cp/call.cc
* M: gcc/cp/class.cc
* M: gcc/cp/cp-gimplify.cc
* M: gcc/cp/cp-tree.h
* M: gcc/cp/decl.cc
* M: gcc/cp/decl2.cc
* M: gcc/cp/typeck.cc
* M: gcc/doc/invoke.texi
* M: gcc/doc/tm.texi
* M: gcc/doc/tm.texi.in
* M: gcc/hooks.cc
* M: gcc/hooks.h
* M: gcc/ipa.cc
* M: gcc/multiple_target.cc
* M: gcc/passes.def
* M: gcc/pretty-print.cc
* M: gcc/target.def
* M: gcc/testsuite/g++.target/aarch64/mv-1.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc-error1.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc-error2.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc-error3.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C
* D: gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C
* D: gcc/testsuite/g++.target/aarch64/mv-error1.C
* D: gcc/testsuite/g++.target/aarch64/mv-error2.C
* D: gcc/testsuite/g++.target/aarch64/mv-error3.C
* D: gcc/testsuite/g++.target/aarch64/mv-error4.C
* D: gcc/testsuite/g++.target/aarch64/mv-error5.C
* D: gcc/testsuite/g++.target/aarch64/mv-error6.C
* D: gcc/testsuite/g++.target/aarch64/mv-error7.C
* D: gcc/testsuite/g++.target/aarch64/mv-error8.C
* M: gcc/testsuite/g++.target/aarch64/mv-pragma.C
* M: gcc/testsuite/g++.target/aarch64/mv-symbols1.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols10.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols11.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols12.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols13.C
* M: gcc/testsuite/g++.target/aarch64/mv-symbols2.C
* M: gcc/testsuite/g++.target/aarch64/mv-symbols3.C
* M: gcc/testsuite/g++.target/aarch64/mv-symbols4.C
* M: gcc/testsuite/g++.target/aarch64/mv-symbols5.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols6.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols7.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols8.C
* D: gcc/testsuite/g++.target/aarch64/mv-symbols9.C
* A: gcc/testsuite/g++.target/aarch64/mv-warning1.C
* D: gcc/testsuite/g++.target/aarch64/mvc-error1.C
* D: gcc/testsuite/g++.target/aarch64/mvc-error2.C
* M: gcc/testsuite/g++.target/aarch64/mvc-symbols1.C
* M: gcc/testsuite/g++.target/aarch64/mvc-symbols2.C
* M: gcc/testsuite/g++.target/aarch64/mvc-symbols3.C
* M: gcc/testsuite/g++.target/aarch64/mvc-symbols4.C
* M: gcc/testsuite/g++.target/aarch64/mvc-warning1.C
* D: gcc/testsuite/g++.target/i386/mv-symbols1.C
* D: gcc/testsuite/g++.target/i386/mv-symbols2.C
* D: gcc/testsuite/g++.target/i386/mv-symbols3.C
* D: gcc/testsuite/g++.target/i386/mv-symbols4.C
* D: gcc/testsuite/g++.target/i386/mv-symbols5.C
* D: gcc/testsuite/g++.target/i386/mvc-symbols1.C
* D: gcc/testsuite/g++.target/i386/mvc-symbols2.C
* D: gcc/testsuite/g++.target/i386/mvc-symbols3.C
* D: gcc/testsuite/g++.target/i386/mvc-symbols4.C
* D: gcc/testsuite/g++.target/powerpc/mvc-symbols1.C
* D: gcc/testsuite/g++.target/powerpc/mvc-symbols2.C
* D: gcc/testsuite/g++.target/powerpc/mvc-symbols3.C
* D: gcc/testsuite/g++.target/powerpc/mvc-symbols4.C
* M: gcc/testsuite/g++.target/riscv/mv-symbols2.C
* M: gcc/testsuite/g++.target/riscv/mv-symbols3.C
* M: gcc/testsuite/g++.target/riscv/mv-symbols4.C
* M: gcc/testsuite/g++.target/riscv/mv-symbols5.C
* M: gcc/testsuite/g++.target/riscv/mvc-symbols3.C
* M: gcc/tree.cc
* M: gcc/tree.h
* M: gcc/vec.cc
* M: gcc/vec.h
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/test-list/attachments/20250624/a91f2853/attachment-0001.htm>
More information about the Test-list
mailing list