[FMV] Add support-level table and remove __ARM_ACLE_VERSION - #441
[FMV] Add support-level table and remove __ARM_ACLE_VERSION#441CarolineConcatto wants to merge 1 commit into
Conversation
7ef1436 to
cca2b87
Compare
cca2b87 to
09869aa
Compare
09869aa to
2cf5376
Compare
|
This looks good to me from the GCC side, I will go through and make sure we comply with this when this lands |
Remove __ARM_ACLE_VERSION, change __ARM_ACLE to represent when the header is available, and update __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL so that it refers to a new Function Multi Versioning feature availability table. For backwards compatibility with previous features, the table lists the support level at which each current FMV target version name became available. It also defines how future FMV feature sets allocate new support levels.
2cf5376 to
8b0898e
Compare
|
Hello @DanielKristofKiss , |
| ``` | ||
| `__ARM_ACLE` is defined when the implementation supports the Arm C | ||
| Language Extensions. For compatibility with existing code, its | ||
| recommended value is 202420. |
There was a problem hiding this comment.
why not 202520? ( or whatever version was the last ACLE release before this change )
There was a problem hiding this comment.
That is a recommendation based on the latest implementation that is set in llvm:
Builder.defineMacro("__ARM_ACLE", Twine(ARM_ACLE_VERSION(2024, 2, 0)));
But if there is another compile with other version, I think the recommendation could be ignored.
|
@DanielKristofKiss are you ok with the PR or do you have some suggestions? |
| ``` c | ||
| #define __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL __ARM_ACLE_VERSION(2024, 3, 0) | ||
| ``` | ||
| `__FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL` is defined to a value corresponding to the |
There was a problem hiding this comment.
nit: "is defined as a value" is probably a bit more clear form.
| #define __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL __ARM_ACLE_VERSION(2024, 3, 0) | ||
| ``` | ||
| `__FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL` is defined to a value corresponding to the | ||
| support levels listed in [Function Multi Versioning feature availability](#function-multi-versioning-feature-availability). |
There was a problem hiding this comment.
nit: "support level" instead of support levels
| target version names from earlier support levels unless documented otherwise. | ||
|
|
||
|
|
||
| | **Name** | **Available from support level** | |
There was a problem hiding this comment.
maybe "Minimum support level" would be a better fit here?
| A Function Multi Versioning target version name is supported when | ||
| `__HAVE_FUNCTION_MULTI_VERSIONING` is defined to `1` and | ||
| `__FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL` is greater than or equal to | ||
| the support level listed for that name. A given support level includes all |
There was a problem hiding this comment.
nit: "Support for a given support level includes support for all target version names introduced at earlier support levels, unless otherwise specified."
| ``` | ||
| `__ARM_ACLE` is defined when the implementation supports the Arm C | ||
| Language Extensions. For compatibility with existing code, its | ||
| recommended value is 202420. |
There was a problem hiding this comment.
what about :
"An implementation that provides the Arm C Language Extensions defines __ARM_ACLE macro. For compatibility with existing code, the recommended value of this macro is 202420."
Remove __ARM_ACLE_VERSION, change __ARM_ACLE to represent when the header is available, and update __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL so that it refers to a new Function Multi Versioning feature availability table.
For backwards compatibility with previous features, the table lists the support level at which each current FMV target version name became available. It also defines how future FMV feature sets allocate new support levels.
name: Pull request
about: Technical issues, document format problems, bugs in scripts or feature proposal.
Thank you for submitting a pull request!
If this PR is about a bugfix:
Please use the bugfix label and make sure to go through the checklist below.
If this PR is about a proposal:
We are looking forward to evaluate your proposal, and if possible to
make it part of the Arm C Language Extension (ACLE) specifications.
We would like to encourage you reading through the contribution
guidelines, in particular the section on submitting
a proposal.
Please use the proposal label.
As for any pull request, please make sure to go through the below
checklist.
Checklist: (mark with
Xthose which apply)PR (do not bother creating the issue if all you want to do is
fixing the bug yourself).
SPDX-FileCopyrightTextlines on topof any file I have edited. Format is
SPDX-FileCopyrightText: Copyright {year} {entity or name} <{contact informations}>(Please update existing copyright lines if applicable. You can
specify year ranges with hyphen , as in
2017-2019, and usecommas to separate gaps, as in
2018-2020, 2022).Copyrightsection of the sources of thespecification I have edited (this will show up in the text
rendered in the PDF and other output format supported). The
format is the same described in the previous item.
tricky to set up on non-*nix machines). The sequence can be
found in the contribution
guidelines. Don't
worry if you cannot run these scripts on your machine, your
patch will be automatically checked in the Actions of the pull
request.
introduced in this PR in the section Changes for next
release of the section Change Control/Document history
of the document. Create Changes for next release if it does
not exist. Notice that changes that are not modifying the
content and rendering of the specifications (both HTML and PDF)
do not need to be listed.
correctness of the result in the PDF output (please refer to the
instructions on how to build the PDFs
locally).
draftversionis set totruein the YAML headerof the sources of the specifications I have modified.
in the README page of the project.