diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-04 05:30:49 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-04 05:30:49 +0000 |
commit | c1685b3a5052de377735f69e53e50741dbe5b52a (patch) | |
tree | e91b8ba1515c70c7236bb6b8b479d4e432dfd15c /tools | |
parent | cfb320f5f97717c309832e0f92b97835526977a8 (diff) | |
download | external_llvm-c1685b3a5052de377735f69e53e50741dbe5b52a.zip external_llvm-c1685b3a5052de377735f69e53e50741dbe5b52a.tar.gz external_llvm-c1685b3a5052de377735f69e53e50741dbe5b52a.tar.bz2 |
Optimize llvm-link too.
This takes the linking of almost all modules in a clang build from 6:32
to 0:19.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181105 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/llvm-link/llvm-link.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp index 3a2d84a..01a61c6 100644 --- a/tools/llvm-link/llvm-link.cpp +++ b/tools/llvm-link/llvm-link.cpp @@ -93,6 +93,7 @@ int main(int argc, char **argv) { return 1; } + Linker L(Composite.get()); for (unsigned i = BaseArg+1; i < InputFilenames.size(); ++i) { OwningPtr<Module> M(LoadFile(argv[0], InputFilenames[i], Context)); if (M.get() == 0) { @@ -102,8 +103,7 @@ int main(int argc, char **argv) { if (Verbose) errs() << "Linking in '" << InputFilenames[i] << "'\n"; - if (Linker::LinkModules(Composite.get(), M.get(), Linker::DestroySource, - &ErrorMessage)) { + if (L.linkInModule(M.get(), &ErrorMessage)) { errs() << argv[0] << ": link error in '" << InputFilenames[i] << "': " << ErrorMessage << "\n"; return 1; |