[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'
[oota-llvm.git] / include / llvm / Transforms / IPO.h
index e6eb8d38bb8ca738323b82b9ad6272a24b556098..b4f65b25d5f1d87916e293d0c575f1f3638ce6d0 100644 (file)
@@ -104,14 +104,23 @@ Pass *createPruneEHPass();
 
 //===----------------------------------------------------------------------===//
 /// createInternalizePass - This pass loops over all of the functions in the
-/// input module, internalizing all globals (functions and variables) not in the
-/// given exportList.
+/// input module, internalizing all globals (functions and variables) it can.
+////
+/// The symbols in \p ExportList are never internalized.
+///
+/// When OnlyHidden=true, only symbols with hidden visibility are internalized.
+///
+/// The symbol in DSOList are internalized if it is safe to drop them from
+/// the symbol table.
 ///
 /// Note that commandline options that are used with the above function are not
 /// used now!
-ModulePass *createInternalizePass(ArrayRef<const char *> exportList);
+ModulePass *createInternalizePass(ArrayRef<const char *> ExportList,
+                                  bool OnlyHidden = false);
 /// createInternalizePass - Same as above, but with an empty exportList.
-ModulePass *createInternalizePass();
+ModulePass *createInternalizePass(bool OnlyHidden = false);
+/// createInternalizePass - Resolve ambiguity when passed a const char *.
+ModulePass *createInternalizePass(const char *SingleExport);
 
 //===----------------------------------------------------------------------===//
 /// createDeadArgEliminationPass - This pass removes arguments from functions