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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to