Add new constructor to accept vector of exported names while creating
authorDevang Patel <dpatel@apple.com>
Thu, 20 Jul 2006 17:48:05 +0000 (17:48 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 20 Jul 2006 17:48:05 +0000 (17:48 +0000)
InternalizePass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29222 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/IPO.h
lib/Transforms/IPO/Internalize.cpp

index eba40b8516bdd1b487358ecd559411aaaa035b0a..54e6b3459e24eccc0c2fa81ad2ab2cfa9beec959 100644 (file)
@@ -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<const char *> &exportList);
 
 //===----------------------------------------------------------------------===//
 /// createDeadArgEliminationPass - This pass removes arguments from functions
index 4bfc5a2186baa784cb2105b807f68fd1939fb840..0874ce5a0189d69b44b9291cb0752f64ca41b1b8 100644 (file)
@@ -45,6 +45,7 @@ namespace {
     bool DontInternalize;
   public:
     InternalizePass(bool InternalizeEverything = true);
+    InternalizePass(const std::vector <const char *>& 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<const char *>&exportList) {
+  for(std::vector<const char *>::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 <const char *> &exportList) {
+  return new InternalizePass(exportList);
+}