X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FTypeSymbolTable.h;h=55b8b7a3d9aff26f80d5e77aea5f4055b68fb60f;hb=cdfad36b401be6fc709ea4051f9de58e1a30bcc9;hp=0ed44ba96abbfd16ac6a1e3cb07b3cfd02bf37b8;hpb=d68a07650cdb2e18f18f362ba533459aa10e01b6;p=oota-llvm.git diff --git a/include/llvm/TypeSymbolTable.h b/include/llvm/TypeSymbolTable.h index 0ed44ba96ab..55b8b7a3d9a 100644 --- a/include/llvm/TypeSymbolTable.h +++ b/include/llvm/TypeSymbolTable.h @@ -15,6 +15,8 @@ #define LLVM_TYPE_SYMBOL_TABLE_H #include "llvm/Type.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/System/DataTypes.h" #include namespace llvm { @@ -55,14 +57,28 @@ public: /// incrementing an integer and appending it to the name, if necessary /// @returns the unique name /// @brief Get a unique name for a type - std::string getUniqueName(const std::string &BaseName) const; + std::string getUniqueName(StringRef BaseName) const; /// This method finds the type with the given \p name in the type map /// and returns it. /// @returns null if the name is not found, otherwise the Type /// associated with the \p name. /// @brief Lookup a type by name. - Type* lookup(const std::string& name) const; + Type *lookup(StringRef name) const; + + /// Lookup the type associated with name. + /// @returns end() if the name is not found, or an iterator at the entry for + /// Type. + iterator find(StringRef Name) { + return tmap.find(Name); + } + + /// Lookup the type associated with name. + /// @returns end() if the name is not found, or an iterator at the entry for + /// Type. + const_iterator find(StringRef Name) const { + return tmap.find(Name); + } /// @returns true iff the symbol table is empty. /// @brief Determine if the symbol table is empty @@ -87,7 +103,7 @@ public: /// @brief Get a const_iterator to the start of the symbol table inline const_iterator begin() const { return tmap.begin(); } - /// Get an iterator to the end of the symbol talbe. + /// Get an iterator to the end of the symbol table. inline iterator end() { return tmap.end(); } /// Get a const_iterator to the end of the symbol table. @@ -102,7 +118,7 @@ public: /// 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); + void insert(StringRef Name, const Type *Typ); /// Remove a type at the specified position in the symbol table. /// @returns the removed Type.