[llvm] f7b2c9a - Sparc: Modernize getSpecifierName. NFC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat May 3 20:46:19 PDT 2025


Author: Fangrui Song
Date: 2025-05-03T20:46:14-07:00
New Revision: f7b2c9a439dc4d5d847d7e8c0f36ab2eb5ea81e6

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

LOG: Sparc: Modernize getSpecifierName. NFC

Make the style similar to LoongArch/RISCV.

Remove comment "FIXME: use %got22/%got10, if system assembler supports them."
%got22/%got10 are not available in gas.

Added: 
    

Modified: 
    llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
    llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
    llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
index 7f84b5c1bb314..ce4f573e87288 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
@@ -30,62 +30,59 @@ const SparcMCExpr *SparcMCExpr::create(Specifier S, const MCExpr *Expr,
 }
 
 void SparcMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
-
-  bool closeParen = printSpecifier(OS, specifier);
-
-  const MCExpr *Expr = getSubExpr();
-  Expr->print(OS, MAI);
-
-  if (closeParen)
+  StringRef S = getSpecifierName(specifier);
+  if (!S.empty())
+    OS << '%' << S << '(';
+  getSubExpr()->print(OS, MAI);
+  if (!S.empty())
     OS << ')';
 }
 
-bool SparcMCExpr::printSpecifier(raw_ostream &OS, Specifier S) {
+StringRef SparcMCExpr::getSpecifierName(SparcMCExpr::Specifier S) {
   // clang-format off
   switch (S) {
-  case VK_None:          return false;
-  case VK_LO:            OS << "%lo(";  return true;
-  case VK_HI:            OS << "%hi(";  return true;
-  case VK_H44:           OS << "%h44("; return true;
-  case VK_M44:           OS << "%m44("; return true;
-  case VK_L44:           OS << "%l44("; return true;
-  case VK_HH:            OS << "%hh(";  return true;
-  case VK_HM:            OS << "%hm(";  return true;
-  case VK_LM:            OS << "%lm(";  return true;
+  case VK_None:          return {};
+  case VK_LO:            return "lo";
+  case VK_HI:            return "hi";
+  case VK_H44:           return "h44";
+  case VK_M44:           return "m44";
+  case VK_L44:           return "l44";
+  case VK_HH:            return "hh";
+  case VK_HM:            return "hm";
+  case VK_LM:            return "lm";
     // FIXME: use %pc22/%pc10, if system assembler supports them.
-  case VK_PC22:          OS << "%hi(";  return true;
-  case VK_PC10:          OS << "%lo(";  return true;
-    // FIXME: use %got22/%got10, if system assembler supports them.
-  case VK_GOT22:         OS << "%hi(";  return true;
-  case VK_GOT10:         OS << "%lo(";  return true;
-  case VK_GOT13:         return false;
-  case VK_13:            return false;
-  case VK_WDISP30:       return false;
-  case VK_WPLT30:        return false;
-  case VK_R_DISP32:      OS << "%r_disp32(";   return true;
-  case VK_TLS_GD_HI22:   OS << "%tgd_hi22(";   return true;
-  case VK_TLS_GD_LO10:   OS << "%tgd_lo10(";   return true;
-  case VK_TLS_GD_ADD:    OS << "%tgd_add(";    return true;
-  case VK_TLS_GD_CALL:   OS << "%tgd_call(";   return true;
-  case VK_TLS_LDM_HI22:  OS << "%tldm_hi22(";  return true;
-  case VK_TLS_LDM_LO10:  OS << "%tldm_lo10(";  return true;
-  case VK_TLS_LDM_ADD:   OS << "%tldm_add(";   return true;
-  case VK_TLS_LDM_CALL:  OS << "%tldm_call(";  return true;
-  case VK_TLS_LDO_HIX22: OS << "%tldo_hix22("; return true;
-  case VK_TLS_LDO_LOX10: OS << "%tldo_lox10("; return true;
-  case VK_TLS_LDO_ADD:   OS << "%tldo_add(";   return true;
-  case VK_TLS_IE_HI22:   OS << "%tie_hi22(";   return true;
-  case VK_TLS_IE_LO10:   OS << "%tie_lo10(";   return true;
-  case VK_TLS_IE_LD:     OS << "%tie_ld(";     return true;
-  case VK_TLS_IE_LDX:    OS << "%tie_ldx(";    return true;
-  case VK_TLS_IE_ADD:    OS << "%tie_add(";    return true;
-  case VK_TLS_LE_HIX22:  OS << "%tle_hix22(";  return true;
-  case VK_TLS_LE_LOX10:  OS << "%tle_lox10(";  return true;
-  case VK_HIX22:         OS << "%hix(";        return true;
-  case VK_LOX10:         OS << "%lox(";        return true;
-  case VK_GOTDATA_HIX22: OS << "%gdop_hix22("; return true;
-  case VK_GOTDATA_LOX10: OS << "%gdop_lox10("; return true;
-  case VK_GOTDATA_OP:    OS << "%gdop(";       return true;
+  case VK_PC22:          return "hi";
+  case VK_PC10:          return "lo";
+  case VK_GOT22:         return "hi";
+  case VK_GOT10:         return "lo";
+  case VK_GOT13:         return {};
+  case VK_13:            return {};
+  case VK_WDISP30:       return {};
+  case VK_WPLT30:        return {};
+  case VK_R_DISP32:      return "r_disp32";
+  case VK_TLS_GD_HI22:   return "tgd_hi22";
+  case VK_TLS_GD_LO10:   return "tgd_lo10";
+  case VK_TLS_GD_ADD:    return "tgd_add";
+  case VK_TLS_GD_CALL:   return "tgd_call";
+  case VK_TLS_LDM_HI22:  return "tldm_hi22";
+  case VK_TLS_LDM_LO10:  return "tldm_lo10";
+  case VK_TLS_LDM_ADD:   return "tldm_add";
+  case VK_TLS_LDM_CALL:  return "tldm_call";
+  case VK_TLS_LDO_HIX22: return "tldo_hix22";
+  case VK_TLS_LDO_LOX10: return "tldo_lox10";
+  case VK_TLS_LDO_ADD:   return "tldo_add";
+  case VK_TLS_IE_HI22:   return "tie_hi22";
+  case VK_TLS_IE_LO10:   return "tie_lo10";
+  case VK_TLS_IE_LD:     return "tie_ld";
+  case VK_TLS_IE_LDX:    return "tie_ldx";
+  case VK_TLS_IE_ADD:    return "tie_add";
+  case VK_TLS_LE_HIX22:  return "tle_hix22";
+  case VK_TLS_LE_LOX10:  return "tle_lox10";
+  case VK_HIX22:         return "hix";
+  case VK_LOX10:         return "lox";
+  case VK_GOTDATA_HIX22: return "gdop_hix22";
+  case VK_GOTDATA_LOX10: return "gdop_lox10";
+  case VK_GOTDATA_OP:    return "gdop";
   }
   // clang-format on
   llvm_unreachable("Unhandled SparcMCExpr::Specifier");

diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
index 107f6a4cb2e9e..7a561dfec250a 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
@@ -101,7 +101,7 @@ class SparcMCExpr : public MCTargetExpr {
   }
 
   static Specifier parseSpecifier(StringRef name);
-  static bool printSpecifier(raw_ostream &OS, Specifier Kind);
+  static StringRef getSpecifierName(Specifier S);
 };
 
 } // end namespace llvm.

diff  --git a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
index c3813c52ab00c..63bdb6bb2f4ac 100644
--- a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
+++ b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
@@ -307,8 +307,8 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
   const MachineOperand &MO = MI->getOperand (opNum);
   SparcMCExpr::Specifier TF = (SparcMCExpr::Specifier)MO.getTargetFlags();
 
-  bool CloseParen = SparcMCExpr::printSpecifier(O, TF);
-
+  StringRef Spec = SparcMCExpr::getSpecifierName(TF);
+  O << Spec;
   switch (MO.getType()) {
   case MachineOperand::MO_Register:
     O << "%" << StringRef(getRegisterName(MO.getReg())).lower();
@@ -339,7 +339,8 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
   default:
     llvm_unreachable("<unknown operand type>");
   }
-  if (CloseParen) O << ")";
+  if (!Spec.empty())
+    O << ")";
 }
 
 void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,


        


More information about the llvm-commits mailing list