From: Chris Lattner Date: Sun, 6 Mar 2005 06:03:44 +0000 (+0000) Subject: move some method declarations around to make it clear that users should X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bf4515e2188bdddf26a748d5f3ac0a2c02270f51;p=oota-llvm.git move some method declarations around to make it clear that users should not call insert(Value *Val), remove(Value* Val), or changeName(Value *V, const std::string &Name) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20488 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/SymbolTable.h b/include/llvm/SymbolTable.h index fab16f02342..86df3178a14 100644 --- a/include/llvm/SymbolTable.h +++ b/include/llvm/SymbolTable.h @@ -115,61 +115,13 @@ public: /// for the specified type. /// @brief Get a name unique to this symbol table std::string getUniqueName(const Type *Ty, - const std::string &BaseName) const; + const std::string &BaseName) const; /// This function can be used from the debugger to display the /// content of the symbol table while debugging. /// @brief Print out symbol table on stderr void dump() const; -/// @} -/// @name Mutators -/// @{ -public: - - /// This method adds the provided value \p N to the symbol table. - /// The Value must have both a name and a type which are extracted - /// and used to place the value in the correct type plane under - /// the value's name. - /// @brief Add a named value to the symbol table - inline void insert(Value *Val) { - assert(Val && "Can't insert null type into symbol table!"); - assert(Val->hasName() && "Value must be named to go into symbol table!"); - insertEntry(Val->getName(), Val->getType(), Val); - } - - /// Inserts a type into the symbol table with the specified name. There - /// can be a many-to-one mapping between names and types. This method - /// allows a type with an existing entry in the symbol table to get - /// a new name. - /// @brief Insert a type under a new name. - void insert(const std::string &Name, const Type *Typ); - - /// This method removes a named value from the symbol table. The - /// type and name of the Value are extracted from \p N and used to - /// lookup the Value in the correct type plane. If the Value is - /// not in the symbol table, this method silently ignores the - /// request. - /// @brief Remove a named value from the symbol table. - void remove(Value* Val); - - /// Remove a type at the specified position in the symbol table. - /// @returns the removed Type. - Type* remove(type_iterator TI); - - /// 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. - bool strip(); - /// @} /// @name Iteration /// @{ @@ -255,6 +207,57 @@ public: return pmap.find(Typ); } + +/// @} +/// @name Mutators +/// @{ +public: + + /// This method will strip the symbol table of its names leaving the type and + /// values. + /// @brief Strip the symbol table. + bool strip(); + + /// Inserts a type into the symbol table with the specified name. There can be + /// a many-to-one mapping between names and types. This method allows a type + /// with an existing entry in the symbol table to get a new name. + /// @brief Insert a type under a new name. + void insert(const std::string &Name, const Type *Typ); + + /// Remove a type at the specified position in the symbol table. + /// @returns the removed Type. + Type* remove(type_iterator TI); + +/// @} +/// @name Mutators used by Value::setName and other LLVM internals. +/// @{ +public: + + /// This method adds the provided value \p N to the symbol table. The Value + /// must have both a name and a type which are extracted and used to place the + /// value in the correct type plane under the value's name. + /// @brief Add a named value to the symbol table + inline void insert(Value *Val) { + assert(Val && "Can't insert null type into symbol table!"); + assert(Val->hasName() && "Value must be named to go into symbol table!"); + insertEntry(Val->getName(), Val->getType(), Val); + } + + /// This method removes a named value from the symbol table. The type and name + /// of the Value are extracted from \p N and used to lookup the Value in the + /// correct type plane. If the Value is not in the symbol table, this method + /// silently ignores the request. + /// @brief Remove a named value from the symbol table. + void remove(Value* Val); + + /// 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); + /// @} /// @name Internal Methods /// @{