[llvm-commits] [lld] r150547 - in /lld/trunk: include/lld/Core/SymbolTable.h lib/Core/SymbolTable.cpp
Nick Kledzik
kledzik at apple.com
Tue Feb 14 16:50:07 PST 2012
Author: kledzik
Date: Tue Feb 14 18:50:07 2012
New Revision: 150547
URL: http://llvm.org/viewvc/llvm-project?rev=150547&view=rev
Log:
use llvm::DenseMap instead of std::map
Modified:
lld/trunk/include/lld/Core/SymbolTable.h
lld/trunk/lib/Core/SymbolTable.cpp
Modified: lld/trunk/include/lld/Core/SymbolTable.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/SymbolTable.h?rev=150547&r1=150546&r2=150547&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/SymbolTable.h (original)
+++ lld/trunk/include/lld/Core/SymbolTable.h Tue Feb 14 18:50:07 2012
@@ -16,6 +16,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/DenseSet.h"
+#include "llvm/ADT/StringExtras.h"
namespace lld {
@@ -57,16 +58,27 @@
const Atom *replacement(const Atom *);
private:
- typedef std::map<llvm::StringRef, const Atom *> NameToAtom;
- typedef std::map<const Atom *, const Atom *> AtomToAtom;
- struct MyMappingInfo {
+ typedef llvm::DenseMap<const Atom *, const Atom *> AtomToAtom;
+
+ struct StringRefMappingInfo {
+ static llvm::StringRef getEmptyKey() { return llvm::StringRef(); }
+ static llvm::StringRef getTombstoneKey() { return llvm::StringRef(" ", 0); }
+ static unsigned getHashValue(llvm::StringRef const val) {
+ return llvm::HashString(val); }
+ static bool isEqual(llvm::StringRef const lhs,
+ llvm::StringRef const rhs) { return lhs.equals(rhs); }
+ };
+ typedef llvm::DenseMap<llvm::StringRef, const Atom *,
+ StringRefMappingInfo> NameToAtom;
+
+ struct AtomMappingInfo {
static const DefinedAtom * getEmptyKey() { return NULL; }
static const DefinedAtom * getTombstoneKey() { return (DefinedAtom*)(-1); }
static unsigned getHashValue(const DefinedAtom * const Val);
static bool isEqual(const DefinedAtom * const LHS,
const DefinedAtom * const RHS);
};
- typedef llvm::DenseSet<const DefinedAtom*, MyMappingInfo> AtomContentSet;
+ typedef llvm::DenseSet<const DefinedAtom*, AtomMappingInfo> AtomContentSet;
void addByName(const Atom &);
void addByContent(const DefinedAtom &);
Modified: lld/trunk/lib/Core/SymbolTable.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/SymbolTable.cpp?rev=150547&r1=150546&r2=150547&view=diff
==============================================================================
--- lld/trunk/lib/Core/SymbolTable.cpp (original)
+++ lld/trunk/lib/Core/SymbolTable.cpp Tue Feb 14 18:50:07 2012
@@ -165,7 +165,7 @@
}
-unsigned SymbolTable::MyMappingInfo::getHashValue(const DefinedAtom * const atom) {
+unsigned SymbolTable::AtomMappingInfo::getHashValue(const DefinedAtom * const atom) {
unsigned hash = atom->size();
if ( atom->contentType() != DefinedAtom::typeZeroFill ) {
llvm::ArrayRef<uint8_t> content = atom->rawContent();
@@ -180,7 +180,7 @@
}
-bool SymbolTable::MyMappingInfo::isEqual(const DefinedAtom * const l,
+bool SymbolTable::AtomMappingInfo::isEqual(const DefinedAtom * const l,
const DefinedAtom * const r) {
if ( l == r )
return true;
More information about the llvm-commits
mailing list