[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