forked from OSchip/llvm-project
[MC][ELF] Remove unneeded MCSymbol::setExternal calls
ELF code uses symbol bindings and does not call isExternal().
This commit is contained in:
parent
29eb3dcfe6
commit
7b9890e17e
|
@ -94,7 +94,8 @@ protected:
|
||||||
|
|
||||||
mutable unsigned IsRegistered : 1;
|
mutable unsigned IsRegistered : 1;
|
||||||
|
|
||||||
/// This symbol is visible outside this translation unit.
|
/// True if this symbol is visible outside this translation unit. Note: ELF
|
||||||
|
/// uses binding instead of this bit.
|
||||||
mutable unsigned IsExternal : 1;
|
mutable unsigned IsExternal : 1;
|
||||||
|
|
||||||
/// This symbol is private extern.
|
/// This symbol is private extern.
|
||||||
|
|
|
@ -221,7 +221,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
|
||||||
case MCSA_ELF_TypeGnuUniqueObject:
|
case MCSA_ELF_TypeGnuUniqueObject:
|
||||||
Symbol->setType(CombineSymbolTypes(Symbol->getType(), ELF::STT_OBJECT));
|
Symbol->setType(CombineSymbolTypes(Symbol->getType(), ELF::STT_OBJECT));
|
||||||
Symbol->setBinding(ELF::STB_GNU_UNIQUE);
|
Symbol->setBinding(ELF::STB_GNU_UNIQUE);
|
||||||
Symbol->setExternal(true);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCSA_Global:
|
case MCSA_Global:
|
||||||
|
@ -233,7 +232,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
|
||||||
Symbol->getName() +
|
Symbol->getName() +
|
||||||
" changed binding to STB_GLOBAL");
|
" changed binding to STB_GLOBAL");
|
||||||
Symbol->setBinding(ELF::STB_GLOBAL);
|
Symbol->setBinding(ELF::STB_GLOBAL);
|
||||||
Symbol->setExternal(true);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCSA_WeakReference:
|
case MCSA_WeakReference:
|
||||||
|
@ -244,7 +242,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
|
||||||
getContext().reportWarning(
|
getContext().reportWarning(
|
||||||
getStartTokLoc(), Symbol->getName() + " changed binding to STB_WEAK");
|
getStartTokLoc(), Symbol->getName() + " changed binding to STB_WEAK");
|
||||||
Symbol->setBinding(ELF::STB_WEAK);
|
Symbol->setBinding(ELF::STB_WEAK);
|
||||||
Symbol->setExternal(true);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCSA_Local:
|
case MCSA_Local:
|
||||||
|
@ -253,7 +250,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
|
||||||
Symbol->getName() +
|
Symbol->getName() +
|
||||||
" changed binding to STB_LOCAL");
|
" changed binding to STB_LOCAL");
|
||||||
Symbol->setBinding(ELF::STB_LOCAL);
|
Symbol->setBinding(ELF::STB_LOCAL);
|
||||||
Symbol->setExternal(false);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCSA_ELF_TypeFunction:
|
case MCSA_ELF_TypeFunction:
|
||||||
|
@ -308,10 +304,8 @@ void MCELFStreamer::emitCommonSymbol(MCSymbol *S, uint64_t Size,
|
||||||
auto *Symbol = cast<MCSymbolELF>(S);
|
auto *Symbol = cast<MCSymbolELF>(S);
|
||||||
getAssembler().registerSymbol(*Symbol);
|
getAssembler().registerSymbol(*Symbol);
|
||||||
|
|
||||||
if (!Symbol->isBindingSet()) {
|
if (!Symbol->isBindingSet())
|
||||||
Symbol->setBinding(ELF::STB_GLOBAL);
|
Symbol->setBinding(ELF::STB_GLOBAL);
|
||||||
Symbol->setExternal(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
Symbol->setType(ELF::STT_OBJECT);
|
Symbol->setType(ELF::STT_OBJECT);
|
||||||
|
|
||||||
|
@ -352,7 +346,6 @@ void MCELFStreamer::emitLocalCommonSymbol(MCSymbol *S, uint64_t Size,
|
||||||
// FIXME: Should this be caught and done earlier?
|
// FIXME: Should this be caught and done earlier?
|
||||||
getAssembler().registerSymbol(*Symbol);
|
getAssembler().registerSymbol(*Symbol);
|
||||||
Symbol->setBinding(ELF::STB_LOCAL);
|
Symbol->setBinding(ELF::STB_LOCAL);
|
||||||
Symbol->setExternal(false);
|
|
||||||
emitCommonSymbol(Symbol, Size, ByteAlignment);
|
emitCommonSymbol(Symbol, Size, ByteAlignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,10 +492,8 @@ void MCELFStreamer::finalizeCGProfileEntry(const MCSymbolRefExpr *&SRE) {
|
||||||
// Not a temporary, referece it as a weak undefined.
|
// Not a temporary, referece it as a weak undefined.
|
||||||
bool Created;
|
bool Created;
|
||||||
getAssembler().registerSymbol(*S, &Created);
|
getAssembler().registerSymbol(*S, &Created);
|
||||||
if (Created) {
|
if (Created)
|
||||||
cast<MCSymbolELF>(S)->setBinding(ELF::STB_WEAK);
|
cast<MCSymbolELF>(S)->setBinding(ELF::STB_WEAK);
|
||||||
cast<MCSymbolELF>(S)->setExternal(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCELFStreamer::finalizeCGProfile() {
|
void MCELFStreamer::finalizeCGProfile() {
|
||||||
|
|
|
@ -644,7 +644,6 @@ private:
|
||||||
|
|
||||||
Symbol->setType(ELF::STT_NOTYPE);
|
Symbol->setType(ELF::STT_NOTYPE);
|
||||||
Symbol->setBinding(ELF::STB_LOCAL);
|
Symbol->setBinding(ELF::STB_LOCAL);
|
||||||
Symbol->setExternal(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmitMappingSymbol(StringRef Name, SMLoc Loc, MCFragment *F,
|
void EmitMappingSymbol(StringRef Name, SMLoc Loc, MCFragment *F,
|
||||||
|
@ -654,7 +653,6 @@ private:
|
||||||
emitLabelAtPos(Symbol, Loc, F, Offset);
|
emitLabelAtPos(Symbol, Loc, F, Offset);
|
||||||
Symbol->setType(ELF::STT_NOTYPE);
|
Symbol->setType(ELF::STT_NOTYPE);
|
||||||
Symbol->setBinding(ELF::STB_LOCAL);
|
Symbol->setBinding(ELF::STB_LOCAL);
|
||||||
Symbol->setExternal(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void emitThumbFunc(MCSymbol *Func) override {
|
void emitThumbFunc(MCSymbol *Func) override {
|
||||||
|
|
|
@ -205,10 +205,8 @@ void SparcMCExpr::fixELFSymbolsInTLSFixups(MCAssembler &Asm) const {
|
||||||
MCSymbol *Symbol = Asm.getContext().getOrCreateSymbol("__tls_get_addr");
|
MCSymbol *Symbol = Asm.getContext().getOrCreateSymbol("__tls_get_addr");
|
||||||
Asm.registerSymbol(*Symbol);
|
Asm.registerSymbol(*Symbol);
|
||||||
auto ELFSymbol = cast<MCSymbolELF>(Symbol);
|
auto ELFSymbol = cast<MCSymbolELF>(Symbol);
|
||||||
if (!ELFSymbol->isBindingSet()) {
|
if (!ELFSymbol->isBindingSet())
|
||||||
ELFSymbol->setBinding(ELF::STB_GLOBAL);
|
ELFSymbol->setBinding(ELF::STB_GLOBAL);
|
||||||
ELFSymbol->setExternal(true);
|
|
||||||
}
|
|
||||||
LLVM_FALLTHROUGH;
|
LLVM_FALLTHROUGH;
|
||||||
}
|
}
|
||||||
case VK_Sparc_TLS_GD_HI22:
|
case VK_Sparc_TLS_GD_HI22:
|
||||||
|
|
Loading…
Reference in New Issue