[clang] [llvm] [AArch64][FMV] Add missing feature dependencies and detect at runtime. (PR #119231)

Alexandros Lamprineas via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 10 08:21:59 PST 2024


================
@@ -61,13 +61,13 @@ unsigned AArch64::getFMVPriority(ArrayRef<StringRef> Features) {
   return Priority + MaxFMVPriority * NumFeatures;
 }
 
-uint64_t AArch64::getCpuSupportsMask(ArrayRef<StringRef> FeatureStrs) {
-  uint64_t FeaturesMask = 0;
-  for (const StringRef &FeatureStr : FeatureStrs) {
-    if (auto Ext = parseFMVExtension(FeatureStr))
-      FeaturesMask |= (1ULL << Ext->Bit);
-  }
-  return FeaturesMask;
+uint64_t AArch64::getCpuSupportsMask(ArrayRef<StringRef> Features) {
+  ExtensionSet FeatureBits;
+  for (StringRef Feature : Features)
+    if (auto Ext = parseFMVExtension(Feature))
----------------
labrinea wrote:

When I autogenerated the FMV dependencies from tablegen (see #113281), made the the ID optional in case we have an FMVExtension class entry without a corresponding Extension class entry (those are in tablegen). In reality there's no such FMV feature, but it gives us flexibility in case things change in the future.

https://github.com/llvm/llvm-project/pull/119231


More information about the llvm-commits mailing list