about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/back/write.rs
AgeCommit message (Collapse)AuthorLines
2018-08-07Set 'PrepareForThinLTO' whenever doing cross-language LTO.Michael Woerister-1/+2
2018-08-07Fix issue around dllimport and ThinLTO as LLD runs it.Michael Woerister-6/+18
2018-08-07Auto merge of #51007 - AstralSorcerer:master, r=nagisabors-0/+31
Make globals with private linkage unnamed. Fixes #50862. cc @oli-obk @nagisa
2018-08-04Normalize DebugInfoLevel to standard styleMark Rousskov-1/+1
2018-08-04Normalize variants of Passes to standard styleMark Rousskov-4/+3
2018-08-04Normalize variants of CrateType to standard styleMark Rousskov-3/+3
This is a clippy-breaking change.
2018-08-01Make sure we prepare for thin LTO whenever we are emitting bitcodeColin Pronovost-0/+31
Emitting LLVM bitcode uses ThinLTOBuffers, so we need to prepare for thin LTO or we will likely cause errors in LLVM.
2018-07-31rustc: Handle linker diagnostic from LLVMAlex Crichton-6/+7
Previously linker diagnostic were being hidden when two modules were linked together but failed to link. This commit fixes the situation by ensuring that we have a diagnostic handler installed and also adds support for handling linker diagnostics.
2018-07-30rustc_codegen_llvm: fix tidy errors.Irina Popa-1/+4
2018-07-30rustc_codegen_llvm: use safe references for PassManager.Irina Popa-46/+48
2018-07-30rustc_codegen_llvm: use safe references for Twine, DiagnosticInfo, SMDiagnostic.Irina Popa-5/+3
2018-07-30rustc_codegen_llvm: use safe references for TargetMachine.Irina Popa-3/+3
2018-07-30rustc_codegen_llvm: use safe references for Pass.Irina Popa-4/+4
2018-07-30rustc_codegen_llvm: use safe references for PassManagerBuilder.Irina Popa-1/+1
2018-07-30rustc_codegen_llvm: use safe references for Type.Irina Popa-3/+3
2018-07-30rustc_codegen_llvm: use safe references for Context and Module.Irina Popa-180/+177
2018-07-16Revert "Clean up LLVM module naming (just use CodegenUnit names)."Michael Woerister-1/+2
This reverts commit f6894ebe664d111259a91a2b5fcc1236ca413436.
2018-07-15Auto merge of #52381 - oli-obk:ty_to_def_id, r=eddybbors-11/+9
Remove `ty_to_def_id` fixes https://github.com/rust-lang/rust/issues/52341 The uses were mostly convenience and generally "too powerful" (would also have worked for types that weren't interesting at the use site) r? @eddyb
2018-07-15Ubsan this newly discovered dead codeOliver Schneider-14/+9
2018-07-14Expose a self-referential objectOliver Schneider-0/+3
2018-07-13Auto merge of #52266 - michaelwoerister:incr-thinlto-preliminaries, ↵bors-2/+1
r=alexcrichton Preliminary work for incremental ThinLTO. Since implementing incremental ThinLTO is a bit more involved than I initially thought, I'm splitting out some of the things that already work. This PR (1) adds a way accessing some ThinLTO information in `rustc` and (2) does some cleanup around CGU/object file naming (which makes things quite a bit nicer). This is probably best reviewed one commit at a time.
2018-07-11Clean up LLVM module naming (just use CodegenUnit names).Michael Woerister-2/+1
2018-07-11Rollup merge of #52252 - ljedrz:dyn_librustc_codegen_llvm, r=varkorMark Rousskov-8/+8
Deny bare trait objects in in src/librustc_codegen_llvm Enforce `#![deny(bare_trait_objects)]` in `src/librustc_codegen_llvm`.
2018-07-11Auto merge of #51230 - nikic:no-verify-lto, r=pnkfelixbors-4/+4
Disable LLVM verification by default Currently -Z no-verify only controls IR verification prior to LLVM codegen, while verification is performed unconditionally both before and after linking with (Thin)LTO. Also wondering what the sentiment is on disabling verification by default (and e.g. only enabling it on ALT builds with assertions). This does not seem terribly useful outside of rustc development and it does seem to show up in profiles (at something like 3%). **EDIT:** A table showing the various configurations and what is enabled when. | Configuration | Dynamic verification performed | LLVM static assertions compiled in | | --- | --- | --- | | alt builds | | yes | | nightly builds | | no | | stable builds | | no | | CI builds | | | | dev builds in a checkout | | |
2018-07-11Deny bare trait objects in in src/librustc_codegen_llvmljedrz-8/+8
2018-07-06When doing linker-plugin based LTO, write LLVM bitcode obj-filesMichael Woerister-4/+4
instead of embedding the bitcode into the regular object file.
2018-06-12Rename -Z no-verify to -Z verify-llvm-irNikita Popov-4/+4
This disables IR verification by default.
2018-06-12Respect -Z no-verify during LTONikita Popov-1/+1
Currently -Z no-verify only controls IR verification prior to LLVM codegen, while verification is performed unconditionally both before and after linking with (Thin)LTO.
2018-05-22Add -Z no-parallel-llvm flagNikita Popov-2/+6
Codegen issues commonly only manifest under specific circumstances, e.g. if multiple codegen units are used and ThinLTO is enabled. However, these configuration are threaded, making the use of LLVM debugging facilities hard, as output is interleaved. This patch adds a -Z no-parallel-llvm flag, which allows disabling parallelization of codegen and linking, while otherwise preserving behavior with regard to codegen units and LTO.
2018-05-17Rename trans to codegen everywhere.Irina Popa-0/+2390