[llvm] b1cd3cb - [MC] Replace getSymA()->getSymbol() with getAddSym. NFC
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 5 13:34:30 PDT 2025
Author: Fangrui Song
Date: 2025-04-05T13:34:24-07:00
New Revision: b1cd3cb3f42881a84ebc3da1dfae59637281d73c
URL: https://github.com/llvm/llvm-project/commit/b1cd3cb3f42881a84ebc3da1dfae59637281d73c
DIFF: https://github.com/llvm/llvm-project/commit/b1cd3cb3f42881a84ebc3da1dfae59637281d73c.diff
LOG: [MC] Replace getSymA()->getSymbol() with getAddSym. NFC
We will replace the MCSymbolRefExpr member in MCValue with MCSymbol.
This change reduces dependence on MCSymbolRefExpr.
Added:
Modified:
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/MC/MCAssembler.cpp
llvm/lib/MC/MCMachOStreamer.cpp
llvm/lib/MC/MCObjectStreamer.cpp
llvm/lib/MC/MCValue.cpp
llvm/lib/MC/MachObjectWriter.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 0deaf94502b11..d245cd75745d0 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -3883,12 +3883,11 @@ static void handleIndirectSymViaGOTPCRel(AsmPrinter &AP, const MCExpr **ME,
MCValue MV;
if (!(*ME)->evaluateAsRelocatable(MV, nullptr) || MV.isAbsolute())
return;
- const MCSymbolRefExpr *SymA = MV.getSymA();
- if (!SymA)
+ const MCSymbol *GOTEquivSym = MV.getAddSym();
+ if (!GOTEquivSym)
return;
// Check that GOT equivalent symbol is cached.
- const MCSymbol *GOTEquivSym = &SymA->getSymbol();
if (!AP.GlobalGOTEquivs.count(GOTEquivSym))
return;
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index 685fd1cbdea4d..5e3081251e40a 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -182,10 +182,9 @@ bool MCAssembler::evaluateFixup(const MCFixup &Fixup, const MCFragment *DF,
Value = Target.getConstant();
- if (const MCSymbolRefExpr *A = Target.getSymA()) {
- const MCSymbol &Sym = A->getSymbol();
- if (Sym.isDefined())
- Value += getSymbolOffset(Sym);
+ if (const MCSymbol *Add = Target.getAddSym()) {
+ if (Add->isDefined())
+ Value += getSymbolOffset(*Add);
}
if (const MCSymbol *Sub = Target.getSubSym())
if (Sub->isDefined())
@@ -289,9 +288,9 @@ uint64_t MCAssembler::computeFragmentSize(const MCFragment &F) const {
uint64_t FragmentOffset = getFragmentOffset(OF);
int64_t TargetLocation = Value.getConstant();
- if (const MCSymbolRefExpr *A = Value.getSymA()) {
+ if (const auto *SA = Value.getAddSym()) {
uint64_t Val;
- if (!getSymbolOffset(A->getSymbol(), Val)) {
+ if (!getSymbolOffset(*SA, Val)) {
getContext().reportError(OF.getLoc(), "expected absolute expression");
return 0;
}
diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index f246c0daafb9a..9b7152f561175 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/lib/MC/MCMachOStreamer.cpp
@@ -182,10 +182,9 @@ void MCMachOStreamer::emitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
MCValue Res;
if (Value->evaluateAsRelocatable(Res, nullptr)) {
- if (const MCSymbolRefExpr *SymAExpr = Res.getSymA()) {
- const MCSymbol &SymA = SymAExpr->getSymbol();
+ if (const auto *SymA = Res.getAddSym()) {
if (!Res.getSubSym() &&
- (SymA.getName().empty() || Res.getConstant() != 0))
+ (SymA->getName().empty() || Res.getConstant() != 0))
cast<MCSymbolMachO>(Symbol)->setAltEntry();
}
}
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 86232c1712dc5..e228418fea987 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -610,25 +610,25 @@ getOffsetAndDataFragment(const MCSymbol &Symbol, uint32_t &RelocOffset,
std::string(".reloc symbol offset is not "
"representable"));
- const MCSymbolRefExpr &SRE = cast<MCSymbolRefExpr>(*OffsetVal.getSymA());
- if (!SRE.getSymbol().isDefined())
+ const MCSymbol &SA = *OffsetVal.getAddSym();
+ if (!SA.isDefined())
return std::make_pair(false,
std::string("symbol used in the .reloc offset is "
"not defined"));
- if (SRE.getSymbol().isVariable())
+ if (SA.isVariable())
return std::make_pair(false,
std::string("symbol used in the .reloc offset is "
"variable"));
- MCFragment *Fragment = SRE.getSymbol().getFragment();
+ MCFragment *Fragment = SA.getFragment();
// FIXME Support symbols with no DF. For example:
// .reloc .data, ENUM_VALUE, <some expr>
if (!Fragment || Fragment->getKind() != MCFragment::FT_Data)
return std::make_pair(false,
std::string("symbol in offset has no data "
"fragment"));
- RelocOffset = SRE.getSymbol().getOffset() + OffsetVal.getConstant();
+ RelocOffset = SA.getOffset() + OffsetVal.getConstant();
DF = cast<MCDataFragment>(Fragment);
} else {
RelocOffset = Symbol.getOffset();
diff --git a/llvm/lib/MC/MCValue.cpp b/llvm/lib/MC/MCValue.cpp
index b7ac3f247ecf9..913fe83ab94eb 100644
--- a/llvm/lib/MC/MCValue.cpp
+++ b/llvm/lib/MC/MCValue.cpp
@@ -27,7 +27,7 @@ void MCValue::print(raw_ostream &OS) const {
if (getRefKind())
OS << ':' << getRefKind() << ':';
- OS << *getSymA();
+ SymA->print(OS, nullptr);
if (auto *B = getSubSym()) {
OS << " - ";
@@ -45,9 +45,7 @@ LLVM_DUMP_METHOD void MCValue::dump() const {
#endif
uint16_t MCValue::getAccessVariant() const {
- const MCSymbolRefExpr *A = getSymA();
- if (!A)
+ if (!SymA)
return 0;
-
- return A->getSpecifier();
+ return SymA->getSpecifier();
}
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index dc1d8e003b34f..9e6e3f5e28e54 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -109,7 +109,7 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
S.getName() + "'");
// Verify that any used symbols are defined.
- if (Target.getSymA() && Target.getAddSym()->isUndefined())
+ if (Target.getAddSym() && Target.getAddSym()->isUndefined())
report_fatal_error("unable to evaluate offset to undefined symbol '" +
Target.getAddSym()->getName() + "'");
if (Target.getSubSym() && Target.getSubSym()->isUndefined())
@@ -117,8 +117,8 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
Target.getSubSym()->getName() + "'");
uint64_t Address = Target.getConstant();
- if (Target.getSymA())
- Address += getSymbolAddress(Target.getSymA()->getSymbol(), Asm);
+ if (Target.getAddSym())
+ Address += getSymbolAddress(*Target.getAddSym(), Asm);
if (Target.getSubSym())
Address += getSymbolAddress(*Target.getSubSym(), Asm);
return Address;
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
index f22b208f8dffc..adeb7455ad616 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
@@ -456,7 +456,7 @@ bool LoongArchAsmBackend::handleAddSubRelocations(const MCAssembler &Asm,
"relocatable SymA-SymB cannot have relocation specifier");
std::pair<MCFixupKind, MCFixupKind> FK;
uint64_t FixedValueA, FixedValueB;
- const MCSymbol &SA = Target.getSymA()->getSymbol();
+ const MCSymbol &SA = *Target.getAddSym();
const MCSymbol &SB = *Target.getSubSym();
bool force = !SA.isInSection() || !SB.isInSection();
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index 15ada7fc608f0..8d9ae1e20006a 100644
--- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -2947,8 +2947,7 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCExpr *SymExpr,
bool IsLocalSym =
Res.getAddSym()->isInSection() || Res.getAddSym()->isTemporary() ||
(Res.getAddSym()->isELF() &&
- cast<MCSymbolELF>(Res.getSymA()->getSymbol()).getBinding() ==
- ELF::STB_LOCAL);
+ cast<MCSymbolELF>(Res.getAddSym())->getBinding() == ELF::STB_LOCAL);
// For O32, "$"-prefixed symbols are recognized as temporary while
// .L-prefixed symbols are not (PrivateGlobalPrefix is "$"). Recognize ".L"
// manually.
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index 65997840cbe8d..af827a42c48eb 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -744,7 +744,7 @@ bool X86AsmBackend::fixupNeedsRelaxationAdvanced(const MCAssembler &Asm,
if (Fixup.getKind() == FK_Data_1) {
MCValue Target;
if (Fixup.getValue()->evaluateAsRelocatable(Target, &Asm) &&
- Target.getSymA() && Target.getSymSpecifier() == X86MCExpr::VK_ABS8)
+ Target.getAddSym() && Target.getSymSpecifier() == X86MCExpr::VK_ABS8)
return false;
}
return true;
More information about the llvm-commits
mailing list