Add new addTypeName method to Module class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2037 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-03-29 04:48:40 +00:00
parent b408b12556
commit 68e5ed8dbe
2 changed files with 21 additions and 0 deletions

View File

@ -63,6 +63,12 @@ public:
//
Function *getFunction(const std::string &Name, const FunctionType *Ty);
// 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 addTypeName(const std::string &Name, const Type *Ty);
// Get the underlying elements of the Module...
inline const GlobalListType &getGlobalList() const { return GlobalList; }
inline GlobalListType &getGlobalList() { return GlobalList; }

View File

@ -70,6 +70,21 @@ 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 = getSymbolTableSure();
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;
}
// dropAllReferences() - This function causes all the subinstructions to "let