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
This commit is contained in:
Chris Lattner 2005-03-06 06:03:44 +00:00
parent c0d369d879
commit bf4515e218

View File

@ -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
/// @{