rust/src/librustc_codegen_llvm
kennytm e14bc2d3d4
Rollup merge of #50972 - nikic:no-parallel, r=michaelwoerister
Add -Z no-parallel-llvm flag

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-24 16:02:41 +08:00
..
back Add -Z no-parallel-llvm flag 2018-05-22 19:23:40 +02:00
debuginfo Fixed accidental removal of StableHasher declaration. 2018-05-17 19:43:36 -04:00
mir Use SortedMap instead of BTreeMap for relocations in MIRI. 2018-05-22 16:54:07 +02:00
abi.rs use if let to avoid potential div by zero 2018-05-19 08:49:54 -07:00
allocator.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
asm.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
attributes.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
base.rs rustc: don't call Kind::from directly, use .into() instead. 2018-05-21 12:13:19 +03:00
build.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
builder.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
callee.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
Cargo.toml Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
common.rs rustc: use intern_* instead of mk_* where possible. 2018-05-21 12:13:19 +03:00
consts.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
context.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
declare.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
diagnostics.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
glue.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
intrinsic.rs Remove the intrinsic for align_offset 2018-05-17 23:13:42 +03:00
lib.rs Stabilise inclusive_range_methods 2018-05-17 20:58:28 +01:00
llvm_util.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
metadata.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
meth.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
mono_item.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
README.md Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
time_graph.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
type_.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
type_of.rs Emit noalias on &mut parameters by default 2018-05-17 22:27:29 +02:00
value.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00

The codegen crate contains the code to convert from MIR into LLVM IR, and then from LLVM IR into machine code. In general it contains code that runs towards the end of the compilation process.

For more information about how codegen works, see the rustc guide.