rust/compiler
Nicholas Nethercote 487bdeb519 Improve ordering and naming of CGUs for non-incremental builds.
Currently there are two problems.

First, the CGUS don't end up in size order. The merging loop does sort
by size on each iteration, but we don't sort after the final merge, so
typically there is one CGU out of place. (And sometimes we don't enter
the merging loop at all, in which case they end up in random order.)

Second, we then assign names that differ only by a numeric suffix, and
then we sort them lexicographically by name, giving us an order like
this:

regex.f10ba03eb5ec7975-cgu.1
regex.f10ba03eb5ec7975-cgu.10
regex.f10ba03eb5ec7975-cgu.11
regex.f10ba03eb5ec7975-cgu.12
regex.f10ba03eb5ec7975-cgu.13
regex.f10ba03eb5ec7975-cgu.14
regex.f10ba03eb5ec7975-cgu.15
regex.f10ba03eb5ec7975-cgu.2
regex.f10ba03eb5ec7975-cgu.3
regex.f10ba03eb5ec7975-cgu.4
regex.f10ba03eb5ec7975-cgu.5
regex.f10ba03eb5ec7975-cgu.6
regex.f10ba03eb5ec7975-cgu.7
regex.f10ba03eb5ec7975-cgu.8
regex.f10ba03eb5ec7975-cgu.9

These two problems are really annoying when debugging and profiling the
CGUs.

This commit ensures CGUs are sorted by name *and* reverse sorted by
size. This involves (a) one extra sort by size operation, and (b)
padding the numeric indices with zeroes, e.g.
`regex.f10ba03eb5ec7975-cgu.01`.

(Note that none of this applies for incremental builds, where a
different hash-based CGU naming scheme is used.)
2023-06-26 09:14:11 +10:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi Auto merge of #112062 - lukas-code:unsized-layout, r=wesleywiser 2023-06-13 22:34:59 +00:00
rustc_apfloat
rustc_arena Extend unused_must_use to cover block exprs 2023-06-15 17:59:13 +08:00
rustc_ast Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_ast_lowering Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_ast_passes Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_ast_pretty Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_attr Ensure Fluent messages are in alphabetical order 2023-05-25 23:49:35 +00:00
rustc_baked_icu_data Regen baked data 2023-05-02 10:45:16 -07:00
rustc_borrowck Rollup merge of #112703 - aliemjay:next-solver-root-var, r=compiler-errors 2023-06-24 20:26:43 +02:00
rustc_builtin_macros Auto merge of #112802 - lukas-code:fancy-bool, r=Nilstrieb 2023-06-24 11:43:41 +00:00
rustc_codegen_cranelift Rollup merge of #112232 - fee1-dead-contrib:match-eq-const-msg, r=b-naber 2023-06-19 17:53:33 -07:00
rustc_codegen_gcc Auto merge of #112814 - antoyo:sync-cg_gcc-2023-06-19, r=bjorn3 2023-06-22 02:11:08 +00:00
rustc_codegen_llvm Store generator field names in GeneratorLayout. 2023-06-19 16:50:52 +00:00
rustc_codegen_ssa Remove unused fields from CodegenContext. 2023-06-22 09:07:19 +10:00
rustc_const_eval Add enum for can_access_statics boolean 2023-06-24 20:40:40 +00:00
rustc_data_structures Rollup merge of #112538 - ndrewxie:issue-84447-partial-1, r=compiler-errors 2023-06-21 20:00:49 +02:00
rustc_driver fix spelling error 2023-06-05 16:01:09 +02:00
rustc_driver_impl Make sure to include default en-US ftl resources for rustc_error crate 2023-06-23 17:22:07 +00:00
rustc_error_codes Implement custom diagnostic for ConstParamTy 2023-06-01 18:21:42 +00:00
rustc_error_messages Use translatable diagnostics in rustc_const_eval 2023-06-01 14:45:18 +00:00
rustc_errors s/drain_filter/extract_if/ for Vec, Btree{Map,Set} and LinkedList 2023-06-14 09:28:54 +02:00
rustc_expand Fix msg passed to span_bug 2023-06-21 16:54:54 +05:30
rustc_feature Rollup merge of #112853 - GuillaumeGomez:type_alias_type, r=oli-obk 2023-06-21 15:45:16 +02:00
rustc_fluent_macro Remove unused synstructure dep 2023-04-22 22:03:33 +01:00
rustc_fs_util Add try_canonicalize to rustc_fs_util and use it over fs::canonicalize 2023-03-16 21:50:23 +01:00
rustc_graphviz enable rust_2018_idioms for doctests 2023-05-07 00:12:29 +03:00
rustc_hir Move some field extraction logic onto a method on Node 2023-06-22 15:51:19 +00:00
rustc_hir_analysis Rollup merge of #112983 - spastorino:new-rpitit-23, r=compiler-errors 2023-06-23 19:47:22 -07:00
rustc_hir_pretty Separate AnonConst from ConstBlock in HIR. 2023-06-02 21:25:18 +00:00
rustc_hir_typeck Rollup merge of #113007 - compiler-errors:dont-structural-resolve-byte-str-pat, r=oli-obk 2023-06-25 13:48:36 +02:00
rustc_incremental Applied nits 2023-06-11 22:45:04 -04:00
rustc_index Auto merge of #111925 - Manishearth:rollup-z6z6l2v, r=Manishearth 2023-05-25 00:33:43 +00:00
rustc_infer Rollup merge of #112703 - aliemjay:next-solver-root-var, r=compiler-errors 2023-06-24 20:26:43 +02:00
rustc_interface Avoid Lrc<Box<dyn CodegenBackend>>. 2023-06-22 09:18:09 +10:00
rustc_lexer Don't try to eat non-existent decimal digits. 2023-05-15 18:33:12 +10:00
rustc_lint migrate inferred_outlives_of to Clause 2023-06-22 18:34:24 +00:00
rustc_lint_defs Stop hiding const eval limit in external macros 2023-06-22 14:11:10 +00:00
rustc_llvm Add SafeStack support to rustc 2023-05-26 15:18:54 -04:00
rustc_log Stabilize IsTerminal 2023-04-10 17:24:23 +09:00
rustc_macros avoid &format in error message code 2023-06-23 02:17:39 +09:00
rustc_metadata Auto merge of #112891 - oli-obk:impl_trait_in_assoc_tys_cleanup, r=compiler-errors 2023-06-23 23:26:38 +00:00
rustc_middle Auto merge of #112891 - oli-obk:impl_trait_in_assoc_tys_cleanup, r=compiler-errors 2023-06-23 23:26:38 +00:00
rustc_mir_build Rollup merge of #112759 - cjgillot:closure-names, r=oli-obk 2023-06-21 07:37:01 +02:00
rustc_mir_dataflow merge BorrowKind::Unique into BorrowKind::Mut 2023-06-20 20:55:31 +08:00
rustc_mir_transform Migrate item_bounds to ty::Clause 2023-06-22 18:34:23 +00:00
rustc_monomorphize Improve ordering and naming of CGUs for non-incremental builds. 2023-06-26 09:14:11 +10:00
rustc_parse Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
rustc_parse_format Fix typos in compiler 2023-04-10 22:02:52 +02:00
rustc_passes Rollup merge of #112790 - WaffleLapkin:syntactically, r=Nilstrieb 2023-06-21 07:37:02 +02:00
rustc_plugin_impl Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_privacy Migrate item_bounds to ty::Clause 2023-06-22 18:34:23 +00:00
rustc_query_impl Make queries traceable again 2023-06-21 10:25:25 +00:00
rustc_query_system Rollup merge of #112333 - Zoxc:try_collect_active_jobs-deadlock, r=cjgillot 2023-06-08 12:36:18 +02:00
rustc_resolve fix: add cfg diagnostic for unresolved import error 2023-06-24 21:45:17 +08:00
rustc_serialize Fix the FileEncoder buffer size. 2023-05-15 08:59:11 +10:00
rustc_session switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
rustc_smir Rollup merge of #112232 - fee1-dead-contrib:match-eq-const-msg, r=b-naber 2023-06-19 17:53:33 -07:00
rustc_span Rollup merge of #112853 - GuillaumeGomez:type_alias_type, r=oli-obk 2023-06-21 15:45:16 +02:00
rustc_symbol_mangling Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
rustc_target switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
rustc_trait_selection Rollup merge of #112965 - compiler-errors:circular-wf, r=aliemjay 2023-06-23 19:47:21 -07:00
rustc_traits Rollup merge of #112963 - oli-obk:tait_solver_decoupling, r=compiler-errors 2023-06-23 19:47:20 -07:00
rustc_transmute Safe Transmute: Refactor error handling and Answer type 2023-06-12 16:56:21 -07:00
rustc_ty_utils Auto merge of #112891 - oli-obk:impl_trait_in_assoc_tys_cleanup, r=compiler-errors 2023-06-23 23:26:38 +00:00
rustc_type_ir Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00