//
// The LLVM Compiler Infrastructure
//
-// This file was developed by Reid Spencer based on the original SymbolTable
-// implemented by the LLVM Research Group and re-written by Reid Spencer.
-// It is distributed under the University of Illinois Open Source License.
-// See LICENSE.TXT for details.
+// This file was developed by Reid Spencer. It is distributed under the
+// University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
/// @{
public:
- TypeSymbolTable() {}
+ TypeSymbolTable():LastUnique(0) {}
~TypeSymbolTable();
/// @}
/// @{
public:
- /// This method will strip the symbol table of its names
- /// @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.
/// Remove a type at the specified position in the symbol table.
/// @returns the removed Type.
/// @returns the Type that was erased from the symbol table.
- Type* erase(iterator TI);
-
- /// Remove a specific Type from the symbol table. This isn't fast, linear
- /// search, O(n), algorithm.
- /// @returns true if the erase was successful (TI was found)
- bool erase(Type* TI);
-
- /// Rename a type. This ain't fast, we have to linearly search for it first.
- /// @returns true if the rename was successful (type was found)
- bool rename(Type* T, const std::string& new_name);
+ Type* remove(iterator TI);
/// @}
/// @name AbstractTypeUser Methods
/// @{
private:
TypeMap tmap; ///< This is the mapping of names to types.
- mutable unsigned long LastUnique; ///< Counter for tracking unique names
+ mutable uint32_t LastUnique; ///< Counter for tracking unique names
/// @}