Change inline asms to be uniqued like constants, not embedded in a Module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25610 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2006-01-25 18:57:27 +00:00
parent ee4a76563a
commit 863517aea0
5 changed files with 19 additions and 108 deletions
-17
View File
@@ -44,30 +44,17 @@ GlobalVariable *ilist_traits<GlobalVariable>::createSentinel() {
return Ret;
}
InlineAsm *ilist_traits<InlineAsm>::createSentinel() {
InlineAsm *Ret = new InlineAsm(FunctionType::get(Type::VoidTy,
std::vector<const Type*>(), false), "", "",
false);
// This should not be garbage monitored.
LeakDetector::removeGarbageObject(Ret);
return Ret;
}
iplist<Function> &ilist_traits<Function>::getList(Module *M) {
return M->getFunctionList();
}
iplist<GlobalVariable> &ilist_traits<GlobalVariable>::getList(Module *M) {
return M->getGlobalList();
}
iplist<InlineAsm> &ilist_traits<InlineAsm>::getList(Module *M) {
return M->getInlineAsmList();
}
// Explicit instantiations of SymbolTableListTraits since some of the methods
// are not in the public header file.
template class SymbolTableListTraits<GlobalVariable, Module, Module>;
template class SymbolTableListTraits<Function, Module, Module>;
template class SymbolTableListTraits<InlineAsm, Module, Module>;
//===----------------------------------------------------------------------===//
// Primitive Module methods.
@@ -79,8 +66,6 @@ Module::Module(const std::string &MID)
FunctionList.setParent(this);
GlobalList.setItemParent(this);
GlobalList.setParent(this);
InlineAsmList.setItemParent(this);
InlineAsmList.setParent(this);
SymTab = new SymbolTable();
}
@@ -90,8 +75,6 @@ Module::~Module() {
GlobalList.setParent(0);
FunctionList.clear();
FunctionList.setParent(0);
InlineAsmList.clear();
InlineAsmList.setParent(0);
LibraryList.clear();
delete SymTab;
}