This is an archive of the discontinued LLVM Phabricator instance.

[BPF] Make sure ALU32 feature is set in MCSubtargetInfo for mcpu=v3
ClosedPublic

Authored by eddyz87 on Apr 11 2023, 12:32 PM.

Details

Summary

BPF.td is used to generate (among other things) MCSubtargetInfo
setup function for BPF target.
Specifically, the BPFGenSubtargetInfo.inc file:

enum {
  ALU32 = 0,
  ...
};
...
extern const llvm::SubtargetSubTypeKV BPFSubTypeKV[] = {
  { "generic", { { { 0x0ULL, ... } } }, ... },
  { "probe",   { { { 0x0ULL, ... } } }, ... },
  { "v1",      { { { 0x0ULL, ... } } }, ... },
  { "v2",      { { { 0x0ULL, ... } } }, ... },
  { "v3",      { { { 0x1ULL, ... } } }, ... },
};
...
static inline MCSubtargetInfo *createBPFMCSubtargetInfoImpl(...) {
  return new BPFGenMCSubtargetInfo(..., BPFSubTypeKV, ...);
}

The SubtargetSubTypeKV is defined in MCSubtargetInfo.h as:

/// Used to provide key value pairs for feature and CPU bit flags.
struct SubtargetSubTypeKV {
  const char *Key;                      ///< K-V key string
  FeatureBitArray Implies;              ///< K-V bit mask
  FeatureBitArray TuneImplies;          ///< K-V bit mask
  const MCSchedModel *SchedModel;
  ...
}

The first bit array specifies features enabled by default for a
specific CPU. This commit makes sure that this information is
communicated to tablegen and correct BPFSubTypeKV table is
generated. This allows tools like objdump to detect available
features when --mcpu flag is specified.

Diff Detail

Event Timeline

eddyz87 created this revision.Apr 11 2023, 12:32 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 11 2023, 12:32 PM
Herald added a subscriber: hiraditya. · View Herald Transcript
eddyz87 requested review of this revision.Apr 11 2023, 12:32 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 11 2023, 12:32 PM

Hi Yonghong,

could you please take a look?

yonghong-song accepted this revision.Apr 12 2023, 11:32 AM

LGTM. Thanks!

This revision is now accepted and ready to land.Apr 12 2023, 11:32 AM