[clang] 2db2a4e - [doc][ReleaseNotes] Document AArch64 SVE ABI fix from D127209

Peter Waller via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 7 03:56:02 PDT 2022


Author: Peter Waller
Date: 2022-07-07T10:55:40Z
New Revision: 2db2a4e112406e97bad82b8e78492a472c13588e

URL: https://github.com/llvm/llvm-project/commit/2db2a4e112406e97bad82b8e78492a472c13588e
DIFF: https://github.com/llvm/llvm-project/commit/2db2a4e112406e97bad82b8e78492a472c13588e.diff

LOG: [doc][ReleaseNotes] Document AArch64 SVE ABI fix from D127209

D127209 fixed LLVM to bring it in line with the AAPCS. The fix affects
functions where the first SVE parameter appears in the 9th or later
arguments, and the function does not return an SVE type.

Differential Revision: https://reviews.llvm.org/D129135

Added: 
    

Modified: 
    clang/docs/ReleaseNotes.rst

Removed: 
    


################################################################################
diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 0f542e08b841c..93d4ed58d4de5 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -503,6 +503,14 @@ ABI Changes in Clang
   (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-p3 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.


        


More information about the cfe-commits mailing list