[all-commits] [llvm/llvm-project] 6251ce: [AArch64][clang] Use tablegen rather than hard-cod...

Jonathan Thackray via All-commits all-commits at lists.llvm.org
Thu May 28 10:32:29 PDT 2026


  Branch: refs/heads/users/jthackray/refactor_tablegen_target
  Home:   https://github.com/llvm/llvm-project
  Commit: 6251ce1e069f2982a4b6b885c1b8e77d182854eb
      https://github.com/llvm/llvm-project/commit/6251ce1e069f2982a4b6b885c1b8e77d182854eb
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-05-28 (Thu, 28 May 2026)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    A clang/lib/Basic/Targets/AArch64TargetInfoFeatures.inc
    M clang/lib/Sema/SemaARM.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/Preprocessor/aarch64-target-features.c
    M clang/test/Sema/aarch64-sme-func-attrs-without-target-feature.cpp

  Log Message:
  -----------
  [AArch64][clang] Use tablegen rather than hard-coded feature dependencies

Refactor AArch64 frontend feature handling so extension relationships come
from the TargetParser extension graph instead of hand-written dependency
code in C++. This makes `llvm::AArch64::ExtensionSet` the source of
truth for dependency expansion while still keeping the short `Has...` names
used in the frontend code.

This removes a large amount of duplicated implication logic from
`handleTargetFeatures` and related feature queries. The frontend now
rebuilds its extension state from TableGen-derived data and then derives
its cached feature state from that, rather than maintaining parallel
dependency rules in C++.

I also preserved several pieces of historical frontend behaviour that are
not represented directly in the extension graph. Explicit disables such as
`no-sme` still win after implied-feature expansion, direct `+fullfp16` and
`+jscvt` still restore the expected NEON-facing state, and SME-family
features no longer incorrectly appear to enable AdvSIMD/NEON.

Finally, I added regression coverage for the direct-feature and explicit
disable cases uncovered during review, including raw `-target-feature`
combinations and target-attribute cases such as `no-sme`.


  Commit: 1075d490a3618304f11c37dd572ff38f7352261d
      https://github.com/llvm/llvm-project/commit/1075d490a3618304f11c37dd572ff38f7352261d
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-05-28 (Thu, 28 May 2026)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    R clang/lib/Basic/Targets/AArch64TargetInfoFeatures.inc
    M clang/test/Preprocessor/aarch64-target-features.c
    M clang/test/Sema/aarch64-sme-func-attrs-without-target-feature.cpp
    M llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp

  Log Message:
  -----------
  fixup! Don't checkin AArch64TargetInfoFeatures.inc but generate from tablegen


  Commit: eb6215a1f0b48dd2a740c45a6aa8e5c43d408b2e
      https://github.com/llvm/llvm-project/commit/eb6215a1f0b48dd2a740c45a6aa8e5c43d408b2e
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-05-28 (Thu, 28 May 2026)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Sema/SemaARM.cpp
    M llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp

  Log Message:
  -----------
  fixup! Address PR comments


Compare: https://github.com/llvm/llvm-project/compare/166c29e2ad3b...eb6215a1f0b4

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