[PATCH] D27666: COFF: Use CachedHashStringRef in the symbol table.
Peter Collingbourne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 11 14:25:58 PST 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL289410: COFF: Use CachedHashStringRef in the symbol table. (authored by pcc).
Changed prior to commit:
https://reviews.llvm.org/D27666?vs=81035&id=81038#toc
Repository:
rL LLVM
https://reviews.llvm.org/D27666
Files:
lld/trunk/COFF/SymbolTable.cpp
lld/trunk/COFF/SymbolTable.h
Index: lld/trunk/COFF/SymbolTable.h
===================================================================
--- lld/trunk/COFF/SymbolTable.h
+++ lld/trunk/COFF/SymbolTable.h
@@ -11,6 +11,7 @@
#define LLD_COFF_SYMBOL_TABLE_H
#include "InputFiles.h"
+#include "llvm/ADT/CachedHashString.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/Support/Allocator.h"
@@ -120,7 +121,7 @@
void addCombinedLTOObject(ObjectFile *Obj);
std::vector<ObjectFile *> createLTOObjects(llvm::LTOCodeGenerator *CG);
- llvm::DenseMap<StringRef, Symbol *> Symtab;
+ llvm::DenseMap<llvm::CachedHashStringRef, Symbol *> Symtab;
std::vector<BitcodeFile *> BitcodeFiles;
std::vector<SmallString<0>> Objs;
Index: lld/trunk/COFF/SymbolTable.cpp
===================================================================
--- lld/trunk/COFF/SymbolTable.cpp
+++ lld/trunk/COFF/SymbolTable.cpp
@@ -117,7 +117,7 @@
}
std::pair<Symbol *, bool> SymbolTable::insert(StringRef Name) {
- Symbol *&Sym = Symtab[Name];
+ Symbol *&Sym = Symtab[CachedHashStringRef(Name)];
if (Sym)
return {Sym, false};
Sym = make<Symbol>();
@@ -302,7 +302,7 @@
}
Symbol *SymbolTable::find(StringRef Name) {
- auto It = Symtab.find(Name);
+ auto It = Symtab.find(CachedHashStringRef(Name));
if (It == Symtab.end())
return nullptr;
return It->second;
@@ -316,7 +316,7 @@
StringRef SymbolTable::findByPrefix(StringRef Prefix) {
for (auto Pair : Symtab) {
- StringRef Name = Pair.first;
+ StringRef Name = Pair.first.val();
if (Name.startswith(Prefix))
return Name;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27666.81038.patch
Type: text/x-patch
Size: 1611 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161211/7a7a14f1/attachment.bin>
More information about the llvm-commits
mailing list