[llvm] f244b8e - [MC] Port initializeVariantKinds to a few targets
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 2 21:30:10 PST 2025
Author: Fangrui Song
Date: 2025-03-02T21:30:05-08:00
New Revision: f244b8eed37a12539fb11b76e19ec7a7eb41dccc
URL: https://github.com/llvm/llvm-project/commit/f244b8eed37a12539fb11b76e19ec7a7eb41dccc
DIFF: https://github.com/llvm/llvm-project/commit/f244b8eed37a12539fb11b76e19ec7a7eb41dccc.diff
LOG: [MC] Port initializeVariantKinds to a few targets
Added:
Modified:
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
index 62eac059371e0..9ff53631a995e 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
@@ -30,6 +30,21 @@ static cl::opt<AsmWriterVariantTy> AsmWriterVariant(
cl::values(clEnumValN(Generic, "generic", "Emit generic NEON assembly"),
clEnumValN(Apple, "apple", "Emit Apple-style NEON assembly")));
+const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
+ {MCSymbolRefExpr::VK_COFF_IMGREL32, "IMGREL"},
+ {MCSymbolRefExpr::VK_GOT, "GOT"},
+ {MCSymbolRefExpr::VK_GOTPAGE, "GOTPAGE"},
+ {MCSymbolRefExpr::VK_GOTPAGEOFF, "GOTPAGEOFF"},
+ {MCSymbolRefExpr::VK_GOTPCREL, "GOTPCREL"},
+ {MCSymbolRefExpr::VK_PAGE, "PAGE"},
+ {MCSymbolRefExpr::VK_PAGEOFF, "PAGEOFF"},
+ {MCSymbolRefExpr::VK_PLT, "PLT"},
+ {MCSymbolRefExpr::VK_TLVP, "TLVP"},
+ {MCSymbolRefExpr::VK_TLVPPAGE, "TLVPPAGE"},
+ {MCSymbolRefExpr::VK_TLVPPAGEOFF, "TLVPPAGEOFF"},
+ {MCSymbolRefExpr::VK_WEAKREF, "WEAKREF"},
+};
+
AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(bool IsILP32) {
// We prefer NEON instructions to be printed in the short, Apple-specific
// form when targeting Darwin.
@@ -48,6 +63,8 @@ AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(bool IsILP32) {
UseDataRegionDirectives = true;
ExceptionsType = ExceptionHandling::DwarfCFI;
+
+ initializeVariantKinds(variantKindDescs);
}
const MCExpr *AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(
@@ -97,6 +114,8 @@ AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
ExceptionsType = ExceptionHandling::DwarfCFI;
HasIdentDirective = true;
+
+ initializeVariantKinds(variantKindDescs);
}
AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
@@ -114,6 +133,8 @@ AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
CommentString = "//";
ExceptionsType = ExceptionHandling::WinEH;
WinEHEncodingType = WinEH::EncodingType::Itanium;
+
+ initializeVariantKinds(variantKindDescs);
}
AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
@@ -131,4 +152,6 @@ AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
CommentString = "//";
ExceptionsType = ExceptionHandling::WinEH;
WinEHEncodingType = WinEH::EncodingType::Itanium;
+
+ initializeVariantKinds(variantKindDescs);
}
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
index e8576d371bc65..a036000c0e6af 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
@@ -12,10 +12,21 @@
#include "CSKYMCAsmInfo.h"
#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCStreamer.h"
using namespace llvm;
+const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
+ {MCSymbolRefExpr::VK_GOT, "GOT"},
+ {MCSymbolRefExpr::VK_GOTOFF, "GOTOFF"},
+ {MCSymbolRefExpr::VK_PLT, "PLT"},
+ {MCSymbolRefExpr::VK_TLSGD, "TLSGD"},
+ {MCSymbolRefExpr::VK_TLSLD, "TLSLD"},
+ {MCSymbolRefExpr::VK_TLSLDM, "TLSLDM"},
+ {MCSymbolRefExpr::VK_TPOFF, "TPOFF"},
+};
+
void CSKYMCAsmInfo::anchor() {}
CSKYMCAsmInfo::CSKYMCAsmInfo(const Triple &TargetTriple) {
@@ -27,4 +38,6 @@ CSKYMCAsmInfo::CSKYMCAsmInfo(const Triple &TargetTriple) {
UsesELFSectionDirectiveForBSS = true;
ExceptionsType = ExceptionHandling::DwarfCFI;
+
+ initializeVariantKinds(variantKindDescs);
}
diff --git a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
index bf5d63c613f2f..53534a02111e8 100644
--- a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
+++ b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
@@ -13,10 +13,22 @@
#include "M68kMCAsmInfo.h"
+#include "llvm/MC/MCExpr.h"
#include "llvm/TargetParser/Triple.h"
using namespace llvm;
+const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
+ {MCSymbolRefExpr::VK_GOTOFF, "GOTOFF"},
+ {MCSymbolRefExpr::VK_GOTPCREL, "GOTPCREL"},
+ {MCSymbolRefExpr::VK_GOTTPOFF, "GOTTPOFF"},
+ {MCSymbolRefExpr::VK_PLT, "PLT"},
+ {MCSymbolRefExpr::VK_TLSGD, "TLSGD"},
+ {MCSymbolRefExpr::VK_TLSLD, "TLSLD"},
+ {MCSymbolRefExpr::VK_TLSLDM, "TLSLDM"},
+ {MCSymbolRefExpr::VK_TPOFF, "TPOFF"},
+};
+
void M68kELFMCAsmInfo::anchor() {}
M68kELFMCAsmInfo::M68kELFMCAsmInfo(const Triple &T) {
@@ -33,4 +45,6 @@ M68kELFMCAsmInfo::M68kELFMCAsmInfo(const Triple &T) {
UseMotorolaIntegers = true;
CommentString = ";";
+
+ initializeVariantKinds(variantKindDescs);
}
diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
index 7b927522d3954..5965dc610f8d5 100644
--- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
+++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
@@ -13,10 +13,16 @@
#include "RISCVMCAsmInfo.h"
#include "MCTargetDesc/RISCVMCExpr.h"
#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/TargetParser/Triple.h"
using namespace llvm;
+const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
+ {MCSymbolRefExpr::VK_GOTPCREL, "GOTPCREL"},
+ {MCSymbolRefExpr::VK_PLT, "PLT"},
+};
+
void RISCVMCAsmInfo::anchor() {}
RISCVMCAsmInfo::RISCVMCAsmInfo(const Triple &TT) {
@@ -27,6 +33,8 @@ RISCVMCAsmInfo::RISCVMCAsmInfo(const Triple &TT) {
ExceptionsType = ExceptionHandling::DwarfCFI;
Data16bitsDirective = "\t.half\t";
Data32bitsDirective = "\t.word\t";
+
+ initializeVariantKinds(variantKindDescs);
}
const MCExpr *RISCVMCAsmInfo::getExprForFDESymbol(const MCSymbol *Sym,
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
index 16e7d05b8fb73..ef2d043519a4d 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
@@ -8,9 +8,22 @@
#include "SystemZMCAsmInfo.h"
#include "llvm/MC/MCContext.h"
+#include "llvm/MC/MCExpr.h"
using namespace llvm;
+const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
+ {MCSymbolRefExpr::VK_DTPOFF, "DTPOFF"},
+ {MCSymbolRefExpr::VK_GOT, "GOT"},
+ {MCSymbolRefExpr::VK_GOTENT, "GOTENT"},
+ {MCSymbolRefExpr::VK_INDNTPOFF, "INDNTPOFF"},
+ {MCSymbolRefExpr::VK_NTPOFF, "NTPOFF"},
+ {MCSymbolRefExpr::VK_PLT, "PLT"},
+ {MCSymbolRefExpr::VK_TLSGD, "TLSGD"},
+ {MCSymbolRefExpr::VK_TLSLD, "TLSLD"},
+ {MCSymbolRefExpr::VK_TLSLDM, "TLSLDM"},
+};
+
SystemZMCAsmInfoELF::SystemZMCAsmInfoELF(const Triple &TT) {
AssemblerDialect = AD_GNU;
CalleeSaveStackSlotSize = 8;
@@ -22,6 +35,8 @@ SystemZMCAsmInfoELF::SystemZMCAsmInfoELF(const Triple &TT) {
SupportsDebugInformation = true;
UsesELFSectionDirectiveForBSS = true;
ZeroDirective = "\t.space\t";
+
+ initializeVariantKinds(variantKindDescs);
}
SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(const Triple &TT) {
More information about the llvm-commits
mailing list