Convert StringMap to using StringRef for its APIs.
 - Yay for '-'s and simplifications!

 - I kept StringMap::GetOrCreateValue for compatibility purposes, this can
   eventually go away. Likewise the StringMapEntry Create functions still follow
   the old style.

 - NIFC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-mc/AsmLexer.cpp b/tools/llvm-mc/AsmLexer.cpp
index 6ee9145..e872090 100644
--- a/tools/llvm-mc/AsmLexer.cpp
+++ b/tools/llvm-mc/AsmLexer.cpp
@@ -107,8 +107,9 @@
          *CurPtr == '.' || *CurPtr == '@')
     ++CurPtr;
   // Unique string.
-  CurStrVal =
-    getSS(TheStringSet).GetOrCreateValue(TokStart, CurPtr, 0).getKeyData();
+  CurStrVal = getSS(TheStringSet).GetOrCreateValue(StringRef(TokStart, 
+                                                             CurPtr - TokStart),
+                                                   0).getKeyData();
   return asmtok::Identifier;
 }
 
@@ -121,8 +122,9 @@
     ++CurPtr;
   
   // Unique string.
-  CurStrVal =
-    getSS(TheStringSet).GetOrCreateValue(TokStart, CurPtr, 0).getKeyData();
+  CurStrVal = getSS(TheStringSet).GetOrCreateValue(StringRef(TokStart, 
+                                                             CurPtr - TokStart),
+                                                   0).getKeyData();
   return asmtok::Register;
 }
 
@@ -249,8 +251,9 @@
   }
   
   // Unique string, include quotes for now.
-  CurStrVal =
-    getSS(TheStringSet).GetOrCreateValue(TokStart, CurPtr, 0).getKeyData();
+  CurStrVal = getSS(TheStringSet).GetOrCreateValue(StringRef(TokStart, 
+                                                             CurPtr - TokStart),
+                                                   0).getKeyData();
   return asmtok::String;
 }
 
diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp
index 3637b9d..a72938a 100644
--- a/tools/lto/LTOModule.cpp
+++ b/tools/lto/LTOModule.cpp
@@ -379,7 +379,7 @@
 
 void LTOModule::addAsmGlobalSymbol(const char *name) {
     // only add new define if not already defined
-    if ( _defines.count(name, &name[strlen(name)+1]) == 0 ) 
+    if ( _defines.count(name) == 0 ) 
         return;
         
     // string is owned by _defines
@@ -507,8 +507,7 @@
                                                 it != _undefines.end(); ++it) {
             // if this symbol also has a definition, then don't make an undefine
             // because it is a tentative definition
-            if ( _defines.count(it->getKeyData(), it->getKeyData()+
-                                                  it->getKeyLength()) == 0 ) {
+            if ( _defines.count(it->getKey())) {
               NameAndAttributes info = it->getValue();
               _symbols.push_back(info);
             }