Skip to content

Commit b1cd3cb

Browse files
committed
[MC] Replace getSymA()->getSymbol() with getAddSym. NFC
We will replace the MCSymbolRefExpr member in MCValue with MCSymbol. This change reduces dependence on MCSymbolRefExpr.
1 parent 086af83 commit b1cd3cb

File tree

9 files changed

+23
-29
lines changed

9 files changed

+23
-29
lines changed

llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3883,12 +3883,11 @@ static void handleIndirectSymViaGOTPCRel(AsmPrinter &AP, const MCExpr **ME,
38833883
MCValue MV;
38843884
if (!(*ME)->evaluateAsRelocatable(MV, nullptr) || MV.isAbsolute())
38853885
return;
3886-
const MCSymbolRefExpr *SymA = MV.getSymA();
3887-
if (!SymA)
3886+
const MCSymbol *GOTEquivSym = MV.getAddSym();
3887+
if (!GOTEquivSym)
38883888
return;
38893889

38903890
// Check that GOT equivalent symbol is cached.
3891-
const MCSymbol *GOTEquivSym = &SymA->getSymbol();
38923891
if (!AP.GlobalGOTEquivs.count(GOTEquivSym))
38933892
return;
38943893

llvm/lib/MC/MCAssembler.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,9 @@ bool MCAssembler::evaluateFixup(const MCFixup &Fixup, const MCFragment *DF,
182182

183183
Value = Target.getConstant();
184184

185-
if (const MCSymbolRefExpr *A = Target.getSymA()) {
186-
const MCSymbol &Sym = A->getSymbol();
187-
if (Sym.isDefined())
188-
Value += getSymbolOffset(Sym);
185+
if (const MCSymbol *Add = Target.getAddSym()) {
186+
if (Add->isDefined())
187+
Value += getSymbolOffset(*Add);
189188
}
190189
if (const MCSymbol *Sub = Target.getSubSym())
191190
if (Sub->isDefined())
@@ -289,9 +288,9 @@ uint64_t MCAssembler::computeFragmentSize(const MCFragment &F) const {
289288

290289
uint64_t FragmentOffset = getFragmentOffset(OF);
291290
int64_t TargetLocation = Value.getConstant();
292-
if (const MCSymbolRefExpr *A = Value.getSymA()) {
291+
if (const auto *SA = Value.getAddSym()) {
293292
uint64_t Val;
294-
if (!getSymbolOffset(A->getSymbol(), Val)) {
293+
if (!getSymbolOffset(*SA, Val)) {
295294
getContext().reportError(OF.getLoc(), "expected absolute expression");
296295
return 0;
297296
}

llvm/lib/MC/MCMachOStreamer.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,9 @@ void MCMachOStreamer::emitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
182182
MCValue Res;
183183

184184
if (Value->evaluateAsRelocatable(Res, nullptr)) {
185-
if (const MCSymbolRefExpr *SymAExpr = Res.getSymA()) {
186-
const MCSymbol &SymA = SymAExpr->getSymbol();
185+
if (const auto *SymA = Res.getAddSym()) {
187186
if (!Res.getSubSym() &&
188-
(SymA.getName().empty() || Res.getConstant() != 0))
187+
(SymA->getName().empty() || Res.getConstant() != 0))
189188
cast<MCSymbolMachO>(Symbol)->setAltEntry();
190189
}
191190
}

llvm/lib/MC/MCObjectStreamer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -610,25 +610,25 @@ getOffsetAndDataFragment(const MCSymbol &Symbol, uint32_t &RelocOffset,
610610
std::string(".reloc symbol offset is not "
611611
"representable"));
612612

613-
const MCSymbolRefExpr &SRE = cast<MCSymbolRefExpr>(*OffsetVal.getSymA());
614-
if (!SRE.getSymbol().isDefined())
613+
const MCSymbol &SA = *OffsetVal.getAddSym();
614+
if (!SA.isDefined())
615615
return std::make_pair(false,
616616
std::string("symbol used in the .reloc offset is "
617617
"not defined"));
618618

619-
if (SRE.getSymbol().isVariable())
619+
if (SA.isVariable())
620620
return std::make_pair(false,
621621
std::string("symbol used in the .reloc offset is "
622622
"variable"));
623623

624-
MCFragment *Fragment = SRE.getSymbol().getFragment();
624+
MCFragment *Fragment = SA.getFragment();
625625
// FIXME Support symbols with no DF. For example:
626626
// .reloc .data, ENUM_VALUE, <some expr>
627627
if (!Fragment || Fragment->getKind() != MCFragment::FT_Data)
628628
return std::make_pair(false,
629629
std::string("symbol in offset has no data "
630630
"fragment"));
631-
RelocOffset = SRE.getSymbol().getOffset() + OffsetVal.getConstant();
631+
RelocOffset = SA.getOffset() + OffsetVal.getConstant();
632632
DF = cast<MCDataFragment>(Fragment);
633633
} else {
634634
RelocOffset = Symbol.getOffset();

llvm/lib/MC/MCValue.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ void MCValue::print(raw_ostream &OS) const {
2727
if (getRefKind())
2828
OS << ':' << getRefKind() << ':';
2929

30-
OS << *getSymA();
30+
SymA->print(OS, nullptr);
3131

3232
if (auto *B = getSubSym()) {
3333
OS << " - ";
@@ -45,9 +45,7 @@ LLVM_DUMP_METHOD void MCValue::dump() const {
4545
#endif
4646

4747
uint16_t MCValue::getAccessVariant() const {
48-
const MCSymbolRefExpr *A = getSymA();
49-
if (!A)
48+
if (!SymA)
5049
return 0;
51-
52-
return A->getSpecifier();
50+
return SymA->getSpecifier();
5351
}

llvm/lib/MC/MachObjectWriter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,16 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
109109
S.getName() + "'");
110110

111111
// Verify that any used symbols are defined.
112-
if (Target.getSymA() && Target.getAddSym()->isUndefined())
112+
if (Target.getAddSym() && Target.getAddSym()->isUndefined())
113113
report_fatal_error("unable to evaluate offset to undefined symbol '" +
114114
Target.getAddSym()->getName() + "'");
115115
if (Target.getSubSym() && Target.getSubSym()->isUndefined())
116116
report_fatal_error("unable to evaluate offset to undefined symbol '" +
117117
Target.getSubSym()->getName() + "'");
118118

119119
uint64_t Address = Target.getConstant();
120-
if (Target.getSymA())
121-
Address += getSymbolAddress(Target.getSymA()->getSymbol(), Asm);
120+
if (Target.getAddSym())
121+
Address += getSymbolAddress(*Target.getAddSym(), Asm);
122122
if (Target.getSubSym())
123123
Address += getSymbolAddress(*Target.getSubSym(), Asm);
124124
return Address;

llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ bool LoongArchAsmBackend::handleAddSubRelocations(const MCAssembler &Asm,
456456
"relocatable SymA-SymB cannot have relocation specifier");
457457
std::pair<MCFixupKind, MCFixupKind> FK;
458458
uint64_t FixedValueA, FixedValueB;
459-
const MCSymbol &SA = Target.getSymA()->getSymbol();
459+
const MCSymbol &SA = *Target.getAddSym();
460460
const MCSymbol &SB = *Target.getSubSym();
461461

462462
bool force = !SA.isInSection() || !SB.isInSection();

llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2947,8 +2947,7 @@ bool MipsAsmParser::loadAndAddSymbolAddress(const MCExpr *SymExpr,
29472947
bool IsLocalSym =
29482948
Res.getAddSym()->isInSection() || Res.getAddSym()->isTemporary() ||
29492949
(Res.getAddSym()->isELF() &&
2950-
cast<MCSymbolELF>(Res.getSymA()->getSymbol()).getBinding() ==
2951-
ELF::STB_LOCAL);
2950+
cast<MCSymbolELF>(Res.getAddSym())->getBinding() == ELF::STB_LOCAL);
29522951
// For O32, "$"-prefixed symbols are recognized as temporary while
29532952
// .L-prefixed symbols are not (PrivateGlobalPrefix is "$"). Recognize ".L"
29542953
// manually.

llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@ bool X86AsmBackend::fixupNeedsRelaxationAdvanced(const MCAssembler &Asm,
744744
if (Fixup.getKind() == FK_Data_1) {
745745
MCValue Target;
746746
if (Fixup.getValue()->evaluateAsRelocatable(Target, &Asm) &&
747-
Target.getSymA() && Target.getSymSpecifier() == X86MCExpr::VK_ABS8)
747+
Target.getAddSym() && Target.getSymSpecifier() == X86MCExpr::VK_ABS8)
748748
return false;
749749
}
750750
return true;

0 commit comments

Comments
 (0)