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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits