diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-07-23 18:52:12 +0000 | 
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-07-23 18:52:12 +0000 | 
| commit | 84b5f6efb781201c7ecb6028bc3f8271b558c794 (patch) | |
| tree | 6d1f8edcfae9494afa6fca3d784528d503980a0f /llvm/lib | |
| parent | f01154cf2c42fbef33cec2a2a6c2642fcb40dc12 (diff) | |
| download | bcm5719-llvm-84b5f6efb781201c7ecb6028bc3f8271b558c794.tar.gz bcm5719-llvm-84b5f6efb781201c7ecb6028bc3f8271b558c794.zip  | |
Switch ValueSymbolTable to StringRef based API.
llvm-svn: 76894
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Linker/LinkModules.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Module.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/VMCore/ValueSymbolTable.cpp | 27 | 
3 files changed, 7 insertions, 28 deletions
diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp index c97cd9c6c90..95f0ecefa5f 100644 --- a/llvm/lib/Linker/LinkModules.cpp +++ b/llvm/lib/Linker/LinkModules.cpp @@ -548,8 +548,7 @@ static bool LinkGlobals(Module *Dest, const Module *Src,      // Check to see if may have to link the global with the global, alias or      // function.      if (SGV->hasName() && !SGV->hasLocalLinkage()) -      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SGV->getNameStart(), -                                                        SGV->getNameEnd())); +      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SGV->getNameRef()));      // If we found a global with the same name in the dest module, but it has      // internal linkage, we are really not doing any linkage here. @@ -942,8 +941,7 @@ static bool LinkFunctionProtos(Module *Dest, const Module *Src,      // Check to see if may have to link the function with the global, alias or      // function.      if (SF->hasName() && !SF->hasLocalLinkage()) -      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SF->getNameStart(), -                                                        SF->getNameEnd())); +      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SF->getNameRef()));      // If we found a global with the same name in the dest module, but it has      // internal linkage, we are really not doing any linkage here. diff --git a/llvm/lib/VMCore/Module.cpp b/llvm/lib/VMCore/Module.cpp index 4daa92db945..9e6e31a9b9e 100644 --- a/llvm/lib/VMCore/Module.cpp +++ b/llvm/lib/VMCore/Module.cpp @@ -118,7 +118,7 @@ GlobalValue *Module::getNamedValue(const std::string &Name) const {  }  GlobalValue *Module::getNamedValue(const char *Name) const { -  llvm::Value *V = getValueSymbolTable().lookup(Name, Name+strlen(Name)); +  llvm::Value *V = getValueSymbolTable().lookup(Name);    return cast_or_null<GlobalValue>(V);  } diff --git a/llvm/lib/VMCore/ValueSymbolTable.cpp b/llvm/lib/VMCore/ValueSymbolTable.cpp index 8d3514b4751..f87bb631c8d 100644 --- a/llvm/lib/VMCore/ValueSymbolTable.cpp +++ b/llvm/lib/VMCore/ValueSymbolTable.cpp @@ -30,24 +30,6 @@ ValueSymbolTable::~ValueSymbolTable() {  #endif  } -// lookup a value - Returns null on failure... -// -Value *ValueSymbolTable::lookup(const std::string &Name) const { -  const_iterator VI = vmap.find(Name); -  if (VI != vmap.end())                   // We found the symbol -    return VI->getValue(); -  return 0; -} - -Value *ValueSymbolTable::lookup(const char *NameBegin, -                                const char *NameEnd) const { -  // FIXME: ValueSymbolTable should move to a StringRef based API. -  const_iterator VI = vmap.find(StringRef(NameBegin, NameEnd - NameBegin)); -  if (VI != vmap.end())                   // We found the symbol -    return VI->getValue(); -  return 0; -} -  // Insert a value into the symbol table with the specified name...  //  void ValueSymbolTable::reinsertValue(Value* V) { @@ -93,10 +75,9 @@ void ValueSymbolTable::removeValueName(ValueName *V) {  /// createValueName - This method attempts to create a value name and insert  /// it into the symbol table with the specified name.  If it conflicts, it  /// auto-renames the name and returns that instead. -ValueName *ValueSymbolTable::createValueName(const char *NameStart, -                                             unsigned NameLen, Value *V) { +ValueName *ValueSymbolTable::createValueName(const StringRef &Name, Value *V) {    // In the common case, the name is not already in the symbol table. -  ValueName &Entry = vmap.GetOrCreateValue(StringRef(NameStart, NameLen)); +  ValueName &Entry = vmap.GetOrCreateValue(Name);    if (Entry.getValue() == 0) {      Entry.setValue(V);      //DEBUG(DOUT << " Inserted value: " << Entry.getKeyData() << ": " @@ -105,11 +86,11 @@ ValueName *ValueSymbolTable::createValueName(const char *NameStart,    }    // Otherwise, there is a naming conflict.  Rename this value. -  SmallString<128> UniqueName(NameStart, NameStart+NameLen); +  SmallString<128> UniqueName(Name.begin(), Name.end());    while (1) {      // Trim any suffix off. -    UniqueName.resize(NameLen); +    UniqueName.resize(Name.size());      UniqueName.append_uint_32(++LastUnique);      // Try insert the vmap entry with this suffix.  | 

