X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FTransforms%2FIPO.h;h=11a0acfc6a4c64b551b63637371bb0a448d16f65;hb=67af0456bc713b1f27e7b38bae1bf707172b8cdf;hp=fc1cd59e4e10fd7541989d1b1f169ca9592a1272;hpb=e5551ed9cec1ae777c4e4b8852a1d7842c2e1c3d;p=oota-llvm.git diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h index fc1cd59e4e1..11a0acfc6a4 100644 --- a/include/llvm/Transforms/IPO.h +++ b/include/llvm/Transforms/IPO.h @@ -15,7 +15,7 @@ #ifndef LLVM_TRANSFORMS_IPO_H #define LLVM_TRANSFORMS_IPO_H -#include +#include "llvm/ADT/ArrayRef.h" namespace llvm { @@ -104,14 +104,21 @@ 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(const std::vector &exportList); +ModulePass *createInternalizePass(ArrayRef ExportList, + bool OnlyHidden = false); /// createInternalizePass - Same as above, but with an empty exportList. -ModulePass *createInternalizePass(); +ModulePass *createInternalizePass(bool OnlyHidden = false); //===----------------------------------------------------------------------===// /// createDeadArgEliminationPass - This pass removes arguments from functions