[llvm] 30350af - MCSpecifierExpr: Remove unused virtual functions
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 20:58:15 PDT 2025
Author: Fangrui Song
Date: 2025-06-16T20:58:10-07:00
New Revision: 30350afd023c4e9583d5a8bbfd56af7c354923fa
URL: https://github.com/llvm/llvm-project/commit/30350afd023c4e9583d5a8bbfd56af7c354923fa
DIFF: https://github.com/llvm/llvm-project/commit/30350afd023c4e9583d5a8bbfd56af7c354923fa.diff
LOG: MCSpecifierExpr: Remove unused virtual functions
... now that all targets using MCSpecifierExpr have migrated to
XXXMCAsmInfo::printExpr/evaluateAsRelocatableImpl.
Added:
Modified:
llvm/include/llvm/MC/MCAsmInfo.h
llvm/include/llvm/MC/MCExpr.h
llvm/lib/MC/MCAsmInfo.cpp
llvm/lib/MC/MCExpr.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h
index a7bf1b965bf2d..93ce3cc444213 100644
--- a/llvm/include/llvm/MC/MCAsmInfo.h
+++ b/llvm/include/llvm/MC/MCAsmInfo.h
@@ -715,7 +715,10 @@ class LLVM_ABI MCAsmInfo {
std::optional<uint32_t> getSpecifierForName(StringRef Name) const;
void printExpr(raw_ostream &, const MCExpr &) const;
- virtual void printSpecifierExpr(raw_ostream &, const MCSpecifierExpr &) const;
+ virtual void printSpecifierExpr(raw_ostream &,
+ const MCSpecifierExpr &) const {
+ llvm_unreachable("Need to implement hook if target uses MCSpecifierExpr");
+ }
virtual bool evaluateAsRelocatableImpl(const MCSpecifierExpr &, MCValue &Res,
const MCAssembler *Asm) const;
};
diff --git a/llvm/include/llvm/MC/MCExpr.h b/llvm/include/llvm/MC/MCExpr.h
index cd57fafc50b56..4ec780d8ff94f 100644
--- a/llvm/include/llvm/MC/MCExpr.h
+++ b/llvm/include/llvm/MC/MCExpr.h
@@ -512,7 +512,6 @@ class LLVM_ABI MCSpecifierExpr : public MCExpr {
explicit MCSpecifierExpr(const MCExpr *Expr, Spec S, SMLoc Loc = SMLoc())
: MCExpr(Specifier, Loc), Expr(Expr), specifier(S) {}
- virtual ~MCSpecifierExpr() = default;
public:
LLVM_ABI static const MCSpecifierExpr *
@@ -523,12 +522,6 @@ class LLVM_ABI MCSpecifierExpr : public MCExpr {
Spec getSpecifier() const { return specifier; }
const MCExpr *getSubExpr() const { return Expr; }
- virtual void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
- llvm_unreachable("Replace MCExpr::print calls with MCAsmInfo::printExpr");
- }
- virtual bool evaluateAsRelocatableImpl(MCValue &Res,
- const MCAssembler *Asm) const;
-
static bool classof(const MCExpr *E) {
return E->getKind() == MCExpr::Specifier;
}
diff --git a/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp
index e8eaf4619df51..ba672d2fc2ec0 100644
--- a/llvm/lib/MC/MCAsmInfo.cpp
+++ b/llvm/lib/MC/MCAsmInfo.cpp
@@ -17,6 +17,7 @@
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCStreamer.h"
+#include "llvm/MC/MCValue.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
@@ -157,17 +158,12 @@ void MCAsmInfo::printExpr(raw_ostream &OS, const MCExpr &Expr) const {
Expr.print(OS, this);
}
-void MCAsmInfo::printSpecifierExpr(raw_ostream &OS,
- const MCSpecifierExpr &Expr) const {
- // TODO: Switch to unreachable after all targets that use MCSpecifierExpr
- // migrate to MCAsmInfo::printSpecifierExpr.
- Expr.printImpl(OS, this);
-}
-
-bool MCAsmInfo::evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr,
+bool MCAsmInfo::evaluateAsRelocatableImpl(const MCSpecifierExpr &E,
MCValue &Res,
const MCAssembler *Asm) const {
- // TODO: Remove after all targets that use MCSpecifierExpr migrate to
- // MCAsmInfo::evaluateAsRelocatableImpl.
- return Expr.evaluateAsRelocatableImpl(Res, Asm);
+ if (!E.getSubExpr()->evaluateAsRelocatable(Res, Asm))
+ return false;
+
+ Res.setSpecifier(E.getSpecifier());
+ return !Res.getSubSym();
}
diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp
index 89191294f3ed3..8919a2627cf6a 100644
--- a/llvm/lib/MC/MCExpr.cpp
+++ b/llvm/lib/MC/MCExpr.cpp
@@ -754,12 +754,3 @@ const MCSpecifierExpr *MCSpecifierExpr::create(const MCSymbol *Sym, Spec S,
MCContext &Ctx, SMLoc Loc) {
return new (Ctx) MCSpecifierExpr(MCSymbolRefExpr::create(Sym, Ctx), S, Loc);
}
-
-bool MCSpecifierExpr::evaluateAsRelocatableImpl(MCValue &Res,
- const MCAssembler *Asm) const {
- if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
- return false;
-
- Res.setSpecifier(specifier);
- return !Res.getSubSym();
-}
More information about the llvm-commits
mailing list