[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