diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2014-01-14 09:40:18 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2014-01-14 09:40:18 +0000 |
commit | d13b9da1b6575329cebcaadb31fcf8f200cbd2c6 (patch) | |
tree | 8470325bcc2c972cf1b5091769c022e5b47bf650 /lib/Transforms/IPO/Internalize.cpp | |
parent | 8e31bc35ecd78d23fc5999f4dd24d8152a97f0fa (diff) | |
download | llvm-d13b9da1b6575329cebcaadb31fcf8f200cbd2c6.tar.gz llvm-d13b9da1b6575329cebcaadb31fcf8f200cbd2c6.tar.bz2 llvm-d13b9da1b6575329cebcaadb31fcf8f200cbd2c6.tar.xz |
Revert r199191, "LTO: add API to set strategy for -internalize"
Please update also Other/link-opts.ll, in next time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199197 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/Internalize.cpp')
-rw-r--r-- | lib/Transforms/IPO/Internalize.cpp | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index 775ca96851..dae69ce091 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -54,11 +54,10 @@ APIList("internalize-public-api-list", cl::value_desc("list"), namespace { class InternalizePass : public ModulePass { std::set<std::string> ExternalNames; - bool OnlyHidden; public: static char ID; // Pass identification, replacement for typeid - explicit InternalizePass(bool OnlyHidden = false); - explicit InternalizePass(ArrayRef<const char *> ExportList, bool OnlyHidden); + explicit InternalizePass(); + explicit InternalizePass(ArrayRef<const char *> ExportList); void LoadFile(const char *Filename); virtual bool runOnModule(Module &M); @@ -73,17 +72,16 @@ char InternalizePass::ID = 0; INITIALIZE_PASS(InternalizePass, "internalize", "Internalize Global Symbols", false, false) -InternalizePass::InternalizePass(bool OnlyHidden) - : ModulePass(ID), OnlyHidden(OnlyHidden) { +InternalizePass::InternalizePass() + : ModulePass(ID) { initializeInternalizePassPass(*PassRegistry::getPassRegistry()); if (!APIFile.empty()) // If a filename is specified, use it. LoadFile(APIFile.c_str()); ExternalNames.insert(APIList.begin(), APIList.end()); } -InternalizePass::InternalizePass(ArrayRef<const char *> ExportList, - bool OnlyHidden) - : ModulePass(ID), OnlyHidden(OnlyHidden) { +InternalizePass::InternalizePass(ArrayRef<const char *> ExportList) + : ModulePass(ID){ initializeInternalizePassPass(*PassRegistry::getPassRegistry()); for(ArrayRef<const char *>::const_iterator itr = ExportList.begin(); itr != ExportList.end(); itr++) { @@ -108,11 +106,7 @@ void InternalizePass::LoadFile(const char *Filename) { } static bool shouldInternalize(const GlobalValue &GV, - const std::set<std::string> &ExternalNames, - bool OnlyHidden) { - if (OnlyHidden && !GV.hasHiddenVisibility()) - return false; - + const std::set<std::string> &ExternalNames) { // Function must be defined here if (GV.isDeclaration()) return false; @@ -161,8 +155,9 @@ bool InternalizePass::runOnModule(Module &M) { } // Mark all functions not in the api as internal. + // FIXME: maybe use private linkage? for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) { - if (!shouldInternalize(*I, ExternalNames, OnlyHidden)) + if (!shouldInternalize(*I, ExternalNames)) continue; I->setLinkage(GlobalValue::InternalLinkage); @@ -196,9 +191,10 @@ bool InternalizePass::runOnModule(Module &M) { // Mark all global variables with initializers that are not in the api as // internal as well. + // FIXME: maybe use private linkage? for (Module::global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) { - if (!shouldInternalize(*I, ExternalNames, OnlyHidden)) + if (!shouldInternalize(*I, ExternalNames)) continue; I->setLinkage(GlobalValue::InternalLinkage); @@ -210,7 +206,7 @@ bool InternalizePass::runOnModule(Module &M) { // Mark all aliases that are not in the api as internal as well. for (Module::alias_iterator I = M.alias_begin(), E = M.alias_end(); I != E; ++I) { - if (!shouldInternalize(*I, ExternalNames, OnlyHidden)) + if (!shouldInternalize(*I, ExternalNames)) continue; I->setLinkage(GlobalValue::InternalLinkage); @@ -222,11 +218,10 @@ bool InternalizePass::runOnModule(Module &M) { return Changed; } -ModulePass *llvm::createInternalizePass(bool OnlyHidden) { - return new InternalizePass(OnlyHidden); +ModulePass *llvm::createInternalizePass() { + return new InternalizePass(); } -ModulePass *llvm::createInternalizePass(ArrayRef<const char *> ExportList, - bool OnlyHidden) { - return new InternalizePass(ExportList, OnlyHidden); +ModulePass *llvm::createInternalizePass(ArrayRef<const char *> ExportList) { + return new InternalizePass(ExportList); } |