diff options
author | Sander de Smalen <sander.desmalen@arm.com> | 2023-08-09 09:59:46 +0000 |
---|---|---|
committer | Sander de Smalen <sander.desmalen@arm.com> | 2023-08-09 12:31:02 +0000 |
commit | ecb7b9c5c589b693e8a7351461db5b520be0bc90 (patch) | |
tree | 6b2fd68206b762cd51be531a00ad9b60eb5285c7 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f559e73fad5bf6991411fa13a95ec6112745b8cf (diff) | |
download | llvm-ecb7b9c5c589b693e8a7351461db5b520be0bc90.zip llvm-ecb7b9c5c589b693e8a7351461db5b520be0bc90.tar.gz llvm-ecb7b9c5c589b693e8a7351461db5b520be0bc90.tar.bz2 |
[Clang][AArch64] Diagnostics for SME attributes when target doesn't have 'sme'
This patch adds error diagnostics to Clang when code uses the AArch64 SME
attributes without specifying 'sme' as available target attribute.
* Function definitions marked as '__arm_streaming', '__arm_locally_streaming',
'__arm_shared_za' or '__arm_new_za' will by definition use or require SME
instructions.
* Calls from non-streaming functions to streaming-functions require
the compiler to enable/disable streaming-SVE mode around the call-site.
In some cases we can accept the SME attributes without having 'sme' enabled:
* Function declaration can have the SME attributes.
* Definitions can be __arm_streaming_compatible since the generated
code should execute on processing elements without SME.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D157269
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions