[clang] [llvm] [Reland] [PowerPC] frontend get target feature from backend with cpu name (PR #144594)
zhijian lin via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 17 13:15:08 PDT 2025
diggerlin wrote:
the EmitTargetFeature.cpp will generated following content, I used PPC target as example:
```
// Autogenerated by TargetFeatureEmitter.cpp
#ifdef GET_SUBTARGETFEATURES_ENUM
#undef GET_SUBTARGETFEATURES_ENUM
namespace llvm {
namespace PPC {
enum {
AIXOS = 0,
DeprecatedDST = 1,
Directive32 = 2,
Directive64 = 3,
Directive440 = 4,
...
FeatureWideImmFusion = 111,
FeatureZeroMoveFusion = 112,
NumSubtargetFeatures = 113
};
} // end namespace PPC
} // end namespace llvm
#endif // GET_SUBTARGETFEATURES_ENUM
#ifdef GET_SUBTARGETFEATURES_KV
#undef GET_SUBTARGETFEATURES_KV
namespace llvm {
// Sorted (by key) array of values for CPU features.
extern const llvm::BasicSubtargetFeatureKV BasicPPCFeatureKV[] = {
{ "64bit", PPC::Feature64Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
{ "64bitregs", PPC::Feature64BitRegs, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
{ "aix", PPC::AIXOS, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
...
};
// Sorted (by key) array of values for CPU subtype.
extern const llvm::BasicSubtargetSubTypeKV BasicPPCSubTypeKV[] = {
{ "440", { { { 0x80c0020000000010ULL, 0xa020ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
{ "450", { { { 0x80c0020000000010ULL, 0xa020ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } },
....
};
} // end namespace llvm
#endif // GET_SUBTARGETFEATURES_KV
```
https://github.com/llvm/llvm-project/pull/144594
More information about the llvm-commits
mailing list