* Make Module::getTypeName const

* Add new Module::getTypeByName method
* Group methods in Module.cpp better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10668 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-12-31 07:09:33 +00:00
parent 69284b03d1
commit 6d28a268c3
2 changed files with 28 additions and 17 deletions

View File

@ -132,7 +132,11 @@ public:
/// getTypeName - If there is at least one entry in the symbol table for the
/// specified type, return it.
///
std::string getTypeName(const Type *Ty);
std::string getTypeName(const Type *Ty) const;
/// getTypeByName - Return the type with the specified name in this module, or
/// null if there is none by that name.
const Type *getTypeByName(const std::string &Name) const;
/// Get the underlying elements of the Module...
inline const GlobalListType &getGlobalList() const { return GlobalList; }

View File

@ -137,21 +137,6 @@ Function *Module::getFunction(const std::string &Name, const FunctionType *Ty) {
return cast_or_null<Function>(SymTab.lookup(PointerType::get(Ty), Name));
}
// addTypeName - Insert an entry in the symbol table mapping Str to Type. If
// there is already an entry for this name, true is returned and the symbol
// table is not modified.
//
bool Module::addTypeName(const std::string &Name, const Type *Ty) {
SymbolTable &ST = getSymbolTable();
if (ST.lookup(Type::TypeTy, Name)) return true; // Already in symtab...
// Not in symbol table? Set the name with the Symtab as an argument so the
// type knows what to update...
((Value*)Ty)->setName(Name, &ST);
return false;
}
/// getMainFunction - This function looks up main efficiently. This is such a
/// common case, that it is a method in Module. If main cannot be found, a
@ -217,11 +202,33 @@ Function *Module::getNamedFunction(const std::string &Name) {
}
// addTypeName - Insert an entry in the symbol table mapping Str to Type. If
// there is already an entry for this name, true is returned and the symbol
// table is not modified.
//
bool Module::addTypeName(const std::string &Name, const Type *Ty) {
SymbolTable &ST = getSymbolTable();
if (ST.lookup(Type::TypeTy, Name)) return true; // Already in symtab...
// Not in symbol table? Set the name with the Symtab as an argument so the
// type knows what to update...
((Value*)Ty)->setName(Name, &ST);
return false;
}
/// getTypeByName - Return the type with the specified name in this module, or
/// null if there is none by that name.
const Type *Module::getTypeByName(const std::string &Name) const {
const SymbolTable &ST = getSymbolTable();
return cast_or_null<Type>(ST.lookup(Type::TypeTy, Name));
}
// getTypeName - If there is at least one entry in the symbol table for the
// specified type, return it.
//
std::string Module::getTypeName(const Type *Ty) {
std::string Module::getTypeName(const Type *Ty) const {
const SymbolTable &ST = getSymbolTable();
if (ST.find(Type::TypeTy) == ST.end())
return ""; // No names for types...