From: Chris Lattner Date: Sun, 6 Mar 2005 02:10:40 +0000 (+0000) Subject: Add a new method, allow symtab to poke name. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=eaadf5827692ae713faa6b38175559568c3dba26;p=oota-llvm.git Add a new method, allow symtab to poke name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20468 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/SymbolTable.h b/include/llvm/SymbolTable.h index 3fe4b04e19e..7df189896ee 100644 --- a/include/llvm/SymbolTable.h +++ b/include/llvm/SymbolTable.h @@ -217,6 +217,14 @@ public: return this->removeEntry(pmap.find(It->second->getType()), It); } + /// changeName - Given a value with a non-empty name, remove its existing + /// entry from the symbol table and insert a new one for Name. This is + /// equivalent to doing "remove(V), V->Name = Name, insert(V)", but is faster, + /// and will not temporarily remove the symbol table plane if V is the last + /// value in the symtab with that name (which could invalidate iterators to + /// that plane). + void changeName(Value *V, const std::string &Name); + /// This method will strip the symbol table of its names leaving /// the type and values. /// @brief Strip the symbol table. diff --git a/include/llvm/Value.h b/include/llvm/Value.h index 164c7ee811c..aef08453a6f 100644 --- a/include/llvm/Value.h +++ b/include/llvm/Value.h @@ -50,6 +50,8 @@ protected: private: PATypeHolder Ty; Use *UseList; + + friend class SymbolTable; // Allow SymbolTable to directly poke Name. std::string Name; void operator=(const Value &); // Do not implement