[all-commits] [llvm/llvm-project] 32b786: [clang][FMV][AArch64] Improve streaming mode compa...
Alexandros Lamprineas via All-commits
all-commits at lists.llvm.org
Thu Aug 1 00:12:08 PDT 2024
Branch: refs/heads/release/19.x
Home: https://github.com/llvm/llvm-project
Commit: 32b786c92f0ae52201888dcfba5c3ac789afbb3a
https://github.com/llvm/llvm-project/commit/32b786c92f0ae52201888dcfba5c3ac789afbb3a
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2024-08-01 (Thu, 01 Aug 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
A clang/test/CodeGen/aarch64-fmv-streaming.c
A clang/test/Sema/aarch64-fmv-streaming.c
M clang/test/Sema/aarch64-sme-func-attrs.c
Log Message:
-----------
[clang][FMV][AArch64] Improve streaming mode compatibility.
* Allow arm-streaming if all the functions versions adhere to it.
* Allow arm-streaming-compatible if all the functions versions adhere to it.
* Allow arm-locally-streaming regardless of the other functions versions.
When the caller needs to toggle the streaming mode all the function versions
of the callee must adhere to the same mode, otherwise the call will yield a
runtime error.
Imagine the versions of the callee live in separate TUs. The version that
is visible to the caller will determine the calling convention used when
generating code for the callsite. Therefore we cannot support mixing
streaming with non-streaming function versions. Imagine TU1 has a streaming
caller and calls foo._sme which is streaming-compatible. The codegen for
the callsite will not switch off the streaming mode. Then in TU2 we have
a version which is non-streaming and could potentially be called in
streaming mode. Similarly if the caller is non-streaming and the called
version is streaming-compatible the codegen for the callsite will not
switch on the streaming mode, but other versions may be streaming.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list