diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-01 21:06:50 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-01 21:09:02 +0100 |
| commit | d79459769832c5c1724ce1e7e7099edb945b1467 (patch) | |
| tree | 29284ef386e33ccb2c0339a32ee94bd985a3667a /src/librustc_codegen_llvm/back | |
| parent | f6e9a6e41cd9b1fb687e296b5a6d4c6ad399f862 (diff) | |
| download | rust-d79459769832c5c1724ce1e7e7099edb945b1467.tar.gz rust-d79459769832c5c1724ce1e7e7099edb945b1467.zip | |
Remove checks for LLVM < 4.0
While we still have to support LLVM 4.0 for Emscripten, we can drop checks for LLVM >= 4.0 and < 4.0.
Diffstat (limited to 'src/librustc_codegen_llvm/back')
| -rw-r--r-- | src/librustc_codegen_llvm/back/write.rs | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/librustc_codegen_llvm/back/write.rs b/src/librustc_codegen_llvm/back/write.rs index 81619c21975..dabfa4c540b 100644 --- a/src/librustc_codegen_llvm/back/write.rs +++ b/src/librustc_codegen_llvm/back/write.rs @@ -10,7 +10,7 @@ use attributes; use back::bytecode::{self, RLIB_BYTECODE_EXTENSION}; -use back::lto::{self, ModuleBuffer, ThinBuffer, SerializedModule}; +use back::lto::{self, ThinBuffer, SerializedModule}; use back::link::{self, get_linker, remove}; use back::command::Command; use back::linker::LinkerInfo; @@ -564,8 +564,8 @@ unsafe fn optimize(cgcx: &CodegenContext, // Some options cause LLVM bitcode to be emitted, which uses ThinLTOBuffers, so we need // to make sure we run LLVM's NameAnonGlobals pass when emitting bitcode; otherwise // we'll get errors in LLVM. - let using_thin_buffers = llvm::LLVMRustThinLTOAvailable() && (config.emit_bc - || config.obj_is_bitcode || config.emit_bc_compressed || config.embed_bitcode); + let using_thin_buffers = config.emit_bc || config.obj_is_bitcode + || config.emit_bc_compressed || config.embed_bitcode; let mut have_name_anon_globals_pass = false; if !config.no_prepopulate_passes { llvm::LLVMRustAddAnalysisPasses(tm, fpm, llmod); @@ -729,15 +729,8 @@ unsafe fn codegen(cgcx: &CodegenContext, if write_bc || config.emit_bc_compressed || config.embed_bitcode { - let thin; - let old; - let data = if llvm::LLVMRustThinLTOAvailable() { - thin = ThinBuffer::new(llmod); - thin.data() - } else { - old = ModuleBuffer::new(llmod); - old.data() - }; + let thin = ThinBuffer::new(llmod); + let data = thin.data(); timeline.record("make-bc"); if write_bc { @@ -1385,12 +1378,8 @@ fn execute_optimize_work_item(cgcx: &CodegenContext, // builds we don't actually want to LTO the allocator modules if // it shows up. This is due to various linker shenanigans that // we'll encounter later. - // - // Additionally here's where we also factor in the current LLVM - // version. If it doesn't support ThinLTO we skip this. Lto::ThinLocal => { - module.kind != ModuleKind::Allocator && - unsafe { llvm::LLVMRustThinLTOAvailable() } + module.kind != ModuleKind::Allocator } }; |
