[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