[llvm] beaa98b - AArch64MCExpr: Migrate to MCSpecifierExpr
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 7 21:54:00 PDT 2025
Author: Fangrui Song
Date: 2025-06-07T21:53:55-07:00
New Revision: beaa98bf80ea12b08051c48b14b53f18689e80a9
URL: https://github.com/llvm/llvm-project/commit/beaa98bf80ea12b08051c48b14b53f18689e80a9
DIFF: https://github.com/llvm/llvm-project/commit/beaa98bf80ea12b08051c48b14b53f18689e80a9.diff
LOG: AArch64MCExpr: Migrate to MCSpecifierExpr
Added:
Modified:
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
index 88ff61ecedb66..d934af91b9ff5 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
@@ -98,14 +98,6 @@ void AArch64MCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
Expr->print(OS, MAI);
}
-void AArch64MCExpr::visitUsedExpr(MCStreamer &Streamer) const {
- Streamer.visitUsedExpr(*getSubExpr());
-}
-
-MCFragment *AArch64MCExpr::findAssociatedFragment() const {
- llvm_unreachable("FIXME: what goes here?");
-}
-
bool AArch64MCExpr::evaluateAsRelocatableImpl(MCValue &Res,
const MCAssembler *Asm) const {
if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
@@ -136,11 +128,3 @@ void AArch64AuthMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
OS << ",addr";
OS << ')';
}
-
-void AArch64AuthMCExpr::visitUsedExpr(MCStreamer &Streamer) const {
- Streamer.visitUsedExpr(*getSubExpr());
-}
-
-MCFragment *AArch64AuthMCExpr::findAssociatedFragment() const {
- llvm_unreachable("FIXME: what goes here?");
-}
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
index 3f10c69869c27..9c383894c7f54 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
@@ -21,9 +21,10 @@
namespace llvm {
-class AArch64MCExpr : public MCTargetExpr {
+class AArch64MCExpr : public MCSpecifierExpr {
public:
- enum Specifier : uint16_t {
+ using Specifier = uint16_t;
+ enum {
// clang-format off
None = 0,
// Symbol locations specifying (roughly speaking) what calculation should be
@@ -139,32 +140,13 @@ class AArch64MCExpr : public MCTargetExpr {
// clang-format on
};
-private:
- const MCExpr *Expr;
- const Specifier specifier;
-
protected:
explicit AArch64MCExpr(const MCExpr *Expr, Specifier S)
- : Expr(Expr), specifier(S) {}
+ : MCSpecifierExpr(Expr, S) {}
public:
- /// @name Construction
- /// @{
-
static const AArch64MCExpr *create(const MCExpr *Expr, Specifier,
MCContext &Ctx);
-
- /// @}
- /// @name Accessors
- /// @{
-
- /// Get the kind of this expression.
- Specifier getSpecifier() const { return specifier; }
-
- /// Get the expression this modifier applies to.
- const MCExpr *getSubExpr() const { return Expr; }
-
- /// @}
/// @name VariantKind information extractors.
/// @{
@@ -185,16 +167,8 @@ class AArch64MCExpr : public MCTargetExpr {
StringRef getSpecifierName() const;
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
-
- void visitUsedExpr(MCStreamer &Streamer) const override;
-
- MCFragment *findAssociatedFragment() const override;
-
bool evaluateAsRelocatableImpl(MCValue &Res,
const MCAssembler *Asm) const override;
- static bool classof(const MCExpr *E) {
- return E->getKind() == MCExpr::Target;
- }
};
class AArch64AuthMCExpr final : public AArch64MCExpr {
@@ -217,10 +191,6 @@ class AArch64AuthMCExpr final : public AArch64MCExpr {
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
- void visitUsedExpr(MCStreamer &Streamer) const override;
-
- MCFragment *findAssociatedFragment() const override;
-
static bool classof(const MCExpr *E) {
return isa<AArch64MCExpr>(E) && classof(cast<AArch64MCExpr>(E));
}
More information about the llvm-commits
mailing list