[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