rust/src/librustc_trans
Alex Crichton 201f06988f Integrate jobserver support to parallel codegen
This commit integrates the `jobserver` crate into the compiler. The crate was
previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose
here is to two-fold:

* Primarily the compiler can cooperate with Cargo on parallelism. When you run
  `cargo build -j4` then this'll make sure that the entire build process between
  Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc
  instances which may all try to spawn lots of threads.

* Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver.
  This means that if you call cargo/rustc from `make` or another
  jobserver-compatible implementation it'll use foreign parallelism settings
  instead of creating new ones locally.

As the number of parallel codegen instances in the compiler continues to grow
over time with the advent of incremental compilation it's expected that this'll
become more of a problem, so this is intended to nip concurrent concerns in the
bud by having all the tools to cooperate!

Note that while rustc has support for itself creating a jobserver it's far more
likely that rustc will always use the jobserver configured by Cargo. Cargo today
will now set a jobserver unconditionally for rustc to use.
2017-06-21 07:16:43 -07:00
..
back Integrate jobserver support to parallel codegen 2017-06-21 07:16:43 -07:00
debuginfo Use the three-element variant of the 'llvm.gcov' metadata 2017-06-04 19:53:42 +01:00
mir Add EndRegion statement kind to MIR. 2017-06-12 13:06:42 +02:00
abi.rs refactor trans::mir::block to trans all calls through the same code 2017-05-28 10:43:24 +03:00
adt.rs Use primitive align for tagged enum fill. 2017-04-22 09:38:23 +10:00
asm.rs Expose LLVM appendModuleInlineAsm 2017-04-12 19:12:49 -05:00
assert_module_sources.rs Reduce API surface of rustc_trans 2017-05-27 21:08:13 +02:00
attributes.rs translate drop glue using MIR 2017-03-18 02:53:08 +02:00
base.rs Remove the in-tree flate crate 2017-06-20 07:11:29 -07:00
builder.rs Implementation of repr struct alignment RFC 1358. 2017-04-21 07:32:32 +10:00
cabi_aarch64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_arm.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_asmjs.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_hexagon.rs Add Hexagon support 2017-04-25 01:56:44 -04:00
cabi_mips.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_mips64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_msp430.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_nvptx.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_nvptx64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_powerpc.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_powerpc64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_s390x.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_sparc.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_sparc64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_x86.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
cabi_x86_64.rs rustc_trans: do not treat byval as using up registers. 2017-04-19 02:22:59 +03:00
cabi_x86_win64.rs rustc_trans: use ty::layout for ABI computation instead of LLVM types. 2017-04-09 16:06:56 +03:00
callee.rs cache symbol names in ty::maps 2017-04-26 17:45:02 +03:00
Cargo.toml Integrate jobserver support to parallel codegen 2017-06-21 07:16:43 -07:00
collector.rs collector: apply param substs to closures cast to fn items 2017-06-18 18:57:39 +03:00
common.rs Auto merge of #41917 - arielb1:mir-array, r=nagisa 2017-05-28 12:01:02 +00:00
consts.rs is_foreign_item 2017-05-05 08:15:08 -05:00
context.rs Merge branch 'profiling' of github.com:whitequark/rust into profiling 2017-06-04 15:54:39 +01:00
declare.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
diagnostics.rs Small error code explanations improvements 2016-08-26 17:28:47 +02:00
glue.rs rewrite layout to take a (param-env, ty) pair instead of infcx 2017-06-01 12:56:30 -04:00
intrinsic.rs Add ctlz_nonzero & cttz_nonzero intrinsics 2017-06-08 23:01:39 -07:00
lib.rs Integrate jobserver support to parallel codegen 2017-06-21 07:16:43 -07:00
llvm_util.rs Use AtomicBool instead of a 'static mut' for LLVM init posioning 2017-05-15 11:13:33 +02:00
machine.rs Completely kill represent_type and the adt::Repr type that goes with it. 2016-09-24 18:21:10 -04:00
metadata.rs Remove rustc_llvm dependency from rustc_metadata 2017-05-14 20:30:22 +02:00
meth.rs rustc_trans: avoid sizing_type_of everywhere possible. 2017-04-08 23:40:54 +03:00
monomorphize.rs move the uses of the trans caches into rustc::traits 2017-04-21 21:02:14 -04:00
partitioning.rs incr.comp.: Uniformly represent DepNodes as (Kind, StableHash) pairs. 2017-06-09 15:03:34 +02:00
README.md Rename README.txt to README.md 2016-12-22 12:52:22 -06:00
symbol_names_test.rs cache symbol names in ty::maps 2017-04-26 17:45:02 +03:00
trans_item.rs kill various tasks we no longer need and remove outdated README text 2017-06-12 16:00:31 -04:00
tvec.rs translate drop glue using MIR 2017-03-18 02:53:08 +02:00
type_.rs rewrite post-processing routines not to require a CrateContext 2017-04-13 18:33:09 -04:00
type_of.rs Implementation of repr struct alignment RFC 1358. 2017-04-21 07:32:32 +10:00
value.rs Inline last remaining use of Callee::call and delete unused code 2016-12-20 20:03:31 -07:00