summaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO/PassManagerBuilder.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-10-26 18:47:48 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-10-26 18:47:48 +0000
commite5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d (patch)
treeb1d115aa6a3dc373465e36d381e147ada50e1b03 /lib/Transforms/IPO/PassManagerBuilder.cpp
parent276c43f022fa4a84a7c69b3d68a58e8613f69e47 (diff)
downloadllvm-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.cpp7
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