From 753d94a1c8fe02f64eb4f482d396712c68db1d84 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 20 Jul 2006 17:48:05 +0000 Subject: [PATCH] Add new constructor to accept vector of exported names while creating InternalizePass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29222 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Transforms/IPO.h | 1 + lib/Transforms/IPO/Internalize.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h index eba40b8516b..54e6b3459e2 100644 --- a/include/llvm/Transforms/IPO.h +++ b/include/llvm/Transforms/IPO.h @@ -117,6 +117,7 @@ ModulePass *createPruneEHPass(); /// the main function is found, all other globals are marked as internal. /// ModulePass *createInternalizePass(bool InternalizeEverything); +ModulePass *createInternalizePass(const std::vector &exportList); //===----------------------------------------------------------------------===// /// createDeadArgEliminationPass - This pass removes arguments from functions diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index 4bfc5a2186b..0874ce5a018 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -45,6 +45,7 @@ namespace { bool DontInternalize; public: InternalizePass(bool InternalizeEverything = true); + InternalizePass(const std::vector & exportList); void LoadFile(const char *Filename); virtual bool runOnModule(Module &M); }; @@ -62,6 +63,13 @@ InternalizePass::InternalizePass(bool InternalizeEverything) DontInternalize = true; } +InternalizePass::InternalizePass(const std::vector&exportList) { + for(std::vector::const_iterator itr = exportList.begin(); + itr != exportList.end(); itr++) { + ExternalNames.insert(*itr); + } +} + void InternalizePass::LoadFile(const char *Filename) { // Load the APIFile... std::ifstream In(Filename); @@ -151,3 +159,7 @@ bool InternalizePass::runOnModule(Module &M) { ModulePass *llvm::createInternalizePass(bool InternalizeEverything) { return new InternalizePass(InternalizeEverything); } + +ModulePass *llvm::createInternalizePass(const std::vector &exportList) { + return new InternalizePass(exportList); +} -- 2.34.1