summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-12-08 16:26:20 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-12-08 16:26:20 +0000
commit191390a85188d0780f42a42a236ce646062fbdf0 (patch)
treeae69dfd33d0a320e2b198582362bf11d458846aa
parent361da4cef7df3cbcd2b4ada8e1cd489a1181b5f8 (diff)
downloadbcm5719-llvm-191390a85188d0780f42a42a236ce646062fbdf0.tar.gz
bcm5719-llvm-191390a85188d0780f42a42a236ce646062fbdf0.zip
Inline function called only once.
llvm-svn: 289067
-rw-r--r--lld/ELF/SymbolTable.cpp28
-rw-r--r--lld/ELF/SymbolTable.h1
2 files changed, 11 insertions, 18 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index e25bf331ad0..4fb611de7a2 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -460,20 +460,6 @@ template <class ELFT> SymbolBody *SymbolTable<ELFT>::find(StringRef Name) {
return SymVector[V.Idx]->body();
}
-// Returns a list of defined symbols that match with a given pattern.
-template <class ELFT>
-std::vector<SymbolBody *> SymbolTable<ELFT>::findAll(StringRef GlobPat) {
- std::vector<SymbolBody *> Res;
- StringMatcher M({GlobPat});
- for (Symbol *Sym : SymVector) {
- SymbolBody *B = Sym->body();
- StringRef Name = B->getName();
- if (!B->isUndefined() && M.match(Name))
- Res.push_back(B);
- }
- return Res;
-}
-
template <class ELFT>
void SymbolTable<ELFT>::addLazyArchive(ArchiveFile *F,
const object::Archive::Symbol Sym) {
@@ -600,10 +586,11 @@ std::vector<SymbolBody *> SymbolTable<ELFT>::find(SymbolVersion Ver) {
template <class ELFT>
std::vector<SymbolBody *> SymbolTable<ELFT>::findAll(SymbolVersion Ver) {
+ std::vector<SymbolBody *> Res;
+ StringMatcher M({Ver.Name});
+
if (Ver.IsExternCpp) {
initDemangledSyms();
- std::vector<SymbolBody *> Res;
- StringMatcher M({Ver.Name});
for (auto &P : *DemangledSyms)
if (M.match(P.first()))
for (SymbolBody *Body : P.second)
@@ -611,7 +598,14 @@ std::vector<SymbolBody *> SymbolTable<ELFT>::findAll(SymbolVersion Ver) {
Res.push_back(Body);
return Res;
}
- return findAll(Ver.Name);
+
+ for (Symbol *Sym : SymVector) {
+ SymbolBody *B = Sym->body();
+ StringRef Name = B->getName();
+ if (!B->isUndefined() && M.match(Name))
+ Res.push_back(B);
+ }
+ return Res;
}
// If there's only one anonymous version definition in a version
diff --git a/lld/ELF/SymbolTable.h b/lld/ELF/SymbolTable.h
index ab1fa8957f9..0e1b62f2166 100644
--- a/lld/ELF/SymbolTable.h
+++ b/lld/ELF/SymbolTable.h
@@ -92,7 +92,6 @@ public:
std::vector<InputSectionBase<ELFT> *> Sections;
private:
- std::vector<SymbolBody *> findAll(StringRef GlobPat);
std::pair<Symbol *, bool> insert(StringRef Name);
std::pair<Symbol *, bool> insert(StringRef Name, uint8_t Type,
uint8_t Visibility, bool CanOmitFromDynSym,
OpenPOWER on IntegriCloud