[llvm] df46140 - XtensaMCExpr: Migrate to MCSpecifierExpr

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 7 17:36:35 PDT 2025


Author: Fangrui Song
Date: 2025-06-07T17:36:30-07:00
New Revision: df46140bab7a63eacbb7f4648d2d30c116b022c8

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

LOG: XtensaMCExpr: Migrate to MCSpecifierExpr

Added: 
    

Modified: 
    llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp
    llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.h

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp
index 4c4035b32af3e..f7f92e1646c3f 100644
--- a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp
+++ b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.cpp
@@ -40,18 +40,6 @@ void XtensaMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
     OS << ')';
 }
 
-bool XtensaMCExpr::evaluateAsRelocatableImpl(MCValue &Res,
-                                             const MCAssembler *Asm) const {
-  if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
-    return false;
-  Res.setSpecifier(specifier);
-  return !Res.getSubSym();
-}
-
-void XtensaMCExpr::visitUsedExpr(MCStreamer &Streamer) const {
-  Streamer.visitUsedExpr(*getSubExpr());
-}
-
 XtensaMCExpr::Specifier XtensaMCExpr::parseSpecifier(StringRef name) {
   return StringSwitch<XtensaMCExpr::Specifier>(name).Default(VK_None);
 }

diff  --git a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.h b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.h
index 32354fef3edee..54b5ad30516bd 100644
--- a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.h
+++ b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCExpr.h
@@ -20,32 +20,20 @@
 namespace llvm {
 
 class StringRef;
-class XtensaMCExpr : public MCTargetExpr {
+class XtensaMCExpr : public MCSpecifierExpr {
 public:
-  enum Specifier { VK_None, VK_TPOFF };
+  using Specifier = uint16_t;
+  enum { VK_None, VK_TPOFF };
 
 private:
-  const MCExpr *Expr;
-  const Specifier specifier;
-
   explicit XtensaMCExpr(const MCExpr *Expr, Specifier S)
-      : Expr(Expr), specifier(S) {}
+      : MCSpecifierExpr(Expr, S) {}
 
 public:
   static const XtensaMCExpr *create(const MCExpr *Expr, Specifier,
                                     MCContext &Ctx);
 
-  Specifier getSpecifier() const { return specifier; }
-
-  const MCExpr *getSubExpr() const { return Expr; }
-
   void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
-  bool evaluateAsRelocatableImpl(MCValue &Res,
-                                 const MCAssembler *Asm) const override;
-  void visitUsedExpr(MCStreamer &Streamer) const override;
-  MCFragment *findAssociatedFragment() const override {
-    return getSubExpr()->findAssociatedFragment();
-  }
 
   static Specifier parseSpecifier(StringRef name);
   static StringRef getSpecifierName(Specifier Kind);


        


More information about the llvm-commits mailing list