summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-05-04 04:08:02 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-05-04 04:08:02 +0000
commit287f18b4b82dd59c827b1f7b496b8f62dfcc1c7f (patch)
treec2721970e964ac67365b47870b9908341052aa8e /llvm/lib
parent17fbf6edc22616e497963c7199669456692f9c66 (diff)
downloadbcm5719-llvm-287f18b4b82dd59c827b1f7b496b8f62dfcc1c7f.tar.gz
bcm5719-llvm-287f18b4b82dd59c827b1f7b496b8f62dfcc1c7f.zip
Implement Linker::LinkModules with Linker::linkInModule.
Flipping which one is the implementation will let us optimize linkInModule. llvm-svn: 181102
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Linker/LinkModules.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp
index 161c269ef0a..9801966f9d5 100644
--- a/llvm/lib/Linker/LinkModules.cpp
+++ b/llvm/lib/Linker/LinkModules.cpp
@@ -1287,7 +1287,13 @@ Linker::~Linker() {
}
bool Linker::linkInModule(Module *Src, unsigned Mode, std::string *ErrorMsg) {
- return LinkModules(Composite, Src, Linker::DestroySource, ErrorMsg);
+ ModuleLinker TheLinker(Composite, Src, Mode);
+ if (TheLinker.run()) {
+ if (ErrorMsg)
+ *ErrorMsg = TheLinker.ErrorMsg;
+ return true;
+ }
+ return false;
}
//===----------------------------------------------------------------------===//
@@ -1301,13 +1307,8 @@ bool Linker::linkInModule(Module *Src, unsigned Mode, std::string *ErrorMsg) {
/// and shouldn't be relied on to be consistent.
bool Linker::LinkModules(Module *Dest, Module *Src, unsigned Mode,
std::string *ErrorMsg) {
- ModuleLinker TheLinker(Dest, Src, Mode);
- if (TheLinker.run()) {
- if (ErrorMsg) *ErrorMsg = TheLinker.ErrorMsg;
- return true;
- }
-
- return false;
+ Linker L(Dest);
+ return L.linkInModule(Src, Mode, ErrorMsg);
}
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud