[llvm-branch-commits] [llvm] 7b9890e - [MC][ELF] Remove unneeded MCSymbol::setExternal calls
Fangrui Song via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Dec 20 21:30:45 PST 2020
Author: Fangrui Song
Date: 2020-12-20T21:26:36-08:00
New Revision: 7b9890e17e9e9be4d14845f3bfe52e1a06ab032a
URL: https://github.com/llvm/llvm-project/commit/7b9890e17e9e9be4d14845f3bfe52e1a06ab032a
DIFF: https://github.com/llvm/llvm-project/commit/7b9890e17e9e9be4d14845f3bfe52e1a06ab032a.diff
LOG: [MC][ELF] Remove unneeded MCSymbol::setExternal calls
ELF code uses symbol bindings and does not call isExternal().
Added:
Modified:
llvm/include/llvm/MC/MCSymbol.h
llvm/lib/MC/MCELFStreamer.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCSymbol.h b/llvm/include/llvm/MC/MCSymbol.h
index a89de5dfa22f..a83781f5c586 100644
--- a/llvm/include/llvm/MC/MCSymbol.h
+++ b/llvm/include/llvm/MC/MCSymbol.h
@@ -94,7 +94,8 @@ class MCSymbol {
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;
/// This symbol is private extern.
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index 17beca1c3556..db45aef7d506 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -221,7 +221,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
case MCSA_ELF_TypeGnuUniqueObject:
Symbol->setType(CombineSymbolTypes(Symbol->getType(), ELF::STT_OBJECT));
Symbol->setBinding(ELF::STB_GNU_UNIQUE);
- Symbol->setExternal(true);
break;
case MCSA_Global:
@@ -233,7 +232,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
Symbol->getName() +
" changed binding to STB_GLOBAL");
Symbol->setBinding(ELF::STB_GLOBAL);
- Symbol->setExternal(true);
break;
case MCSA_WeakReference:
@@ -244,7 +242,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
getContext().reportWarning(
getStartTokLoc(), Symbol->getName() + " changed binding to STB_WEAK");
Symbol->setBinding(ELF::STB_WEAK);
- Symbol->setExternal(true);
break;
case MCSA_Local:
@@ -253,7 +250,6 @@ bool MCELFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) {
Symbol->getName() +
" changed binding to STB_LOCAL");
Symbol->setBinding(ELF::STB_LOCAL);
- Symbol->setExternal(false);
break;
case MCSA_ELF_TypeFunction:
@@ -308,10 +304,8 @@ void MCELFStreamer::emitCommonSymbol(MCSymbol *S, uint64_t Size,
auto *Symbol = cast<MCSymbolELF>(S);
getAssembler().registerSymbol(*Symbol);
- if (!Symbol->isBindingSet()) {
+ if (!Symbol->isBindingSet())
Symbol->setBinding(ELF::STB_GLOBAL);
- Symbol->setExternal(true);
- }
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?
getAssembler().registerSymbol(*Symbol);
Symbol->setBinding(ELF::STB_LOCAL);
- Symbol->setExternal(false);
emitCommonSymbol(Symbol, Size, ByteAlignment);
}
@@ -499,10 +492,8 @@ void MCELFStreamer::finalizeCGProfileEntry(const MCSymbolRefExpr *&SRE) {
// Not a temporary, referece it as a weak undefined.
bool Created;
getAssembler().registerSymbol(*S, &Created);
- if (Created) {
+ if (Created)
cast<MCSymbolELF>(S)->setBinding(ELF::STB_WEAK);
- cast<MCSymbolELF>(S)->setExternal(true);
- }
}
void MCELFStreamer::finalizeCGProfile() {
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
index 876741d6c343..07ca5c29f0ec 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
@@ -644,7 +644,6 @@ class ARMELFStreamer : public MCELFStreamer {
Symbol->setType(ELF::STT_NOTYPE);
Symbol->setBinding(ELF::STB_LOCAL);
- Symbol->setExternal(false);
}
void EmitMappingSymbol(StringRef Name, SMLoc Loc, MCFragment *F,
@@ -654,7 +653,6 @@ class ARMELFStreamer : public MCELFStreamer {
emitLabelAtPos(Symbol, Loc, F, Offset);
Symbol->setType(ELF::STT_NOTYPE);
Symbol->setBinding(ELF::STB_LOCAL);
- Symbol->setExternal(false);
}
void emitThumbFunc(MCSymbol *Func) override {
diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
index 00f319fc37e1..8780c602a269 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
@@ -205,10 +205,8 @@ void SparcMCExpr::fixELFSymbolsInTLSFixups(MCAssembler &Asm) const {
MCSymbol *Symbol = Asm.getContext().getOrCreateSymbol("__tls_get_addr");
Asm.registerSymbol(*Symbol);
auto ELFSymbol = cast<MCSymbolELF>(Symbol);
- if (!ELFSymbol->isBindingSet()) {
+ if (!ELFSymbol->isBindingSet())
ELFSymbol->setBinding(ELF::STB_GLOBAL);
- ELFSymbol->setExternal(true);
- }
LLVM_FALLTHROUGH;
}
case VK_Sparc_TLS_GD_HI22:
More information about the llvm-branch-commits
mailing list