[all-commits] [llvm/llvm-project] 09c033: [Clang][SveEmitter] Split up TargetGuard into SVE ...
Sander de Smalen via All-commits
all-commits at lists.llvm.org
Mon Jun 24 12:31:44 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 09c0337a581dfd8f39df131786cfc7f675adf483
https://github.com/llvm/llvm-project/commit/09c0337a581dfd8f39df131786cfc7f675adf483
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2024-06-24 (Mon, 24 Jun 2024)
Changed paths:
M clang/include/clang/Basic/arm_sme.td
M clang/include/clang/Basic/arm_sve.td
M clang/include/clang/Basic/arm_sve_sme_incl.td
M clang/test/Sema/aarch64-sve-intrinsics/acle_sve_bfloat.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_bfloat.cpp
M clang/utils/TableGen/SveEmitter.cpp
Log Message:
-----------
[Clang][SveEmitter] Split up TargetGuard into SVE and SME component. (#96482)
One reason to want to split this up is to simplify the code added in
#93802, where it checks the SME streaming-mode requirements for a
builtin by checking for the absence of SVE. If the target guards are
separate, we can generate a table and make the Sema code to verify the
runtime mode simpler.
Another reason is to avoid an issue with a check in SveEmitter.cpp where
it ensures that the 'VerifyRuntimeMode' is set correctly for functions
that have both SVE and SME target guards:
if (!Def->isFlagSet(VerifyRuntimeMode) &&
Def->getGuard().contains("sve") &&
Def->getGuard().contains("sme"))
llvm_unreachable("Missing VerifyRuntimeMode flag");
However, if we ever add a new feature with "sme" in the name, even
though it is unrelated to FEAT_SME, then this code no longer works.
Note that the arm_sve.td and arm_sme.td files could do with a bit of
restructuring after this but it seems better to follow that up in an NFC
patch.
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