[PATCH] D108151: [NFC][clang] Use X86 Features declaration from X86TargetParser
Andrei Elovikov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 16 11:59:01 PDT 2021
a.elovikov created this revision.
a.elovikov added reviewers: erichkeane, craig.topper.
Herald added a subscriber: pengfei.
a.elovikov requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
...instead of redeclaring them in clang's own X86Target.def. They were already
required to be in sync (IIUC), so no reason to maintain two identical lists.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108151
Files:
clang/include/clang/Basic/X86Target.def
clang/lib/Basic/Targets/X86.cpp
Index: clang/lib/Basic/Targets/X86.cpp
===================================================================
--- clang/lib/Basic/Targets/X86.cpp
+++ clang/lib/Basic/Targets/X86.cpp
@@ -1057,17 +1057,13 @@
static unsigned getFeaturePriority(llvm::X86::ProcessorFeatures Feat) {
enum class FeatPriority {
-#define FEATURE(FEAT) FEAT,
-#include "clang/Basic/X86Target.def"
+#define X86_FEATURE_COMPAT(ENUM, STR) ENUM,
+#include "llvm/Support/X86TargetParser.def"
+ MAX
};
- switch (Feat) {
-#define FEATURE(FEAT) \
- case llvm::X86::FEAT: \
- return static_cast<unsigned>(FeatPriority::FEAT);
-#include "clang/Basic/X86Target.def"
- default:
- llvm_unreachable("No Feature Priority for non-CPUSupports Features");
- }
+ assert(Feat < static_cast<unsigned>(FeatPriority::MAX) &&
+ "No Feature Priority for non-CPUSupports Features");
+ return static_cast<unsigned>(Feat);
}
unsigned X86TargetInfo::multiVersionSortPriority(StringRef Name) const {
Index: clang/include/clang/Basic/X86Target.def
===================================================================
--- clang/include/clang/Basic/X86Target.def
+++ clang/include/clang/Basic/X86Target.def
@@ -11,10 +11,6 @@
//
//===----------------------------------------------------------------------===//
-#ifndef FEATURE
-#define FEATURE(ENUM)
-#endif
-
#ifndef CPU_SPECIFIC
#define CPU_SPECIFIC(NAME, MANGLING, FEATURES)
#endif
@@ -23,50 +19,6 @@
#define CPU_SPECIFIC_ALIAS(NEW_NAME, NAME)
#endif
-// List of CPU Supports features in order. These need to remain in the order
-// required by attribute 'target' checking. Note that not all are supported/
-// prioritized by GCC, so synchronization with GCC's implementation may require
-// changing some existing values.
-FEATURE(FEATURE_CMOV)
-FEATURE(FEATURE_MMX)
-FEATURE(FEATURE_SSE)
-FEATURE(FEATURE_SSE2)
-FEATURE(FEATURE_SSE3)
-FEATURE(FEATURE_SSSE3)
-FEATURE(FEATURE_SSE4_A)
-FEATURE(FEATURE_SSE4_1)
-FEATURE(FEATURE_SSE4_2)
-FEATURE(FEATURE_POPCNT)
-FEATURE(FEATURE_AES)
-FEATURE(FEATURE_PCLMUL)
-FEATURE(FEATURE_AVX)
-FEATURE(FEATURE_BMI)
-FEATURE(FEATURE_FMA4)
-FEATURE(FEATURE_XOP)
-FEATURE(FEATURE_FMA)
-FEATURE(FEATURE_BMI2)
-FEATURE(FEATURE_AVX2)
-FEATURE(FEATURE_AVX512F)
-FEATURE(FEATURE_AVX512VL)
-FEATURE(FEATURE_AVX512BW)
-FEATURE(FEATURE_AVX512DQ)
-FEATURE(FEATURE_AVX512CD)
-FEATURE(FEATURE_AVX512ER)
-FEATURE(FEATURE_AVX512PF)
-FEATURE(FEATURE_AVX512VBMI)
-FEATURE(FEATURE_AVX512IFMA)
-FEATURE(FEATURE_AVX5124VNNIW)
-FEATURE(FEATURE_AVX5124FMAPS)
-FEATURE(FEATURE_AVX512VPOPCNTDQ)
-FEATURE(FEATURE_AVX512VBMI2)
-FEATURE(FEATURE_GFNI)
-FEATURE(FEATURE_VPCLMULQDQ)
-FEATURE(FEATURE_AVX512VNNI)
-FEATURE(FEATURE_AVX512BITALG)
-FEATURE(FEATURE_AVX512BF16)
-FEATURE(FEATURE_AVX512VP2INTERSECT)
-
-
// FIXME: When commented out features are supported in LLVM, enable them here.
CPU_SPECIFIC("generic", 'A', "")
CPU_SPECIFIC("pentium", 'B', "")
@@ -107,4 +59,3 @@
#undef CPU_SPECIFIC
#undef PROC_64_BIT
#undef PROC_32_BIT
-#undef FEATURE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D108151.366700.patch
Type: text/x-patch
Size: 3113 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210816/d6d30e29/attachment-0001.bin>
More information about the cfe-commits
mailing list