diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm-c/lto.h | 9 | ||||
-rw-r--r-- | include/llvm/LTO/LTOCodeGenerator.h | 6 | ||||
-rw-r--r-- | include/llvm/Transforms/IPO.h | 18 |
3 files changed, 1 insertions, 32 deletions
diff --git a/include/llvm-c/lto.h b/include/llvm-c/lto.h index a09db24f98..89f54b7a7b 100644 --- a/include/llvm-c/lto.h +++ b/include/llvm-c/lto.h @@ -270,15 +270,6 @@ lto_codegen_set_assembler_args(lto_code_gen_t cg, const char **args, extern void lto_codegen_add_must_preserve_symbol(lto_code_gen_t cg, const char* symbol); - -/** - * Tells LTO optimization passes that a dynamic shared library is being - * built and this symbol may be exported. Unless IR semantics allow the symbol - * to be made local to the library, it should remain so it can be exported by - * the shared library. - */ -extern void lto_codegen_add_dso_symbol(lto_code_gen_t cg, const char *symbol); - /** * Writes a new object file at the specified path that contains the * merged contents of all modules added so far. diff --git a/include/llvm/LTO/LTOCodeGenerator.h b/include/llvm/LTO/LTOCodeGenerator.h index 9f50770dcd..97a5066339 100644 --- a/include/llvm/LTO/LTOCodeGenerator.h +++ b/include/llvm/LTO/LTOCodeGenerator.h @@ -73,10 +73,6 @@ struct LTOCodeGenerator { void addMustPreserveSymbol(const char *sym) { MustPreserveSymbols[sym] = 1; } - void addDSOSymbol(const char* Sym) { - DSOSymbols[Sym] = 1; - } - // To pass options to the driver and optimization passes. These options are // not necessarily for debugging purpose (The function name is misleading). // This function should be called before LTOCodeGenerator::compilexxx(), @@ -130,7 +126,6 @@ private: void applyScopeRestrictions(); void applyRestriction(llvm::GlobalValue &GV, std::vector<const char*> &MustPreserveList, - std::vector<const char*> &SymtabList, llvm::SmallPtrSet<llvm::GlobalValue*, 8> &AsmUsed, llvm::Mangler &Mangler); bool determineTarget(std::string &errMsg); @@ -143,7 +138,6 @@ private: bool EmitDwarfDebugInfo; bool ScopeRestrictionsDone; lto_codegen_model CodeModel; - StringSet DSOSymbols; StringSet MustPreserveSymbols; StringSet AsmUndefinedRefs; llvm::MemoryBuffer *NativeObjectFile; diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h index ed2823098a..7f51c516b9 100644 --- a/include/llvm/Transforms/IPO.h +++ b/include/llvm/Transforms/IPO.h @@ -111,25 +111,9 @@ Pass *createPruneEHPass(); /// The symbol in DSOList are internalized if it is safe to drop them from /// the symbol table. /// -/// For example of the difference, consider a dynamic library being built from -/// two translation units. The first one compiled to a native object -/// (ELF/MachO/COFF) and second one compiled to IL. Translation unit A has a -/// copy of linkonce_odr unnamed_addr function F. The translation unit B has a -/// copy of the linkonce_odr unnamed_addr functions F and G. -/// -/// Assume the linker decides to keep the copy of F in B. This means that LLVM -/// must produce F in the object file it passes to the linker, otherwise we -/// will have an undefined reference. For G the situation is different. The -/// linker puts the function in the DSOList, since it is only wanted for the -/// symbol table. With this information internalize can now reason that since -/// the function is a linkonce_odr and its address is not important, it can be -/// omitted. Any other shared library needing this function will have a copy of -/// it. -/// /// Note that commandline options that are used with the above function are not /// used now! -ModulePass *createInternalizePass(ArrayRef<const char *> ExportList, - ArrayRef<const char *> DSOList); +ModulePass *createInternalizePass(ArrayRef<const char *> ExportList); /// createInternalizePass - Same as above, but with an empty exportList. ModulePass *createInternalizePass(); |