diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-10-26 18:47:48 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-10-26 18:47:48 +0000 |
commit | e5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d (patch) | |
tree | b1d115aa6a3dc373465e36d381e147ada50e1b03 /lib/Transforms/IPO/PassManagerBuilder.cpp | |
parent | 276c43f022fa4a84a7c69b3d68a58e8613f69e47 (diff) | |
download | llvm-e5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d.tar.gz llvm-e5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d.tar.bz2 llvm-e5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d.tar.xz |
Change the internalize pass to internalize all symbols when given an empty
list of externals. This makes sense since a shared library with no symbols
can still be useful if it has static constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166795 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/PassManagerBuilder.cpp')
-rw-r--r-- | lib/Transforms/IPO/PassManagerBuilder.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Transforms/IPO/PassManagerBuilder.cpp b/lib/Transforms/IPO/PassManagerBuilder.cpp index 1d8f1e531a..e3bc94e7e6 100644 --- a/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -245,8 +245,11 @@ void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM, // Now that composite has been compiled, scan through the module, looking // for a main function. If main is defined, mark all other functions // internal. - if (Internalize) - PM.add(createInternalizePass(true)); + if (Internalize) { + std::vector<const char*> E; + E.push_back("main"); + PM.add(createInternalizePass(E)); + } // Propagate constants at call sites into the functions they call. This // opens opportunities for globalopt (and inlining) by substituting function |