Implement Linker::LinkModules with Linker::linkInModule.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 4 May 2013 04:08:02 +0000 (04:08 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 4 May 2013 04:08:02 +0000 (04:08 +0000)
Flipping which one is the implementation will let us optimize linkInModule.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181102 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Linker/LinkModules.cpp

index 161c269ef0a02eeccb7b58a5ad2aaa0a64f65880..9801966f9d53cf78fae896e15762e283ff7b386e 100644 (file)
@@ -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);
 }
 
 //===----------------------------------------------------------------------===//