From cfa534244477d407c09ce69bff1da3a4c772df63 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Wed, 20 May 2015 20:18:16 +0000 Subject: [PATCH] MC: Remove most remaining uses of MCSymbolData::getSymbol(), NFC Remove most remaining calls to `MCSymbolData::getSymbol()`, instead using the already available `MCSymbol` directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237829 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCMachOStreamer.cpp | 8 ++++---- .../AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp | 12 +++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp index ab26b5d0f5c..c0efc8e17bd 100644 --- a/lib/MC/MCMachOStreamer.cpp +++ b/lib/MC/MCMachOStreamer.cpp @@ -464,13 +464,13 @@ void MCMachOStreamer::FinishImpl() { // First, scan the symbol table to build a lookup table from fragments to // defining symbols. - DenseMap DefiningSymbolMap; + DenseMap DefiningSymbolMap; for (const MCSymbol &Symbol : getAssembler().symbols()) { MCSymbolData &SD = Symbol.getData(); if (getAssembler().isSymbolLinkerVisible(Symbol) && SD.getFragment()) { // An atom defining symbol should never be internal to a fragment. assert(SD.getOffset() == 0 && "Invalid offset in atom defining symbol!"); - DefiningSymbolMap[SD.getFragment()] = &SD; + DefiningSymbolMap[SD.getFragment()] = &Symbol; } } @@ -481,8 +481,8 @@ void MCMachOStreamer::FinishImpl() { const MCSymbol *CurrentAtom = nullptr; for (MCSectionData::iterator it2 = it->begin(), ie2 = it->end(); it2 != ie2; ++it2) { - if (MCSymbolData *SD = DefiningSymbolMap.lookup(it2)) - CurrentAtom = &SD->getSymbol(); + if (const MCSymbol *Symbol = DefiningSymbolMap.lookup(it2)) + CurrentAtom = Symbol; it2->setAtom(CurrentAtom); } } diff --git a/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp index 70721e945fc..cd175ad37ee 100644 --- a/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp +++ b/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp @@ -295,7 +295,6 @@ void AArch64MachObjectWriter::RecordRelocation( Asm.addLocalUsedInReloc(*Symbol); } - const MCSymbolData &SD = Asm.getSymbolData(*Symbol); const MCSymbol *Base = Asm.getAtom(*Symbol); // If the symbol is a variable and we weren't able to get a Base for it @@ -305,7 +304,7 @@ void AArch64MachObjectWriter::RecordRelocation( // If the evaluation is an absolute value, just use that directly // to keep things easy. int64_t Res; - if (SD.getSymbol().getVariableValue()->EvaluateAsAbsolute( + if (Symbol->getVariableValue()->EvaluateAsAbsolute( Res, Layout, Writer->getSectionAddressMap())) { FixedValue = Res; return; @@ -350,19 +349,18 @@ void AArch64MachObjectWriter::RecordRelocation( "'. Must have non-local symbol earlier in section."); // Adjust the relocation to be section-relative. // The index is the section ordinal (1-based). - const MCSectionData &SymSD = - Asm.getSectionData(SD.getSymbol().getSection()); + const MCSectionData &SymSD = Asm.getSectionData(Symbol->getSection()); Index = SymSD.getOrdinal() + 1; - Value += Writer->getSymbolAddress(SD.getSymbol(), Layout); + Value += Writer->getSymbolAddress(*Symbol, Layout); if (IsPCRel) Value -= Writer->getFragmentAddress(Fragment, Layout) + Fixup.getOffset() + (1ULL << Log2Size); } else { // Resolve constant variables. - if (SD.getSymbol().isVariable()) { + if (Symbol->isVariable()) { int64_t Res; - if (SD.getSymbol().getVariableValue()->EvaluateAsAbsolute( + if (Symbol->getVariableValue()->EvaluateAsAbsolute( Res, Layout, Writer->getSectionAddressMap())) { FixedValue = Res; return;