[llvm] c0b4a8e - MCValue: Replace getRefKind with getSpecifier
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 6 00:12:49 PDT 2025
Author: Fangrui Song
Date: 2025-04-06T00:12:45-07:00
New Revision: c0b4a8edfe2349b912890951a49a32b6a27747af
URL: https://github.com/llvm/llvm-project/commit/c0b4a8edfe2349b912890951a49a32b6a27747af
DIFF: https://github.com/llvm/llvm-project/commit/c0b4a8edfe2349b912890951a49a32b6a27747af.diff
LOG: MCValue: Replace getRefKind with getSpecifier
Added:
Modified:
llvm/include/llvm/MC/MCValue.h
llvm/lib/MC/MCAssembler.cpp
llvm/lib/MC/MCExpr.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
llvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCValue.h b/llvm/include/llvm/MC/MCValue.h
index fd6da9955e3e2..abed825ac0c59 100644
--- a/llvm/include/llvm/MC/MCValue.h
+++ b/llvm/include/llvm/MC/MCValue.h
@@ -42,7 +42,6 @@ class MCValue {
friend class MCExpr;
MCValue() = default;
int64_t getConstant() const { return Cst; }
- uint32_t getRefKind() const { return Specifier; }
uint32_t getSpecifier() const { return Specifier; }
void setSpecifier(uint32_t S) { Specifier = S; }
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index bf78a84d8340f..934bdb40d530d 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -122,7 +122,7 @@ bool MCAssembler::isThumbFunc(const MCSymbol *Symbol) const {
if (!Expr->evaluateAsRelocatable(V, nullptr))
return false;
- if (V.getSubSym() || V.getRefKind() != MCSymbolRefExpr::VK_None)
+ if (V.getSubSym() || V.getSpecifier() != MCSymbolRefExpr::VK_None)
return false;
auto *Sym = V.getAddSym();
diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp
index c856ef5f97203..5293fa58c0381 100644
--- a/llvm/lib/MC/MCExpr.cpp
+++ b/llvm/lib/MC/MCExpr.cpp
@@ -291,7 +291,7 @@ bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm,
// Value with RefKind (e.g. %hi(0xdeadbeef) in MIPS) is not considered
// absolute (the value is unknown at parse time), even if it might be resolved
// by evaluateFixup.
- return IsRelocatable && Value.isAbsolute() && Value.getRefKind() == 0;
+ return IsRelocatable && Value.isAbsolute() && Value.getSpecifier() == 0;
}
/// Helper method for \see EvaluateSymbolAdd().
@@ -533,7 +533,7 @@ bool MCExpr::evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm,
// If the reference has a variant kind, we can only handle expressions
// which evaluate exactly to a single unadorned symbol. Attach the
// original VariantKind to SymA of the result.
- if (Res.getRefKind() != MCSymbolRefExpr::VK_None ||
+ if (Res.getSpecifier() != MCSymbolRefExpr::VK_None ||
!Res.getAddSym() || Res.getSubSym() || Res.getConstant())
return false;
Res.Specifier = Kind;
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
index 3335d9d6f009c..b43de2dba92a2 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
@@ -222,7 +222,7 @@ static uint64_t adjustFixupValue(const MCFixup &Fixup, const MCValue &Target,
return Value >> 4;
case AArch64::fixup_aarch64_movw: {
AArch64MCExpr::Specifier RefKind =
- static_cast<AArch64MCExpr::Specifier>(Target.getRefKind());
+ static_cast<AArch64MCExpr::Specifier>(Target.getSpecifier());
if (AArch64MCExpr::getSymbolLoc(RefKind) != AArch64MCExpr::VK_ABS &&
AArch64MCExpr::getSymbolLoc(RefKind) != AArch64MCExpr::VK_SABS) {
if (!RefKind) {
@@ -422,7 +422,7 @@ void AArch64AsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
bool IsResolved,
const MCSubtargetInfo *STI) const {
if (Fixup.getTargetKind() == FK_Data_8 && TheTriple.isOSBinFormatELF()) {
- auto RefKind = static_cast<AArch64MCExpr::Specifier>(Target.getRefKind());
+ auto RefKind = static_cast<AArch64MCExpr::Specifier>(Target.getSpecifier());
AArch64MCExpr::Specifier SymLoc = AArch64MCExpr::getSymbolLoc(RefKind);
if (SymLoc == AArch64AuthMCExpr::VK_AUTH ||
SymLoc == AArch64AuthMCExpr::VK_AUTHADDR) {
@@ -480,7 +480,7 @@ void AArch64AsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
// FIXME: getFixupKindInfo() and getFixupKindNumBytes() could be fixed to
// handle this more cleanly. This may affect the output of -show-mc-encoding.
AArch64MCExpr::Specifier RefKind =
- static_cast<AArch64MCExpr::Specifier>(Target.getRefKind());
+ static_cast<AArch64MCExpr::Specifier>(Target.getSpecifier());
if (AArch64MCExpr::getSymbolLoc(RefKind) == AArch64MCExpr::VK_SABS ||
(!RefKind && Fixup.getTargetKind() == AArch64::fixup_aarch64_movw)) {
// If the immediate is negative, generate MOVN else MOVZ.
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
index 37d233ac2446c..c0c0e791b0eb9 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
@@ -112,7 +112,7 @@ unsigned AArch64ELFObjectWriter::getRelocType(MCContext &Ctx,
if (Kind >= FirstLiteralRelocationKind)
return Kind - FirstLiteralRelocationKind;
AArch64MCExpr::Specifier RefKind =
- static_cast<AArch64MCExpr::Specifier>(Target.getRefKind());
+ static_cast<AArch64MCExpr::Specifier>(Target.getSpecifier());
AArch64MCExpr::Specifier SymLoc = AArch64MCExpr::getSymbolLoc(RefKind);
bool IsNC = AArch64MCExpr::isNotChecked(RefKind);
@@ -543,7 +543,7 @@ bool AArch64ELFObjectWriter::needsRelocateWithSymbol(const MCValue &Val,
if (Val.getAddSym() && cast<MCSymbolELF>(Val.getAddSym())->isMemtag())
return true;
- if ((Val.getRefKind() & AArch64MCExpr::VK_GOT) == AArch64MCExpr::VK_GOT)
+ if ((Val.getSpecifier() & AArch64MCExpr::VK_GOT) == AArch64MCExpr::VK_GOT)
return true;
return is_contained({AArch64MCExpr::VK_GOTPCREL, AArch64MCExpr::VK_PLT},
AArch64MCExpr::Specifier(Val.getSpecifier()));
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
index fc0989678d2c1..d2c7e7871ae82 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
@@ -391,8 +391,8 @@ void AArch64MachObjectWriter::recordRelocation(
Value = 0;
}
- if (Target.getRefKind() == AArch64MCExpr::VK_AUTH ||
- Target.getRefKind() == AArch64MCExpr::VK_AUTHADDR) {
+ if (Target.getSpecifier() == AArch64MCExpr::VK_AUTH ||
+ Target.getSpecifier() == AArch64MCExpr::VK_AUTHADDR) {
auto *Expr = cast<AArch64AuthMCExpr>(Fixup.getValue());
assert(Type == MachO::ARM64_RELOC_UNSIGNED);
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
index c7ece33777927..d424399ce6bc9 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYELFObjectWriter.cpp
@@ -44,7 +44,7 @@ unsigned CSKYELFObjectWriter::getRelocType(MCContext &Ctx,
unsigned Kind = Fixup.getTargetKind();
uint8_t Modifier = Target.getSpecifier();
- switch (Target.getRefKind()) {
+ switch (Target.getSpecifier()) {
case CSKYMCExpr::VK_TLSIE:
case CSKYMCExpr::VK_TLSLE:
case CSKYMCExpr::VK_TLSGD:
@@ -170,7 +170,7 @@ unsigned CSKYELFObjectWriter::getRelocType(MCContext &Ctx,
bool CSKYELFObjectWriter::needsRelocateWithSymbol(const MCValue &V,
const MCSymbol &,
unsigned Type) const {
- switch (V.getRefKind()) {
+ switch (V.getSpecifier()) {
case CSKYMCExpr::VK_PLT:
case CSKYMCExpr::VK_GOT:
return true;
diff --git a/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp b/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
index 4c6512d1284b8..fe83e8f600d8c 100644
--- a/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+++ b/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
@@ -707,7 +707,7 @@ bool LoongArchAsmParser::classifySymbolRef(const MCExpr *Expr,
MCValue Res;
if (Expr->evaluateAsRelocatable(Res, nullptr))
- return Res.getRefKind() == LoongArchMCExpr::VK_None;
+ return Res.getSpecifier() == LoongArchMCExpr::VK_None;
return false;
}
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
index e74c8af2a850c..b6a98b3ff9aeb 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
@@ -452,7 +452,7 @@ bool LoongArchAsmBackend::handleAddSubRelocations(const MCAssembler &Asm,
const MCFixup &Fixup,
const MCValue &Target,
uint64_t &FixedValue) const {
- assert(Target.getRefKind() == 0 &&
+ assert(Target.getSpecifier() == 0 &&
"relocatable SymA-SymB cannot have relocation specifier");
std::pair<MCFixupKind, MCFixupKind> FK;
uint64_t FixedValueA, FixedValueB;
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
index ca1eb665132e7..2e2a503d5304f 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
@@ -50,7 +50,7 @@ unsigned LoongArchELFObjectWriter::getRelocType(MCContext &Ctx,
const MCValue &Target,
const MCFixup &Fixup,
bool IsPCRel) const {
- switch (Target.getRefKind()) {
+ switch (Target.getSpecifier()) {
case LoongArchMCExpr::VK_TLS_LE_HI20:
case LoongArchMCExpr::VK_TLS_IE_PC_HI20:
case LoongArchMCExpr::VK_TLS_IE_HI20:
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
index c7801476a2b61..4af619e18eb47 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
@@ -162,7 +162,7 @@ unsigned MipsELFObjectWriter::getRelocType(MCContext &Ctx,
if (Kind >= FirstLiteralRelocationKind)
return Kind - FirstLiteralRelocationKind;
- switch (Target.getRefKind()) {
+ switch (Target.getSpecifier()) {
case MipsMCExpr::MEK_DTPREL:
case MipsMCExpr::MEK_DTPREL_HI:
case MipsMCExpr::MEK_DTPREL_LO:
diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
index d23ddb918e7f9..dba78fef0bad8 100644
--- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
@@ -2798,14 +2798,14 @@ bool RISCVAsmParser::classifySymbolRef(const MCExpr *Expr,
MCValue Res;
if (Expr->evaluateAsRelocatable(Res, nullptr))
- return Res.getRefKind() == RISCVMCExpr::VK_None;
+ return Res.getSpecifier() == RISCVMCExpr::VK_None;
return false;
}
bool RISCVAsmParser::isSymbolDiff(const MCExpr *Expr) {
MCValue Res;
if (Expr->evaluateAsRelocatable(Res, nullptr)) {
- return Res.getRefKind() == RISCVMCExpr::VK_None && Res.getAddSym() &&
+ return Res.getSpecifier() == RISCVMCExpr::VK_None && Res.getAddSym() &&
Res.getSubSym();
}
return false;
diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
index 652dd6586492d..6641116db9a19 100644
--- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
+++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
@@ -628,7 +628,7 @@ bool RISCVAsmBackend::handleAddSubRelocations(const MCAssembler &Asm,
const MCFixup &Fixup,
const MCValue &Target,
uint64_t &FixedValue) const {
- assert(Target.getRefKind() == 0 &&
+ assert(Target.getSpecifier() == 0 &&
"relocatable SymA-SymB cannot have relocation specifier");
uint64_t FixedValueA, FixedValueB;
unsigned TA = 0, TB = 0;
diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
index 1662b8068084c..5fdf8e23d1214 100644
--- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
+++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
@@ -56,7 +56,7 @@ unsigned RISCVELFObjectWriter::getRelocType(MCContext &Ctx,
if (Kind >= FirstLiteralRelocationKind)
return Kind - FirstLiteralRelocationKind;
- auto Spec = RISCVMCExpr::Specifier(Target.getRefKind());
+ auto Spec = RISCVMCExpr::Specifier(Target.getSpecifier());
switch (Spec) {
case RISCVMCExpr::VK_TPREL_HI:
case RISCVMCExpr::VK_TLS_GOT_HI:
diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
index 2cb7fa8233949..74ef4870a12d3 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
@@ -46,7 +46,7 @@ unsigned SparcELFObjectWriter::getRelocType(MCContext &Ctx,
if (Kind >= FirstLiteralRelocationKind)
return Kind - FirstLiteralRelocationKind;
- switch (Target.getRefKind()) {
+ switch (Target.getSpecifier()) {
case SparcMCExpr::VK_TLS_GD_HI22:
case SparcMCExpr::VK_TLS_GD_LO10:
case SparcMCExpr::VK_TLS_GD_ADD:
diff --git a/llvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp b/llvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp
index 727ed56aac26f..5d0d18d86d3f8 100644
--- a/llvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp
+++ b/llvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp
@@ -40,7 +40,7 @@ class VEELFObjectWriter : public MCELFObjectTargetWriter {
unsigned VEELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target,
const MCFixup &Fixup,
bool IsPCRel) const {
- switch (Target.getRefKind()) {
+ switch (Target.getSpecifier()) {
case VEMCExpr::VK_TLS_GD_HI32:
case VEMCExpr::VK_TLS_GD_LO32:
case VEMCExpr::VK_TPOFF_HI32:
More information about the llvm-commits
mailing list