From eaadf5827692ae713faa6b38175559568c3dba26 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 6 Mar 2005 02:10:40 +0000 Subject: [PATCH] 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 --- include/llvm/SymbolTable.h | 8 ++++++++ include/llvm/Value.h | 2 ++ 2 files changed, 10 insertions(+) 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 -- 2.34.1