rust/compiler
bors f2299490c1 Auto merge of #108106 - the8472:layout-opt, r=wesleywiser
Improve niche placement by trying two strategies and picking the better result

Fixes #104807
Fixes #105371

Determining which sort order is better requires calculating the struct size (so we can calculate the niche offset). But that in turn depends on the field order, so happens after sorting. So the simple way to solve that is to run the whole thing twice and pick the better result.

1st commit is just code motion, the meat is in the later ones.
2023-04-29 08:55:04 +00:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi layout-alignment-promotion logic should depend on the niche-bias 2023-04-28 23:08:54 +02:00
rustc_apfloat compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_arena Use NonNull::new_unchecked and NonNull::len in 2023-04-27 19:48:37 -07:00
rustc_ast Rollup merge of #110873 - clubby789:migrate-rustc-parse-trivial, r=compiler-errors 2023-04-28 07:34:02 +02:00
rustc_ast_lowering Rollup merge of #110766 - m-ou-se:fmt-rt, r=jyn514 2023-04-28 07:34:02 +02:00
rustc_ast_passes Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_ast_pretty remove unused muts 2023-04-28 20:19:48 +02:00
rustc_attr Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Rollup merge of #110960 - lukas-code:unused-mut, r=compiler-errors 2023-04-28 22:56:47 +02:00
rustc_builtin_macros Fix static string lints 2023-04-25 18:59:55 +01:00
rustc_codegen_cranelift rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
rustc_codegen_gcc rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
rustc_codegen_llvm rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
rustc_codegen_ssa Rollup merge of #110917 - Be-ing:whole_archive_with_staticlib_fix, r=petrochenkov 2023-04-28 22:56:44 +02:00
rustc_const_eval Rollup merge of #110944 - RalfJung:offset, r=compiler-errors 2023-04-28 22:56:46 +02:00
rustc_data_structures Auto merge of #107782 - Zoxc:worker-local, r=cjgillot 2023-04-27 17:43:09 +00:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl Fix ICE on --print=... i/o errors 2023-04-25 08:17:18 -07:00
rustc_error_codes Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_error_messages Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_errors Rollup merge of #110578 - bvanjoi:fix-issue-110547, r=jackh726 2023-04-21 06:44:30 +02:00
rustc_expand Fix static string lints 2023-04-25 18:59:55 +01:00
rustc_feature Auto merge of #110643 - pietroalbini:pa-bump-stage0, r=Mark-Simulacrum 2023-04-29 02:29:14 +00: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 Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir Remove some unnecessary derives. 2023-04-28 18:34:55 +10:00
rustc_hir_analysis remove unused muts 2023-04-28 20:19:48 +02:00
rustc_hir_pretty minor tweaks 2023-04-21 02:14:04 -07:00
rustc_hir_typeck Rollup merge of #110877 - compiler-errors:binop-err, r=cjgillot 2023-04-28 22:56:44 +02:00
rustc_incremental Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_index Decorative changes to IndexVec 2023-04-24 13:53:37 +00:00
rustc_infer Rollup merge of #110838 - nnethercote:more-Folder-Visitable-cleanups, r=lcnr 2023-04-27 21:34:14 +02:00
rustc_interface Auto merge of #107782 - Zoxc:worker-local, r=cjgillot 2023-04-27 17:43:09 +00:00
rustc_lexer Revert "Don't recover lifetimes/labels containing emojis as character literals" 2023-04-10 06:52:41 +00:00
rustc_lint rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
rustc_lint_defs Add a few more missing lints 2023-04-27 18:43:03 +00:00
rustc_llvm [LLVM17] Adapt to ExplicitEmulatedTLS removal. 2023-04-24 08:45:15 +00:00
rustc_log Stabilize IsTerminal 2023-04-10 17:24:23 +09:00
rustc_macros Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
rustc_metadata include source error for LoadLibraryExW 2023-04-28 17:32:46 +02:00
rustc_middle Rollup merge of #110927 - nnethercote:Encoder-Decoder-cleanups, r=scottmcm 2023-04-28 22:56:45 +02:00
rustc_mir_build Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
rustc_mir_dataflow Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
rustc_mir_transform Make drop_flags an IndexVec. 2023-04-28 20:12:45 +00:00
rustc_monomorphize rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
rustc_parse Migrate trivially translatable rustc_parse diagnostics 2023-04-27 01:53:06 +01:00
rustc_parse_format Fix typos in compiler 2023-04-10 22:02:52 +02:00
rustc_passes Migrate rustc_passes to translatable diagnostics 2023-04-26 11:40:21 +01:00
rustc_plugin_impl Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_privacy add EarlyBinder to output of explicit_item_bounds; replace bound_explicit_item_bounds usages; remove bound_explicit_item_bounds query 2023-04-20 12:36:50 -06:00
rustc_query_impl Auto merge of #110634 - saethlin:pointy-decoder, r=cjgillot 2023-04-26 02:36:42 +00:00
rustc_query_system Rollup merge of #110886 - nnethercote:dep-graph-cleanups, r=cjgillot 2023-04-27 21:34:17 +02:00
rustc_resolve Don't duplicate anonymous lifetimes for async fn in traits 2023-04-28 20:21:03 +00:00
rustc_serialize Remove MemDecoder::read_byte. 2023-04-28 18:34:55 +10:00
rustc_session remove unused muts 2023-04-28 20:19:48 +02:00
rustc_smir Add Call terminator to SMIR 2023-04-20 12:00:41 -03:00
rustc_span Rollup merge of #110766 - m-ou-se:fmt-rt, r=jyn514 2023-04-28 07:34:02 +02:00
rustc_symbol_mangling rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
rustc_target Add loongarch64 asm! support 2023-04-25 14:15:31 +08:00
rustc_trait_selection Rollup merge of #110614 - compiler-errors:new-solver-overflow-response, r=lcnr 2023-04-29 11:27:54 +05:30
rustc_traits rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
rustc_transmute Remove unused TypeFoldable/TypeVisitable impls. 2023-04-26 15:19:50 +10:00
rustc_ty_utils rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
rustc_type_ir Rollup merge of #110838 - nnethercote:more-Folder-Visitable-cleanups, r=lcnr 2023-04-27 21:34:14 +02:00