From: Alfie Richards <[email protected]>

Hello,

V2 of this series after responding to Wilco's feedback.

This series adds support for the priority syntax in aarch64 version strings,
and adds some tests for aarch64 fmv feature strings.

Some of the aarch64 versions are commented out as missing. I am planning on
submitting another patch later adding these missing versions.

This series makes a small change to the same_function_version hook in order
to support priority syntax, and requires updating the callers to that function.

Changes since V2:

- Added tests for priority version errors.
- Changed disjoint_version_decls to have an explicit new_decl and old_decl
- Change a call to disjoint_version_decls in c frontend where they were the
  wrong way around.
- Simplified and corrected some of my parsing logic as Wilco suggested.
- Changed how the aarch64 version order test works as discussed with Wilco.
- Adds patch to add FMV support macro

Regr tested on aarch64-linux-gnu and x86-linux-gnu.
Ok for master?

Thanks.
Alfie

Alfie Richards (7):
  aarch64: Dump version ordering for FMV. (Approved)
  aarch64: Fix fmv priority ordering [PR target/122190] (Approved)
  aarch64: testsuite: Add test for supported FMV extensions.
  targhooks: Change SAME_FUNCTION_VERSIONS hook to support emitting
    diagnostic.
  aarch64: Remove unnecessary sort from dispatch_function_versions. (Approved)
  aarch64: Add support for fmv priority syntax.
  aarch64: Add __HAVE_FUNCTION_MULTI_VERSIONING macro.

 gcc/c/c-decl.cc                               |   2 +-
 gcc/config/aarch64/aarch64-c.cc               |   4 +
 gcc/config/aarch64/aarch64.cc                 | 190 ++++++++++++------
 gcc/doc/tm.texi                               |   6 +-
 gcc/target.def                                |  10 +-
 .../gcc.target/aarch64/fmv_priority.in        |  92 +++++++++
 .../gcc.target/aarch64/fmv_priority1.c        | 175 ++++++++++++++++
 .../gcc.target/aarch64/fmv_priority2.c        |  29 +++
 .../gcc.target/aarch64/fmv_priority3.c        |  26 +++
 .../gcc.target/aarch64/fmv_priority_error1.c  |  11 +
 .../gcc.target/aarch64/fmv_priority_error2.c  |   8 +
 gcc/testsuite/gcc.target/aarch64/pr122190.c   |  10 +
 gcc/tree.cc                                   |  97 +++++----
 13 files changed, 548 insertions(+), 112 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority.in
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority_error1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/fmv_priority_error2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/pr122190.c

-- 
2.34.1

Reply via email to