peterwaller-arm updated this revision to Diff 442251. peterwaller-arm added a comment.
- Cite D127209 <https://reviews.llvm.org/D127209> in the release note per tschuett comment. - Be more specific about p0-p4, remove 'by analogy', per rsandifo-arm comment. - Clarify 9th argument or greater, per DavidSpicket comment. Thank you everyone for your inputs, hope this addresses everything so far, happy to receive further input. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D129135/new/ https://reviews.llvm.org/D129135 Files: clang/docs/ReleaseNotes.rst Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -499,6 +499,14 @@ (e.g. ``int : 0``) no longer prevents the structure from being considered a homogeneous floating-point or vector aggregate. The new behavior agrees with the AAPCS specification, and matches the similar bug fix in GCC 12.1. +- Targeting AArch64, since D127209 LLVM now only preserves the z8-z23 + and p4-p15 registers across a call if the registers z0-z7 or p0-p4 are + used to pass data into or out of a subroutine. The new behavior + matches the AAPCS. Previously LLVM preserved z8-z23 and p4-p15 across + a call if the callee had an SVE type anywhere in its signature. This + would cause an incorrect use of the caller-preserved z8-z23 and p4-p15 + ABI for example if the 9th argument or greater were the first SVE type + in the signature of a function. - All copy constructors can now be trivial if they are not user-provided, regardless of the type qualifiers of the argument of the defaulted constructor, fixing dr2171.
Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -499,6 +499,14 @@ (e.g. ``int : 0``) no longer prevents the structure from being considered a homogeneous floating-point or vector aggregate. The new behavior agrees with the AAPCS specification, and matches the similar bug fix in GCC 12.1. +- Targeting AArch64, since D127209 LLVM now only preserves the z8-z23 + and p4-p15 registers across a call if the registers z0-z7 or p0-p4 are + used to pass data into or out of a subroutine. The new behavior + matches the AAPCS. Previously LLVM preserved z8-z23 and p4-p15 across + a call if the callee had an SVE type anywhere in its signature. This + would cause an incorrect use of the caller-preserved z8-z23 and p4-p15 + ABI for example if the 9th argument or greater were the first SVE type + in the signature of a function. - All copy constructors can now be trivial if they are not user-provided, regardless of the type qualifiers of the argument of the defaulted constructor, fixing dr2171.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits