diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-05 20:10:38 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-05 20:10:38 +0000 |
commit | f9e52cf01563975a1d6e7a09a6f044ec3fbaf5cf (patch) | |
tree | e8235cd36ff905d21f3007a5d8f9c5cab898937c /llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | |
parent | c03b6e78809b120f482604b3047c3888879ee29e (diff) | |
download | bcm5719-llvm-f9e52cf01563975a1d6e7a09a6f044ec3fbaf5cf.tar.gz bcm5719-llvm-f9e52cf01563975a1d6e7a09a6f044ec3fbaf5cf.zip |
Don't internalize all but main by default.
This is mostly a cleanup, but it changes a fairly old behavior.
Every "real" LTO user was already disabling the silly internalize pass
and creating the internalize pass itself. The difference with this
patch is for "opt -std-link-opts" and the C api.
Now to get a usable behavior out of opt one doesn't need the funny
looking command line:
opt -internalize -disable-internalize -internalize-public-api-list=foo,bar -std-link-opts
llvm-svn: 214919
Diffstat (limited to 'llvm/lib/Transforms/IPO/PassManagerBuilder.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 98477b5d71f..3d846b01d3a 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -284,18 +284,11 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) { } void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM, - bool Internalize, bool RunInliner, bool DisableGVNLoadPRE) { // Provide AliasAnalysis services for optimizations. addInitialAliasAnalysisPasses(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("main")); - // Propagate constants at call sites into the functions they call. This // opens opportunities for globalopt (and inlining) by substituting function // pointers passed as arguments to direct uses of functions. @@ -461,5 +454,5 @@ void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, LLVMBool RunInliner) { PassManagerBuilder *Builder = unwrap(PMB); PassManagerBase *LPM = unwrap(PM); - Builder->populateLTOPassManager(*LPM, Internalize != 0, RunInliner != 0); + Builder->populateLTOPassManager(*LPM, RunInliner != 0, false); } |