Remove a trivial forwarding function. NFC.

llvm-svn: 238506
This commit is contained in:
Rafael Espindola 2015-05-28 21:36:02 +00:00
parent 72ea707fe7
commit 3a5d3cce80
17 changed files with 35 additions and 45 deletions

View File

@ -884,15 +884,6 @@ public:
bool hasSymbolData(const MCSymbol &Symbol) const { return Symbol.hasData(); } bool hasSymbolData(const MCSymbol &Symbol) const { return Symbol.hasData(); }
MCSymbolData &getSymbolData(const MCSymbol &Symbol) {
return const_cast<MCSymbolData &>(
static_cast<const MCAssembler &>(*this).getSymbolData(Symbol));
}
const MCSymbolData &getSymbolData(const MCSymbol &Symbol) const {
return Symbol.getData();
}
MCSymbolData &getOrCreateSymbolData(const MCSymbol &Symbol, MCSymbolData &getOrCreateSymbolData(const MCSymbol &Symbol,
bool *Created = nullptr) { bool *Created = nullptr) {
if (Created) if (Created)

View File

@ -387,7 +387,7 @@ void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
if (!Ref) if (!Ref)
continue; continue;
const MCSymbol &Symbol = Ref->getSymbol(); const MCSymbol &Symbol = Ref->getSymbol();
MCSymbolData &SD = Asm.getSymbolData(Symbol); MCSymbolData &SD = Symbol.getData();
StringRef AliasName = Alias.getName(); StringRef AliasName = Alias.getName();
size_t Pos = AliasName.find('@'); size_t Pos = AliasName.find('@');
@ -465,7 +465,7 @@ void ELFObjectWriter::writeSymbol(SymbolTableWriter &Writer,
uint8_t Type = MCELF::GetType(OrigData); uint8_t Type = MCELF::GetType(OrigData);
MCSymbolData *BaseSD = nullptr; MCSymbolData *BaseSD = nullptr;
if (Base) { if (Base) {
BaseSD = &Layout.getAssembler().getSymbolData(*Base); BaseSD = &Base->getData();
Type = mergeTypeForSet(Type, MCELF::GetType(*BaseSD)); Type = mergeTypeForSet(Type, MCELF::GetType(*BaseSD));
} }
uint8_t Info = (Binding << ELF_STB_Shift) | (Type << ELF_STT_Shift); uint8_t Info = (Binding << ELF_STB_Shift) | (Type << ELF_STT_Shift);
@ -829,7 +829,7 @@ void ELFObjectWriter::computeSymbolTable(
bool Local = isLocal(Symbol, Used); bool Local = isLocal(Symbol, Used);
if (!Local && MCELF::GetBinding(SD) == ELF::STB_LOCAL) { if (!Local && MCELF::GetBinding(SD) == ELF::STB_LOCAL) {
assert(BaseSymbol); assert(BaseSymbol);
MCSymbolData &BaseData = Asm.getSymbolData(*BaseSymbol); MCSymbolData &BaseData = BaseSymbol->getData();
MCELF::SetBinding(SD, ELF::STB_GLOBAL); MCELF::SetBinding(SD, ELF::STB_GLOBAL);
MCELF::SetBinding(BaseData, ELF::STB_GLOBAL); MCELF::SetBinding(BaseData, ELF::STB_GLOBAL);
} }

View File

@ -195,7 +195,7 @@ const MCSymbol *MCAsmLayout::getBaseSymbol(const MCSymbol &Symbol) const {
const MCSymbol &ASym = A->getSymbol(); const MCSymbol &ASym = A->getSymbol();
const MCAssembler &Asm = getAssembler(); const MCAssembler &Asm = getAssembler();
const MCSymbolData &ASD = Asm.getSymbolData(ASym); const MCSymbolData &ASD = ASym.getData();
if (ASD.isCommon()) { if (ASD.isCommon()) {
// FIXME: we should probably add a SMLoc to MCExpr. // FIXME: we should probably add a SMLoc to MCExpr.
Asm.getContext().reportFatalError(SMLoc(), Asm.getContext().reportFatalError(SMLoc(),

View File

@ -113,7 +113,7 @@ void MCELFStreamer::EmitLabel(MCSymbol *Symbol) {
const MCSectionELF &Section = const MCSectionELF &Section =
static_cast<const MCSectionELF&>(Symbol->getSection()); static_cast<const MCSectionELF&>(Symbol->getSection());
MCSymbolData &SD = getAssembler().getSymbolData(*Symbol); MCSymbolData &SD = Symbol->getData();
if (Section.getFlags() & ELF::SHF_TLS) if (Section.getFlags() & ELF::SHF_TLS)
MCELF::SetType(SD, ELF::STT_TLS); MCELF::SetType(SD, ELF::STT_TLS);
} }

View File

@ -471,8 +471,8 @@ static void AttemptToFoldSymbolOffsetDifference(
if (!Asm->getWriter().IsSymbolRefDifferenceFullyResolved(*Asm, A, B, InSet)) if (!Asm->getWriter().IsSymbolRefDifferenceFullyResolved(*Asm, A, B, InSet))
return; return;
const MCSymbolData &AD = Asm->getSymbolData(SA); const MCSymbolData &AD = SA.getData();
const MCSymbolData &BD = Asm->getSymbolData(SB); const MCSymbolData &BD = SB.getData();
if (AD.getFragment() == BD.getFragment()) { if (AD.getFragment() == BD.getFragment()) {
Addend += (AD.getOffset() - BD.getOffset()); Addend += (AD.getOffset() - BD.getOffset());

View File

@ -194,7 +194,7 @@ void MCMachOStreamer::EmitLabel(MCSymbol *Symbol) {
MCObjectStreamer::EmitLabel(Symbol); MCObjectStreamer::EmitLabel(Symbol);
MCSymbolData &SD = getAssembler().getSymbolData(*Symbol); MCSymbolData &SD = Symbol->getData();
// This causes the reference type flag to be cleared. Darwin 'as' was "trying" // This causes the reference type flag to be cleared. Darwin 'as' was "trying"
// to clear the weak reference and weak definition bits too, but the // to clear the weak reference and weak definition bits too, but the
// implementation was buggy. For now we just try to match 'as', for // implementation was buggy. For now we just try to match 'as', for

View File

@ -60,8 +60,8 @@ bool MCObjectStreamer::emitAbsoluteSymbolDiff(const MCSymbol *Hi,
// Must have symbol data. // Must have symbol data.
if (!Assembler->hasSymbolData(*Hi) || !Assembler->hasSymbolData(*Lo)) if (!Assembler->hasSymbolData(*Hi) || !Assembler->hasSymbolData(*Lo))
return false; return false;
auto &HiD = Assembler->getSymbolData(*Hi); auto &HiD = Hi->getData();
auto &LoD = Assembler->getSymbolData(*Lo); auto &LoD = Lo->getData();
// Must both be assigned to the same (valid) fragment. // Must both be assigned to the same (valid) fragment.
if (!HiD.getFragment() || HiD.getFragment() != LoD.getFragment()) if (!HiD.getFragment() || HiD.getFragment() != LoD.getFragment())

View File

@ -30,8 +30,8 @@ bool MCObjectWriter::IsSymbolRefDifferenceFullyResolved(
if (SA.isUndefined() || SB.isUndefined()) if (SA.isUndefined() || SB.isUndefined())
return false; return false;
const MCSymbolData &DataA = Asm.getSymbolData(SA); const MCSymbolData &DataA = SA.getData();
const MCSymbolData &DataB = Asm.getSymbolData(SB); const MCSymbolData &DataB = SB.getData();
if(!DataA.getFragment() || !DataB.getFragment()) if(!DataA.getFragment() || !DataB.getFragment())
return false; return false;

View File

@ -693,7 +693,7 @@ bool MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(
if (!hasReliableSymbolDifference) { if (!hasReliableSymbolDifference) {
if (!SA.isInSection() || &SecA != &SecB || if (!SA.isInSection() || &SecA != &SecB ||
(!SA.isTemporary() && (!SA.isTemporary() &&
FB.getAtom() != Asm.getSymbolData(SA).getFragment()->getAtom() && FB.getAtom() != SA.getData().getFragment()->getAtom() &&
Asm.getSubsectionsViaSymbols())) Asm.getSubsectionsViaSymbols()))
return false; return false;
return true; return true;
@ -717,7 +717,7 @@ bool MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(
if (&SecA != &SecB) if (&SecA != &SecB)
return false; return false;
const MCFragment *FA = Asm.getSymbolData(SA).getFragment(); const MCFragment *FA = SA.getData().getFragment();
// Bail if the symbol has no fragment. // Bail if the symbol has no fragment.
if (!FA) if (!FA)
@ -968,8 +968,7 @@ void MachObjectWriter::WriteObject(MCAssembler &Asm,
static_cast<const MCSectionMachO &>(*it->Section); static_cast<const MCSectionMachO &>(*it->Section);
if (Section.getType() == MachO::S_NON_LAZY_SYMBOL_POINTERS) { if (Section.getType() == MachO::S_NON_LAZY_SYMBOL_POINTERS) {
// If this symbol is defined and internal, mark it as such. // If this symbol is defined and internal, mark it as such.
if (it->Symbol->isDefined() && if (it->Symbol->isDefined() && !it->Symbol->getData().isExternal()) {
!Asm.getSymbolData(*it->Symbol).isExternal()) {
uint32_t Flags = MachO::INDIRECT_SYMBOL_LOCAL; uint32_t Flags = MachO::INDIRECT_SYMBOL_LOCAL;
if (it->Symbol->isAbsolute()) if (it->Symbol->isAbsolute())
Flags |= MachO::INDIRECT_SYMBOL_ABS; Flags |= MachO::INDIRECT_SYMBOL_ABS;

View File

@ -414,7 +414,7 @@ void WinCOFFObjectWriter::DefineSymbol(const MCSymbol &Symbol,
coff_symbol->MC = &Symbol; coff_symbol->MC = &Symbol;
} else { } else {
const MCSymbolData &ResSymData = Assembler.getSymbolData(Symbol); const MCSymbolData &ResSymData = Symbol.getData();
const MCSymbol *Base = Layout.getBaseSymbol(Symbol); const MCSymbol *Base = Layout.getBaseSymbol(Symbol);
coff_symbol->Data.Value = getSymbolValue(Symbol, Layout); coff_symbol->Data.Value = getSymbolValue(Symbol, Layout);
@ -434,7 +434,7 @@ void WinCOFFObjectWriter::DefineSymbol(const MCSymbol &Symbol,
if (!Base) { if (!Base) {
coff_symbol->Data.SectionNumber = COFF::IMAGE_SYM_ABSOLUTE; coff_symbol->Data.SectionNumber = COFF::IMAGE_SYM_ABSOLUTE;
} else { } else {
const MCSymbolData &BaseData = Assembler.getSymbolData(*Base); const MCSymbolData &BaseData = Base->getData();
if (BaseData.getFragment()) { if (BaseData.getFragment()) {
COFFSection *Sec = SectionMap[BaseData.getFragment()->getParent()]; COFFSection *Sec = SectionMap[BaseData.getFragment()->getParent()];
@ -702,7 +702,7 @@ void WinCOFFObjectWriter::RecordRelocation(
Twine("symbol '") + A.getName() + Twine("symbol '") + A.getName() +
"' can not be undefined"); "' can not be undefined");
const MCSymbolData &A_SD = Asm.getSymbolData(A); const MCSymbolData &A_SD = A.getData();
MCSection *Section = Fragment->getParent(); MCSection *Section = Fragment->getParent();
@ -719,7 +719,7 @@ void WinCOFFObjectWriter::RecordRelocation(
if (SymB) { if (SymB) {
const MCSymbol *B = &SymB->getSymbol(); const MCSymbol *B = &SymB->getSymbol();
const MCSymbolData &B_SD = Asm.getSymbolData(*B); const MCSymbolData &B_SD = B->getData();
if (!B_SD.getFragment()) if (!B_SD.getFragment())
Asm.getContext().reportFatalError( Asm.getContext().reportFatalError(
Fixup.getLoc(), Fixup.getLoc(),

View File

@ -209,11 +209,11 @@ void AArch64MachObjectWriter::RecordRelocation(
} }
} else if (Target.getSymB()) { // A - B + constant } else if (Target.getSymB()) { // A - B + constant
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData &A_SD = Asm.getSymbolData(*A); const MCSymbolData &A_SD = A->getData();
const MCSymbol *A_Base = Asm.getAtom(*A); const MCSymbol *A_Base = Asm.getAtom(*A);
const MCSymbol *B = &Target.getSymB()->getSymbol(); const MCSymbol *B = &Target.getSymB()->getSymbol();
const MCSymbolData &B_SD = Asm.getSymbolData(*B); const MCSymbolData &B_SD = B->getData();
const MCSymbol *B_Base = Asm.getAtom(*B); const MCSymbol *B_Base = Asm.getAtom(*B);
// Check for "_foo@got - .", which comes through here as: // Check for "_foo@got - .", which comes through here as:

View File

@ -601,7 +601,7 @@ void ARMAsmBackend::processFixupValue(const MCAssembler &Asm,
// the offset when the destination has the same MCFragment. // the offset when the destination has the same MCFragment.
if (A && (unsigned)Fixup.getKind() == ARM::fixup_arm_thumb_bl) { if (A && (unsigned)Fixup.getKind() == ARM::fixup_arm_thumb_bl) {
const MCSymbol &Sym = A->getSymbol(); const MCSymbol &Sym = A->getSymbol();
const MCSymbolData &SymData = Asm.getSymbolData(Sym); const MCSymbolData &SymData = Sym.getData();
IsResolved = (SymData.getFragment() == DF); IsResolved = (SymData.getFragment() == DF);
} }
// We must always generate a relocation for BL/BLX instructions if we have // We must always generate a relocation for BL/BLX instructions if we have

View File

@ -152,7 +152,7 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,
// See <reloc.h>. // See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &Asm.getSymbolData(*A); const MCSymbolData *A_SD = &A->getData();
if (!A_SD->getFragment()) if (!A_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(), Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -166,7 +166,7 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,
FixedValue += SecAddr; FixedValue += SecAddr;
if (const MCSymbolRefExpr *B = Target.getSymB()) { if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); const MCSymbolData *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment()) if (!B_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(), Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -255,7 +255,7 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,
// See <reloc.h>. // See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &Asm.getSymbolData(*A); const MCSymbolData *A_SD = &A->getData();
if (!A_SD->getFragment()) if (!A_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(), Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -270,7 +270,7 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,
if (const MCSymbolRefExpr *B = Target.getSymB()) { if (const MCSymbolRefExpr *B = Target.getSymB()) {
assert(Type == MachO::ARM_RELOC_VANILLA && "invalid reloc for 2 symbols"); assert(Type == MachO::ARM_RELOC_VANILLA && "invalid reloc for 2 symbols");
const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); const MCSymbolData *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment()) if (!B_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(), Asm.getContext().reportFatalError(Fixup.getLoc(),

View File

@ -271,7 +271,7 @@ static unsigned getMatchingLoType(const MCAssembler &Asm,
if (Type == ELF::R_MIPS16_HI16) if (Type == ELF::R_MIPS16_HI16)
return ELF::R_MIPS16_LO16; return ELF::R_MIPS16_LO16;
const MCSymbolData &SD = Asm.getSymbolData(*Reloc.Symbol); const MCSymbolData &SD = Reloc.Symbol->getData();
if (MCELF::GetBinding(SD) != ELF::STB_LOCAL) if (MCELF::GetBinding(SD) != ELF::STB_LOCAL)
return ELF::R_MIPS_NONE; return ELF::R_MIPS_NONE;

View File

@ -142,7 +142,7 @@ public:
// to resolve the fixup directly. Emit a relocation and leave // to resolve the fixup directly. Emit a relocation and leave
// resolution of the final target address to the linker. // resolution of the final target address to the linker.
if (const MCSymbolRefExpr *A = Target.getSymA()) { if (const MCSymbolRefExpr *A = Target.getSymA()) {
const MCSymbolData &Data = Asm.getSymbolData(A->getSymbol()); const MCSymbolData &Data = A->getSymbol().getData();
// The "other" values are stored in the last 6 bits of the second byte. // The "other" values are stored in the last 6 bits of the second byte.
// The traditional defines for STO values assume the full byte and thus // The traditional defines for STO values assume the full byte and thus
// the shift to pack it. // the shift to pack it.

View File

@ -206,7 +206,7 @@ bool PPCMachObjectWriter::RecordScatteredRelocation(
// See <reloc.h>. // See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &Asm.getSymbolData(*A); const MCSymbolData *A_SD = &A->getData();
if (!A_SD->getFragment()) if (!A_SD->getFragment())
report_fatal_error("symbol '" + A->getName() + report_fatal_error("symbol '" + A->getName() +
@ -219,7 +219,7 @@ bool PPCMachObjectWriter::RecordScatteredRelocation(
uint32_t Value2 = 0; uint32_t Value2 = 0;
if (const MCSymbolRefExpr *B = Target.getSymB()) { if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); const MCSymbolData *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment()) if (!B_SD->getFragment())
report_fatal_error("symbol '" + B->getSymbol().getName() + report_fatal_error("symbol '" + B->getSymbol().getName() +

View File

@ -142,13 +142,13 @@ void X86MachObjectWriter::RecordX86_64Relocation(
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
if (A->isTemporary()) if (A->isTemporary())
A = &Writer->findAliasedSymbol(*A); A = &Writer->findAliasedSymbol(*A);
const MCSymbolData &A_SD = Asm.getSymbolData(*A); const MCSymbolData &A_SD = A->getData();
const MCSymbol *A_Base = Asm.getAtom(*A); const MCSymbol *A_Base = Asm.getAtom(*A);
const MCSymbol *B = &Target.getSymB()->getSymbol(); const MCSymbol *B = &Target.getSymB()->getSymbol();
if (B->isTemporary()) if (B->isTemporary())
B = &Writer->findAliasedSymbol(*B); B = &Writer->findAliasedSymbol(*B);
const MCSymbolData &B_SD = Asm.getSymbolData(*B); const MCSymbolData &B_SD = B->getData();
const MCSymbol *B_Base = Asm.getAtom(*B); const MCSymbol *B_Base = Asm.getAtom(*B);
// Neither symbol can be modified. // Neither symbol can be modified.
@ -211,7 +211,7 @@ void X86MachObjectWriter::RecordX86_64Relocation(
if (!Asm.getContext().getAsmInfo()->isSectionAtomizableBySymbols(Sec)) if (!Asm.getContext().getAsmInfo()->isSectionAtomizableBySymbols(Sec))
Asm.addLocalUsedInReloc(*Symbol); Asm.addLocalUsedInReloc(*Symbol);
} }
const MCSymbolData &SD = Asm.getSymbolData(*Symbol); const MCSymbolData &SD = Symbol->getData();
RelSymbol = Asm.getAtom(*Symbol); RelSymbol = Asm.getAtom(*Symbol);
// Relocations inside debug sections always use local relocations when // Relocations inside debug sections always use local relocations when
@ -354,7 +354,7 @@ bool X86MachObjectWriter::RecordScatteredRelocation(MachObjectWriter *Writer,
// See <reloc.h>. // See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol(); const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &Asm.getSymbolData(*A); const MCSymbolData *A_SD = &A->getData();
if (!A_SD->getFragment()) if (!A_SD->getFragment())
report_fatal_error("symbol '" + A->getName() + report_fatal_error("symbol '" + A->getName() +
@ -368,7 +368,7 @@ bool X86MachObjectWriter::RecordScatteredRelocation(MachObjectWriter *Writer,
uint32_t Value2 = 0; uint32_t Value2 = 0;
if (const MCSymbolRefExpr *B = Target.getSymB()) { if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); const MCSymbolData *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment()) if (!B_SD->getFragment())
report_fatal_error("symbol '" + B->getSymbol().getName() + report_fatal_error("symbol '" + B->getSymbol().getName() +