added ability to dynamically change the ExportList of an already
authorPedro Artigas <partigas@apple.com>
Fri, 25 Jan 2013 19:41:03 +0000 (19:41 +0000)
committerPedro Artigas <partigas@apple.com>
Fri, 25 Jan 2013 19:41:03 +0000 (19:41 +0000)
created InternalizePass (useful for pass reuse)

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

lib/Transforms/IPO/Internalize.cpp

index 70d55b006150e2ece0992114ecdbbcaebd289ef8..4bfab5b0afbd2c424603a74252d5c08042150319 100644 (file)
@@ -50,6 +50,8 @@ namespace {
     explicit InternalizePass();
     explicit InternalizePass(ArrayRef<const char *> exportList);
     void LoadFile(const char *Filename);
+    void ClearExportList();
+    void AddToExportList(const std::string &val);
     virtual bool runOnModule(Module &M);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -97,6 +99,14 @@ void InternalizePass::LoadFile(const char *Filename) {
   }
 }
 
+void InternalizePass::ClearExportList() {
+  ExternalNames.clear();
+}
+
+void InternalizePass::AddToExportList(const std::string &val) {
+  ExternalNames.insert(val);
+}
+
 bool InternalizePass::runOnModule(Module &M) {
   CallGraph *CG = getAnalysisIfAvailable<CallGraph>();
   CallGraphNode *ExternalNode = CG ? CG->getExternalCallingNode() : 0;