diff options
| author | kennytm <kennytm@gmail.com> | 2018-07-21 02:59:05 +0800 |
|---|---|---|
| committer | kennytm <kennytm@gmail.com> | 2018-07-21 04:08:06 +0800 |
| commit | 9a273a3d66c6b6ac60daa2b862e2871fbe3f82cf (patch) | |
| tree | c30c956a1c05597f1cd4d7a5459a32de160ffe69 /src/librustc_codegen_llvm | |
| parent | c74ff6cbd45ee79d623a6e1ad936d851c34fffc8 (diff) | |
| parent | 829bc268a9e3ef4d0f8ec4f6a2fadd604bdc7b8d (diff) | |
| download | rust-9a273a3d66c6b6ac60daa2b862e2871fbe3f82cf.tar.gz rust-9a273a3d66c6b6ac60daa2b862e2871fbe3f82cf.zip | |
Rollup merge of #52505 - alexcrichton:remove-thinlto-hack, r=nikomatsakis
rustc: Remove a workaround in ThinLTO fixed upstream This commit removes a hack in our ThinLTO passes which removes available externally functions manually. The [upstream bug][1] has long since been fixed, so we should be able to rely on LLVM natively for this now! [1]: https://bugs.llvm.org/show_bug.cgi?id=35736
Diffstat (limited to 'src/librustc_codegen_llvm')
| -rw-r--r-- | src/librustc_codegen_llvm/back/lto.rs | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/src/librustc_codegen_llvm/back/lto.rs index a33f8b569d0..60b5cf2ec76 100644 --- a/src/librustc_codegen_llvm/back/lto.rs +++ b/src/librustc_codegen_llvm/back/lto.rs @@ -759,20 +759,6 @@ impl ThinModule { cgcx.save_temp_bitcode(&module, "thin-lto-after-pm"); timeline.record("thin-done"); - // FIXME: this is a hack around a bug in LLVM right now. Discovered in - // #46910 it was found out that on 32-bit MSVC LLVM will hit a codegen - // error if there's an available_externally function in the LLVM module. - // Typically we don't actually use these functions but ThinLTO makes - // heavy use of them when inlining across modules. - // - // Tracked upstream at https://bugs.llvm.org/show_bug.cgi?id=35736 this - // function call (and its definition on the C++ side of things) - // shouldn't be necessary eventually and we can safetly delete these few - // lines. - llvm::LLVMRustThinLTORemoveAvailableExternally(llmod); - cgcx.save_temp_bitcode(&module, "thin-lto-after-rm-ae"); - timeline.record("no-ae"); - Ok(module) } } |
