diff options
author | Fangrui Song <i@maskray.me> | 2025-03-20 22:06:15 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2025-03-20 22:06:16 -0700 |
commit | 13bb2f450ef9f64f393fe5527e5ac68362af8ccd (patch) | |
tree | 79d13aa3e705f104c93871e22ec7736a45e53f4f /llvm | |
parent | c2692afc0a92cd5da140dfcdfff7818a5b8ce997 (diff) | |
download | llvm-13bb2f450ef9f64f393fe5527e5ac68362af8ccd.zip llvm-13bb2f450ef9f64f393fe5527e5ac68362af8ccd.tar.gz llvm-13bb2f450ef9f64f393fe5527e5ac68362af8ccd.tar.bz2 |
[MC] Rename some VariantKind functions to use Specifier
Use the more appropriate term "relocation specifier" and avoid the
variable name `Kind`, which conflicts with MCExpr and FixupKind.
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/MC/MCAsmInfo.h | 8 | ||||
-rw-r--r-- | llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h | 5 | ||||
-rw-r--r-- | llvm/lib/MC/MCAsmInfo.cpp | 20 | ||||
-rw-r--r-- | llvm/lib/MC/MCExpr.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 36 | ||||
-rw-r--r-- | llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp | 2 |
10 files changed, 45 insertions, 53 deletions
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h index 7f03097..d7beebf 100644 --- a/llvm/include/llvm/MC/MCAsmInfo.h +++ b/llvm/include/llvm/MC/MCAsmInfo.h @@ -424,8 +424,8 @@ protected: // If true, use Motorola-style integers in Assembly (ex. $0ac). bool UseMotorolaIntegers = false; - llvm::DenseMap<uint32_t, StringRef> VariantKindToName; - llvm::StringMap<uint32_t> NameToVariantKind; + llvm::DenseMap<uint32_t, StringRef> SpecifierToName; + llvm::StringMap<uint32_t> NameToSpecifier; void initializeVariantKinds(ArrayRef<VariantKindDesc> Descs); public: @@ -708,8 +708,8 @@ public: bool shouldUseMotorolaIntegers() const { return UseMotorolaIntegers; } - StringRef getVariantKindName(uint32_t Kind) const; - std::optional<uint32_t> getVariantKindForName(StringRef Name) const; + StringRef getSpecifierName(uint32_t S) const; + std::optional<uint32_t> getSpecifierForName(StringRef Name) const; }; } // end namespace llvm diff --git a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h index 536c7a4..59cee18 100644 --- a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h +++ b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h @@ -505,9 +505,8 @@ public: // Return whether this parser accept star as start of statement virtual bool starIsStartOfStatement() { return false; }; - virtual const MCExpr *applyModifierToExpr(const MCExpr *E, - MCSymbolRefExpr::VariantKind, - MCContext &Ctx) { + virtual const MCExpr *applySpecifier(const MCExpr *E, uint32_t, + MCContext &Ctx) { return nullptr; } diff --git a/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp index 69374f6..49e8db2 100644 --- a/llvm/lib/MC/MCAsmInfo.cpp +++ b/llvm/lib/MC/MCAsmInfo.cpp @@ -126,28 +126,28 @@ bool MCAsmInfo::shouldOmitSectionDirective(StringRef SectionName) const { } void MCAsmInfo::initializeVariantKinds(ArrayRef<VariantKindDesc> Descs) { - assert(VariantKindToName.empty() && "cannot initialize twice"); + assert(SpecifierToName.empty() && "cannot initialize twice"); for (auto Desc : Descs) { [[maybe_unused]] auto It = - VariantKindToName.try_emplace(Desc.Kind, Desc.Name); + SpecifierToName.try_emplace(Desc.Kind, Desc.Name); assert(It.second && "duplicate Kind"); [[maybe_unused]] auto It2 = - NameToVariantKind.try_emplace(Desc.Name.lower(), Desc.Kind); + NameToSpecifier.try_emplace(Desc.Name.lower(), Desc.Kind); // Workaround for VK_PPC_L/VK_PPC_LO ("l"). assert(It2.second || Desc.Name == "l"); } } -StringRef MCAsmInfo::getVariantKindName(uint32_t Kind) const { - auto It = VariantKindToName.find(Kind); - assert(It != VariantKindToName.end() && - "ensure the VariantKind is set in initializeVariantKinds"); +StringRef MCAsmInfo::getSpecifierName(uint32_t S) const { + auto It = SpecifierToName.find(S); + assert(It != SpecifierToName.end() && + "ensure the specifier is set in initializeVariantKinds"); return It->second; } -std::optional<uint32_t> MCAsmInfo::getVariantKindForName(StringRef Name) const { - auto It = NameToVariantKind.find(Name.lower()); - if (It != NameToVariantKind.end()) +std::optional<uint32_t> MCAsmInfo::getSpecifierForName(StringRef Name) const { + auto It = NameToSpecifier.find(Name.lower()); + if (It != NameToSpecifier.end()) return It->second; return {}; } diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp index 4f27b60..db3d2c0 100644 --- a/llvm/lib/MC/MCExpr.cpp +++ b/llvm/lib/MC/MCExpr.cpp @@ -92,9 +92,9 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens) const { if (!MAI) // should only be used by dump() OS << "@<variant " << Kind << '>'; else if (MAI->useParensForSymbolVariant()) // ARM - OS << '(' << MAI->getVariantKindName(Kind) << ')'; + OS << '(' << MAI->getSpecifierName(Kind) << ')'; else - OS << '@' << MAI->getVariantKindName(Kind); + OS << '@' << MAI->getSpecifierName(Kind); } return; diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 9fb8978..c11c01e 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -680,8 +680,7 @@ private: bool parseEscapedString(std::string &Data) override; bool parseAngleBracketString(std::string &Data) override; - const MCExpr *applyModifierToExpr(const MCExpr *E, - MCSymbolRefExpr::VariantKind Variant); + const MCExpr *applySpecifier(const MCExpr *E, uint32_t Variant); // Macro-like directives MCAsmMacro *parseMacroLikeBody(SMLoc DirectiveLoc); @@ -1228,7 +1227,7 @@ bool AsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc, // Lookup the symbol variant if used. if (!Split.second.empty()) { - auto MaybeVariant = MAI.getVariantKindForName(Split.second); + auto MaybeVariant = MAI.getSpecifierForName(Split.second); if (MaybeVariant) { SymbolName = Split.first; Variant = MCSymbolRefExpr::VariantKind(*MaybeVariant); @@ -1277,18 +1276,18 @@ bool AsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc, StringRef IDVal = getTok().getString(); // Lookup the symbol variant if used. std::pair<StringRef, StringRef> Split = IDVal.split('@'); - MCSymbolRefExpr::VariantKind Variant = MCSymbolRefExpr::VK_None; + MCSymbolRefExpr::VariantKind Spec = MCSymbolRefExpr::VK_None; if (Split.first.size() != IDVal.size()) { - auto MaybeVariant = MAI.getVariantKindForName(Split.second); - if (!MaybeVariant) + auto MaybeSpec = MAI.getSpecifierForName(Split.second); + if (!MaybeSpec) return TokError("invalid variant '" + Split.second + "'"); IDVal = Split.first; - Variant = MCSymbolRefExpr::VariantKind(*MaybeVariant); + Spec = MCSymbolRefExpr::VariantKind(*MaybeSpec); } if (IDVal == "f" || IDVal == "b") { MCSymbol *Sym = Ctx.getDirectionalLocalSymbol(IntVal, IDVal == "b"); - Res = MCSymbolRefExpr::create(Sym, Variant, getContext()); + Res = MCSymbolRefExpr::create(Sym, Spec, getContext()); if (IDVal == "b" && Sym->isUndefined()) return Error(Loc, "directional label undefined"); DirLabels.push_back(std::make_tuple(Loc, CppHashInfo, Sym)); @@ -1353,11 +1352,9 @@ bool AsmParser::parseExpression(const MCExpr *&Res) { return parseExpression(Res, EndLoc); } -const MCExpr * -AsmParser::applyModifierToExpr(const MCExpr *E, - MCSymbolRefExpr::VariantKind Variant) { +const MCExpr *AsmParser::applySpecifier(const MCExpr *E, uint32_t Spec) { // Ask the target implementation about this expression first. - const MCExpr *NewE = getTargetParser().applyModifierToExpr(E, Variant, Ctx); + const MCExpr *NewE = getTargetParser().applySpecifier(E, Spec, Ctx); if (NewE) return NewE; // Recurse over the given expression, rebuilding it to apply the given variant @@ -1376,12 +1373,12 @@ AsmParser::applyModifierToExpr(const MCExpr *E, return E; } - return MCSymbolRefExpr::create(&SRE->getSymbol(), Variant, getContext()); + return MCSymbolRefExpr::create(&SRE->getSymbol(), Spec, getContext()); } case MCExpr::Unary: { const MCUnaryExpr *UE = cast<MCUnaryExpr>(E); - const MCExpr *Sub = applyModifierToExpr(UE->getSubExpr(), Variant); + const MCExpr *Sub = applySpecifier(UE->getSubExpr(), Spec); if (!Sub) return nullptr; return MCUnaryExpr::create(UE->getOpcode(), Sub, getContext()); @@ -1389,8 +1386,8 @@ AsmParser::applyModifierToExpr(const MCExpr *E, case MCExpr::Binary: { const MCBinaryExpr *BE = cast<MCBinaryExpr>(E); - const MCExpr *LHS = applyModifierToExpr(BE->getLHS(), Variant); - const MCExpr *RHS = applyModifierToExpr(BE->getRHS(), Variant); + const MCExpr *LHS = applySpecifier(BE->getLHS(), Spec); + const MCExpr *RHS = applySpecifier(BE->getRHS(), Spec); if (!LHS && !RHS) return nullptr; @@ -1470,12 +1467,11 @@ bool AsmParser::parseExpression(const MCExpr *&Res, SMLoc &EndLoc) { if (Lexer.isNot(AsmToken::Identifier)) return TokError("unexpected symbol modifier following '@'"); - auto Variant = MAI.getVariantKindForName(getTok().getIdentifier()); - if (!Variant) + auto Spec = MAI.getSpecifierForName(getTok().getIdentifier()); + if (!Spec) return TokError("invalid variant '" + getTok().getIdentifier() + "'"); - const MCExpr *ModifiedRes = - applyModifierToExpr(Res, MCSymbolRefExpr::VariantKind(*Variant)); + const MCExpr *ModifiedRes = applySpecifier(Res, *Spec); if (!ModifiedRes) { return TokError("invalid modifier '" + getTok().getIdentifier() + "' (no symbols present)"); diff --git a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp index 28abe1a..f4b67a6 100644 --- a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp +++ b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp @@ -155,9 +155,8 @@ public: unsigned validateTargetOperandClass(MCParsedAsmOperand &Op, unsigned Kind) override; - const MCExpr *applyModifierToExpr(const MCExpr *E, - MCSymbolRefExpr::VariantKind, - MCContext &Ctx) override; + const MCExpr *applySpecifier(const MCExpr *E, uint32_t, + MCContext &Ctx) override; }; /// PPCOperand - Instances of this class represent a parsed PowerPC machine @@ -1848,12 +1847,10 @@ unsigned PPCAsmParser::validateTargetOperandClass(MCParsedAsmOperand &AsmOp, return Match_InvalidOperand; } -const MCExpr * -PPCAsmParser::applyModifierToExpr(const MCExpr *E, - MCSymbolRefExpr::VariantKind Variant, - MCContext &Ctx) { +const MCExpr *PPCAsmParser::applySpecifier(const MCExpr *E, uint32_t Spec, + MCContext &Ctx) { if (isa<MCConstantExpr>(E)) { - switch (PPCMCExpr::Specifier(Variant)) { + switch (PPCMCExpr::Specifier(Spec)) { case PPCMCExpr::VK_LO: case PPCMCExpr::VK_HI: case PPCMCExpr::VK_HA: @@ -1869,5 +1866,5 @@ PPCAsmParser::applyModifierToExpr(const MCExpr *E, } } - return PPCMCExpr::create(PPCMCExpr::Specifier(Variant), E, Ctx); + return PPCMCExpr::create(PPCMCExpr::Specifier(Spec), E, Ctx); } diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp index 55b4276..ee4a700 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp @@ -581,13 +581,13 @@ void PPCInstPrinter::printTLSCall(const MCInst *MI, unsigned OpNo, // end like __tls_get_addr(x@tlsgd)@notoc. Instead we want it to look // like __tls_get_addr@notoc(x@tlsgd). if (getSpecifier(RefExp) == PPCMCExpr::VK_NOTOC) - O << '@' << MAI.getVariantKindName(RefExp->getKind()); + O << '@' << MAI.getSpecifierName(RefExp->getKind()); O << '('; printOperand(MI, OpNo + 1, STI, O); O << ')'; if (getSpecifier(RefExp) != PPCMCExpr::VK_None && getSpecifier(RefExp) != PPCMCExpr::VK_NOTOC) - O << '@' << MAI.getVariantKindName(RefExp->getKind()); + O << '@' << MAI.getSpecifierName(RefExp->getKind()); if (Rhs) { SmallString<0> Buf; raw_svector_ostream Tmp(Buf); diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp index 8b82bf1..1df9356 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp @@ -27,7 +27,7 @@ const PPCMCExpr *PPCMCExpr::create(Specifier S, const MCExpr *Expr, void PPCMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const { getSubExpr()->print(OS, MAI); - OS << '@' << MAI->getVariantKindName(specifier); + OS << '@' << MAI->getSpecifierName(specifier); } bool diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp index a51d656..03a0341 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp @@ -225,7 +225,7 @@ public: Kind == PPCMCExpr::VK_AIX_TLSIE || Kind == PPCMCExpr::VK_AIX_TLSLE || Kind == PPCMCExpr::VK_AIX_TLSLD || Kind == PPCMCExpr::VK_AIX_TLSML) OS << "\t.tc " << TCSym->getName() << "," << XSym->getName() << "@" - << getContext().getAsmInfo()->getVariantKindName(Kind) << '\n'; + << getContext().getAsmInfo()->getSpecifierName(Kind) << '\n'; else OS << "\t.tc " << TCSym->getName() << "," << XSym->getName() << '\n'; diff --git a/llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp b/llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp index 429e3a9..17d541b 100644 --- a/llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp +++ b/llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp @@ -35,7 +35,7 @@ void VEMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const { const MCExpr *Expr = getSubExpr(); Expr->print(OS, MAI); if (Kind != VK_None && Kind != VK_REFLONG) - OS << '@' << MAI->getVariantKindName(Kind); + OS << '@' << MAI->getSpecifierName(Kind); } VE::Fixups VEMCExpr::getFixupKind(VEMCExpr::Specifier S) { |