rust/compiler
bors 0196107543 Auto merge of #82127 - tgnottingham:tune-ahead-of-time-codegen, r=varkor
rustc_codegen_ssa: tune codegen according to available concurrency

This change tunes ahead-of-time codegening according to the amount of
concurrency available, rather than according to the number of CPUs on
the system. This can lower memory usage by reducing the number of
compiled LLVM modules in memory at once, particularly across several
rustc instances.

Previously, each rustc instance would assume that it should codegen
ahead of time to meet the demand of number-of-CPUs workers. But often, a
rustc instance doesn't have nearly that much concurrency available to
it, because the concurrency availability is split, via the jobserver,
across all active rustc instances spawned by the driving cargo process,
and is further limited by the `-j` flag argument. Therefore, each rustc
might have had several times the number of LLVM modules in memory than
it really needed to meet demand. If the modules were large, the effect
on memory usage would be noticeable.

With this change, the required amount of ahead-of-time codegen scales up
with the actual number of workers running within a rustc instance. Note
that the number of workers running can be less than the actual
concurrency available to a rustc instance. However, if more concurrency
is actually available, workers are spun up quickly as job tokens are
acquired, and the ahead-of-time codegen scales up quickly as well.
2021-02-23 14:38:45 +00:00
..
rustc just max_level_info 2020-09-11 09:37:51 -07:00
rustc_apfloat bumped smallvec deps 2021-02-14 18:03:11 +03:00
rustc_arena Update the bootstrap compiler 2021-02-20 17:19:30 -05:00
rustc_ast New pass to deduplicate blocks 2021-02-21 21:51:54 +01:00
rustc_ast_lowering ast: Keep expansion status for out-of-line module items 2021-02-18 13:07:49 +03:00
rustc_ast_passes ast: Keep expansion status for out-of-line module items 2021-02-18 13:07:49 +03:00
rustc_ast_pretty Rollup merge of #82238 - petrochenkov:nocratemod, r=Aaron1011 2021-02-19 02:49:08 +01:00
rustc_attr remove redundant wrapping of return types of allow_internal_unstable() and rustc_allow_const_fn_unstable() 2021-02-21 18:11:27 +01:00
rustc_builtin_macros ast: Keep expansion status for out-of-line module items 2021-02-18 13:07:49 +03:00
rustc_codegen_cranelift Use a QueryContext for try_mark_green. 2021-02-19 17:51:56 +01:00
rustc_codegen_llvm Auto merge of #82102 - nagisa:nagisa/fix-dwo-name, r=davidtwco 2021-02-23 10:02:16 +00:00
rustc_codegen_ssa Auto merge of #82127 - tgnottingham:tune-ahead-of-time-codegen, r=varkor 2021-02-23 14:38:45 +00:00
rustc_data_structures Update the bootstrap compiler 2021-02-20 17:19:30 -05:00
rustc_driver Auto merge of #82341 - GuillaumeGomez:rollup-t7y7tyg, r=GuillaumeGomez 2021-02-20 21:38:53 +00:00
rustc_error_codes Rollup merge of #82246 - jesusprubio:add-long-explanation-e0549, r=GuillaumeGomez 2021-02-18 16:57:41 +01:00
rustc_errors Rollup merge of #82255 - nhwn:nonzero-err-as-bug, r=davidtwco 2021-02-23 02:51:55 +01:00
rustc_expand remove redundant wrapping of return types of allow_internal_unstable() and rustc_allow_const_fn_unstable() 2021-02-21 18:11:27 +01:00
rustc_feature Feature gate macro attributes in #[derive] output 2021-02-07 20:08:45 +03:00
rustc_fs_util Optimize away a fs::metadata call. 2021-01-06 08:33:15 -08:00
rustc_graphviz remove redundant closures (clippy::redundant_closure) 2021-01-03 13:34:24 +01:00
rustc_hir Rollup merge of #81769 - estebank:tail-expr-as-potential-return, r=lcnr 2021-02-23 02:51:46 +01:00
rustc_hir_pretty Auto merge of #81611 - cjgillot:meowner, r=estebank 2021-02-16 22:14:32 +00:00
rustc_incremental Print -Ztime-passes (and misc stats/logs) on stderr, not stdout. 2021-02-18 14:13:38 +02:00
rustc_index Auto merge of #81498 - thomaseizinger:ice-workaround-56935-rustc-index, r=matthewjasper 2021-02-07 08:09:58 +00:00
rustc_infer Rollup merge of #81496 - guswynn:expected_async_block, r=oli-obk 2021-02-19 02:49:00 +01:00
rustc_interface Rollup merge of #82255 - nhwn:nonzero-err-as-bug, r=davidtwco 2021-02-23 02:51:55 +01:00
rustc_lexer Return EOF_CHAR constant instead of magic char. 2021-01-07 13:20:04 +01:00
rustc_lint ast: Stop using Mod in Crate 2021-02-18 13:07:49 +03:00
rustc_lint_defs Add explanations and suggestions to irrefutable_let_patterns lint 2021-02-18 16:21:16 -08:00
rustc_llvm HWASan support 2021-02-07 23:48:58 -08:00
rustc_macros Move the query system to rustc_query_impl. 2021-02-19 17:51:58 +01:00
rustc_metadata Print -Ztime-passes (and misc stats/logs) on stderr, not stdout. 2021-02-18 14:13:38 +02:00
rustc_middle Rollup merge of #82091 - henryboisdequin:use-place-ref-more, r=RalfJung 2021-02-23 02:51:50 +01:00
rustc_mir Rollup merge of #82091 - henryboisdequin:use-place-ref-more, r=RalfJung 2021-02-23 02:51:50 +01:00
rustc_mir_build Auto merge of #81978 - tmiasko:head-ctor, r=Mark-Simulacrum 2021-02-22 21:45:50 +00:00
rustc_parse Rollup merge of #81235 - reese:rw-tuple-diagnostics, r=estebank 2021-02-23 02:51:44 +01:00
rustc_parse_format parse_format: treat r" as a literal 2021-02-06 15:01:07 +00:00
rustc_passes remove redundant wrapping of return types of allow_internal_unstable() and rustc_allow_const_fn_unstable() 2021-02-21 18:11:27 +01:00
rustc_plugin_impl Only store a LocalDefId in hir::Item. 2021-02-15 19:32:10 +01:00
rustc_privacy Rollup merge of #82066 - matthewjasper:trait-ref-fix, r=jackh726 2021-02-18 16:57:34 +01:00
rustc_query_impl Workaround rustdoc not honouring cfg(parallel_compiler). 2021-02-19 22:05:27 +01:00
rustc_query_system Use a QueryContext for try_mark_green. 2021-02-19 17:51:56 +01:00
rustc_resolve Rollup merge of #82259 - osa1:issue82156, r=petrochenkov 2021-02-19 02:49:11 +01:00
rustc_save_analysis Only store a LocalDefId in hir::ForeignItem. 2021-02-15 19:32:29 +01:00
rustc_serialize Update the bootstrap compiler 2021-02-20 17:19:30 -05:00
rustc_session Auto merge of #82102 - nagisa:nagisa/fix-dwo-name, r=davidtwco 2021-02-23 10:02:16 +00:00
rustc_span Rollup merge of #82128 - anall:feature/add_diagnostic_items, r=davidtwco 2021-02-23 02:51:51 +01:00
rustc_symbol_mangling Use less HirId when referring to items. 2021-02-15 19:36:12 +01:00
rustc_target Rollup merge of #82166 - kaniini:s390x-musl-target, r=nagisa 2021-02-23 02:51:53 +01:00
rustc_trait_selection Auto merge of #82020 - jyn514:mut-passes, r=camelid,GuillaumeGomez 2021-02-19 16:39:03 +00:00
rustc_traits Rollup merge of #82066 - matthewjasper:trait-ref-fix, r=jackh726 2021-02-18 16:57:34 +01:00
rustc_ty_utils Auto merge of #81172 - SimonSapin:ptr-metadata, r=oli-obk 2021-02-18 04:22:16 +00:00
rustc_type_ir New pass to deduplicate blocks 2021-02-21 21:51:54 +01:00
rustc_typeck Rollup merge of #81769 - estebank:tail-expr-as-potential-return, r=lcnr 2021-02-23 02:51:46 +01:00