From: Devang Patel Date: Mon, 23 Oct 2006 23:12:26 +0000 (+0000) Subject: Add removeModule(). X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f2ca21f88f4e38996b6804dfa25fe7a72814736d;p=oota-llvm.git Add removeModule(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31142 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/LinkTimeOptimizer.h b/include/llvm/LinkTimeOptimizer.h index 654623adff8..6c58706cf93 100644 --- a/include/llvm/LinkTimeOptimizer.h +++ b/include/llvm/LinkTimeOptimizer.h @@ -91,6 +91,7 @@ namespace llvm { std::vector &, std::string &) = 0; virtual void getTargetTriple(const std::string &, std::string &) = 0; + virtual void removeModule (const std::string &InputFilename) = 0; virtual ~LinkTimeOptimizer() = 0; }; @@ -111,6 +112,7 @@ namespace llvm { std::vector &exportList, std::string &targetTriple); void getTargetTriple(const std::string &InputFilename, std::string &targetTriple); + void removeModule (const std::string &InputFilename); private: Module *getModule (const std::string &InputFilename); diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp index c4face2712a..b9d76d67381 100644 --- a/tools/lto/lto.cpp +++ b/tools/lto/lto.cpp @@ -102,6 +102,18 @@ findExternalRefs(Value *value, std::set &references, findExternalRefs(c->getOperand(i), references, mangler); } +/// If Moduel with InputFilename is available then remove it. +void +LTO::removeModule (const std::string &InputFilename) +{ + NameToModuleMap::iterator pos = allModules.find(InputFilename.c_str()); + if (pos != allModules.end()) { + Module *m = allModules[InputFilename.c_str()]; + allModules.erase(pos); + delete m; + } +} + /// InputFilename is a LLVM bytecode file. If Module with InputFilename is /// available then return it. Otherwise parseInputFilename. Module *