diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-12-10 21:33:45 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-12-10 21:33:45 +0000 |
commit | 4a8fc8f27177366a5649744a45c72c2efa1f99f5 (patch) | |
tree | f548616aca4483346a3bb970eb7bf143fddb2573 /llvm/tools/lto | |
parent | dcb992d474144b04aa6c8e6f37bc4cfb0f34bcfb (diff) | |
download | bcm5719-llvm-4a8fc8f27177366a5649744a45c72c2efa1f99f5.tar.gz bcm5719-llvm-4a8fc8f27177366a5649744a45c72c2efa1f99f5.zip |
Revert r169656.
The linker will call `lto_codegen_add_must_preserve_symbol' on all globals that
should be kept around. The linker will pretend that a dylib is being created.
<rdar://problem/12528059>
llvm-svn: 169770
Diffstat (limited to 'llvm/tools/lto')
-rw-r--r-- | llvm/tools/lto/LTOCodeGenerator.cpp | 12 | ||||
-rw-r--r-- | llvm/tools/lto/LTOCodeGenerator.h | 2 | ||||
-rw-r--r-- | llvm/tools/lto/lto.cpp | 6 | ||||
-rw-r--r-- | llvm/tools/lto/lto.exports | 1 |
4 files changed, 3 insertions, 18 deletions
diff --git a/llvm/tools/lto/LTOCodeGenerator.cpp b/llvm/tools/lto/LTOCodeGenerator.cpp index dfd8858cd83..cfaaf863b24 100644 --- a/llvm/tools/lto/LTOCodeGenerator.cpp +++ b/llvm/tools/lto/LTOCodeGenerator.cpp @@ -66,7 +66,7 @@ LTOCodeGenerator::LTOCodeGenerator() : _context(getGlobalContext()), _linker("LinkTimeOptimizer", "ld-temp.o", _context), _target(NULL), _emitDwarfDebugInfo(false), _scopeRestrictionsDone(false), - _exportDynamic(false), _codeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC), + _codeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC), _nativeObjectFile(NULL) { InitializeAllTargets(); InitializeAllTargetMCs(); @@ -339,8 +339,7 @@ void LTOCodeGenerator::applyScopeRestrictions() { LLVMCompilerUsed->setSection("llvm.metadata"); - if (!_exportDynamic) - passes.add(createInternalizePass(mustPreserveList)); + passes.add(createInternalizePass(mustPreserveList)); // apply scope restrictions passes.run(*mergedModule); @@ -379,12 +378,7 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out, // keeps only main if it exists and does nothing for libraries. Instead // we create the pass ourselves with the symbol list provided by the linker. PassManagerBuilder().populateLTOPassManager(passes, - /*Internalize=*/ - // FIXME: remove 'false' once - // Darwin linker can pass this - // option. - // <rdar://problem/12839986> - false /*!_exportDynamic*/, + /*Internalize=*/false, !DisableInline, DisableGVNLoadPRE); diff --git a/llvm/tools/lto/LTOCodeGenerator.h b/llvm/tools/lto/LTOCodeGenerator.h index db2a0fe50f9..601dbfa0449 100644 --- a/llvm/tools/lto/LTOCodeGenerator.h +++ b/llvm/tools/lto/LTOCodeGenerator.h @@ -44,7 +44,6 @@ struct LTOCodeGenerator { bool setCodePICModel(lto_codegen_model, std::string &errMsg); void setCpu(const char* mCpu) { _mCpu = mCpu; } - void setExportDynamic(bool V) { _exportDynamic = V; } void addMustPreserveSymbol(const char* sym) { _mustPreserveSymbols[sym] = 1; @@ -71,7 +70,6 @@ private: llvm::TargetMachine* _target; bool _emitDwarfDebugInfo; bool _scopeRestrictionsDone; - bool _exportDynamic; lto_codegen_model _codeModel; StringSet _mustPreserveSymbols; StringSet _asmUndefinedRefs; diff --git a/llvm/tools/lto/lto.cpp b/llvm/tools/lto/lto.cpp index 630e7045a5a..11ad532be89 100644 --- a/llvm/tools/lto/lto.cpp +++ b/llvm/tools/lto/lto.cpp @@ -174,12 +174,6 @@ void lto_codegen_set_assembler_args(lto_code_gen_t cg, const char **args, // In here only for backwards compatibility. We use MC now. } -/// lto_codegen_set_export_dynamic - If set, then codegen will export all -/// symbols (e.g. the internalize pass won't run). -void lto_codegen_set_export_dynamic(lto_code_gen_t cg, bool val) { - cg->setExportDynamic(val); -} - /// lto_codegen_add_must_preserve_symbol - Adds to a list of all global symbols /// that must exist in the final generated code. If a function is not listed /// there, it might be inlined into every usage and optimized away. diff --git a/llvm/tools/lto/lto.exports b/llvm/tools/lto/lto.exports index 411f1e3f221..46d0d74c82a 100644 --- a/llvm/tools/lto/lto.exports +++ b/llvm/tools/lto/lto.exports @@ -27,7 +27,6 @@ lto_codegen_debug_options lto_codegen_set_assembler_args lto_codegen_set_assembler_path lto_codegen_set_cpu -lto_codegen_set_export_dynamic lto_codegen_compile_to_file LLVMCreateDisasm LLVMCreateDisasmCPU |