[llvm] fd511f1 - AArch64: Change getSpecifierName to take Specifier parameter

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 28 00:36:34 PDT 2025


Author: Fangrui Song
Date: 2025-08-28T00:36:28-07:00
New Revision: fd511f118fb7e882a59fa08ba1dc255129d71f5b

URL: https://github.com/llvm/llvm-project/commit/fd511f118fb7e882a59fa08ba1dc255129d71f5b
DIFF: https://github.com/llvm/llvm-project/commit/fd511f118fb7e882a59fa08ba1dc255129d71f5b.diff

LOG: AArch64: Change getSpecifierName to take Specifier parameter

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
    llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
    llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
index d2ba100e5c6dc..2b5cf3484ffc1 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
@@ -53,9 +53,9 @@ const MCAsmInfo::AtSpecifier MachOAtSpecifiers[] = {
     {AArch64::S_MACHO_TLVPPAGEOFF, "TLVPPAGEOFF"},
 };
 
-StringRef AArch64::getSpecifierName(const MCSpecifierExpr &Expr) {
+StringRef AArch64::getSpecifierName(AArch64::Specifier S) {
   // clang-format off
-  switch (static_cast<uint32_t>(Expr.getSpecifier())) {
+  switch (static_cast<uint32_t>(S)) {
   case AArch64::S_CALL:                return "";
   case AArch64::S_LO12:                return ":lo12:";
   case AArch64::S_ABS_G3:              return ":abs_g3:";
@@ -183,7 +183,7 @@ void AArch64MCAsmInfoDarwin::printSpecifierExpr(
     raw_ostream &OS, const MCSpecifierExpr &Expr) const {
   if (auto *AE = dyn_cast<AArch64AuthMCExpr>(&Expr))
     return AE->print(OS, this);
-  OS << AArch64::getSpecifierName(Expr);
+  OS << AArch64::getSpecifierName(Expr.getSpecifier());
   printExpr(OS, *Expr.getSubExpr());
 }
 
@@ -232,7 +232,7 @@ void AArch64MCAsmInfoELF::printSpecifierExpr(
     raw_ostream &OS, const MCSpecifierExpr &Expr) const {
   if (auto *AE = dyn_cast<AArch64AuthMCExpr>(&Expr))
     return AE->print(OS, this);
-  OS << AArch64::getSpecifierName(Expr);
+  OS << AArch64::getSpecifierName(Expr.getSpecifier());
   printExpr(OS, *Expr.getSubExpr());
 }
 
@@ -262,7 +262,7 @@ AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
 
 void AArch64MCAsmInfoMicrosoftCOFF::printSpecifierExpr(
     raw_ostream &OS, const MCSpecifierExpr &Expr) const {
-  OS << AArch64::getSpecifierName(Expr);
+  OS << AArch64::getSpecifierName(Expr.getSpecifier());
   printExpr(OS, *Expr.getSubExpr());
 }
 
@@ -292,7 +292,7 @@ AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
 
 void AArch64MCAsmInfoGNUCOFF::printSpecifierExpr(
     raw_ostream &OS, const MCSpecifierExpr &Expr) const {
-  OS << AArch64::getSpecifierName(Expr);
+  OS << AArch64::getSpecifierName(Expr.getSpecifier());
   printExpr(OS, *Expr.getSubExpr());
 }
 

diff  --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
index c28e925d77e2b..0dfa61b1dc60e 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
@@ -181,7 +181,7 @@ enum {
 
 /// Return the string representation of the ELF relocation specifier
 /// (e.g. ":got:", ":lo12:").
-StringRef getSpecifierName(const MCSpecifierExpr &Expr);
+StringRef getSpecifierName(Specifier S);
 
 inline Specifier getSymbolLoc(Specifier S) {
   return static_cast<Specifier>(S & AArch64::S_SymLocBits);

diff  --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
index a53b676142a03..5fe999389ce79 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
@@ -73,9 +73,10 @@ unsigned AArch64WinCOFFObjectWriter::getRelocType(
       // Supported
       break;
     default:
-      Ctx.reportError(Fixup.getLoc(), "relocation specifier " +
-                                          AArch64::getSpecifierName(*A64E) +
-                                          " unsupported on COFF targets");
+      Ctx.reportError(Fixup.getLoc(),
+                      "relocation specifier " +
+                          AArch64::getSpecifierName(A64E->getSpecifier()) +
+                          " unsupported on COFF targets");
       return COFF::IMAGE_REL_ARM64_ABSOLUTE; // Dummy return value
     }
   }
@@ -83,9 +84,10 @@ unsigned AArch64WinCOFFObjectWriter::getRelocType(
   switch (FixupKind) {
   default: {
     if (auto *A64E = dyn_cast<MCSpecifierExpr>(Expr)) {
-      Ctx.reportError(Fixup.getLoc(), "relocation specifier " +
-                                          AArch64::getSpecifierName(*A64E) +
-                                          " unsupported on COFF targets");
+      Ctx.reportError(Fixup.getLoc(),
+                      "relocation specifier " +
+                          AArch64::getSpecifierName(A64E->getSpecifier()) +
+                          " unsupported on COFF targets");
     } else {
       MCFixupKindInfo Info = MAB.getFixupKindInfo(Fixup.getKind());
       Ctx.reportError(Fixup.getLoc(), Twine("relocation type ") + Info.Name +


        


More information about the llvm-commits mailing list