[llvm] [AArch64][llvm] Generate asm parser extension map from TableGen (NFC) (PR #191045)
Jonathan Thackray via llvm-commits
llvm-commits at lists.llvm.org
Fri May 1 05:36:21 PDT 2026
================
@@ -150,6 +213,42 @@ static void emitARMTargetDef(const RecordKeeper &RK, raw_ostream &OS) {
<< "#endif // EMIT_EXTENSIONS\n"
<< "\n";
+ OS << "#ifdef EMIT_ASM_PARSER_EXTENSIONS\n"
+ << "static const struct Extension {\n"
+ << " const char *Name;\n"
+ << " const FeatureBitset Features;\n"
+ << " bool AllowInDirective;\n"
+ << "} ExtensionMap[] = {\n";
+ for (const Record *Rec : SortedExtensions) {
+ bool AllowInDirective = allowInAArch64AsmParserDirective(Rec);
+ auto EmitEntry = [&](StringRef Name) {
+ if (Name.empty())
+ return;
+ OS << " {\"" << Name << "\", {AArch64::" << Rec->getName();
+ for (StringRef Extra : getAArch64AsmParserExtraFeatures(Rec))
+ OS << ", AArch64::" << Extra;
+ OS << "}, " << (AllowInDirective ? "true" : "false") << "},\n";
+ };
+
+ StringRef PrimaryName = getAArch64AsmParserPrimaryName(Rec);
+ if (PrimaryName.empty())
+ PrimaryName = Rec->getValueAsString("UserVisibleName");
+ if (PrimaryName.empty())
+ PrimaryName = Rec->getValueAsString("Name");
+ EmitEntry(PrimaryName);
+
+ if (auto Name = Rec->getValueAsString("UserVisibleName");
----------------
jthackray wrote:
Sure, done.
https://github.com/llvm/llvm-project/pull/191045
More information about the llvm-commits
mailing list