[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