Hello,
Thank you for the feedback!
I discussed this patch offline with Richard E and in doing so realised I could
simplify this signifficanly checking the priority values mergeability in
diagnose_mismatched_decls instead of disjoint_version_decls. This makes more
sense for a lot of reasons.
Changes for V5:
- Addressed Wilco's feedback on priority version parsing.
- Addressed offline feedback from Richard E.
- Signifficantly cleaner patch.
Changes for V4:
- Addressed Wilco's feedback on logic in disjoint_version_decls.
- Pushed approved patches
Changes for V3:
- Addressed Wilco's feedback on logic in aarch64_parse_fmv_features.
- Fixed grammar in commit message.
Changes for 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 (2):
targethooks: Change SAME_FUNCTION_VERSIONS hook to support checking
mergeability
aarch64: Add support for fmv priority syntax.
gcc/config/aarch64/aarch64.cc | 149 ++++++++++++++----
gcc/config/riscv/riscv.cc | 2 +-
gcc/doc/tm.texi | 8 +-
gcc/hooks.cc | 2 +-
gcc/target.def | 18 ++-
.../gcc.target/aarch64/fmv_priority3.c | 26 +++
.../gcc.target/aarch64/fmv_priority_error1.c | 11 ++
.../gcc.target/aarch64/fmv_priority_error2.c | 8 +
gcc/tree.cc | 34 ++--
9 files changed, 207 insertions(+), 51 deletions(-)
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
--
2.34.1