rust/compiler
bors d53f0b1d8e Auto merge of #123244 - Mark-Simulacrum:share-inline-never-generics, r=saethlin
Enable -Zshare-generics for inline(never) functions

This avoids inlining cross-crate generic items when possible that are
already marked inline(never), implying that the author is not intending
for the function to be inlined by callers. As such, having a local copy
may make it easier for LLVM to optimize but mostly just adds to binary
bloat and codegen time. In practice our benchmarks indicate this is
indeed a win for larger compilations, where the extra cost in dynamic
linking to these symbols is diminished compared to the advantages in
fewer copies that need optimizing in each binary.

It might also make sense it expand this with other heuristics (e.g.,
`#[cold]`) in the future, but this seems like a good starting point.

FWIW, I expect that doing cleanup in where we make the decision
what should/shouldn't be shared is also a good idea. Way too
much code needed to be tweaked to check this. But I'm hoping
to leave that for a follow-up PR rather than blocking this on it.
2024-11-28 21:44:34 +00:00
..
rustc Auto merge of #132282 - Noratrieb:it-is-the-end-of-serial, r=cjgillot 2024-11-12 15:14:56 +00:00
rustc_abi Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_arena move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
rustc_ast always create DefIds when lowering anon-consts 2024-11-28 12:22:02 +00:00
rustc_ast_ir
rustc_ast_lowering Auto merge of #133468 - lcnr:uwu4, r=BoxyUwU 2024-11-28 15:58:17 +00:00
rustc_ast_passes Refactor where predicates, and reserve for attributes support 2024-11-25 16:38:35 +08:00
rustc_ast_pretty Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_attr ensure that all publicly reachable const fn have const stability info 2024-11-10 10:16:26 +01:00
rustc_baked_icu_data Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_borrowck Structurally resolve before applying projection in borrowck 2024-11-27 20:39:49 +00:00
rustc_builtin_macros Auto merge of #132894 - frank-king:feature/where-refactor, r=cjgillot 2024-11-26 04:12:33 +00:00
rustc_codegen_cranelift Rollup merge of #133422 - taiki-e:riscv-e-clobber-abi, r=Amanieu 2024-11-28 12:06:01 +01:00
rustc_codegen_gcc Support predicate registers (clobber-only) in Hexagon inline assembly 2024-11-25 23:11:17 +09:00
rustc_codegen_llvm Auto merge of #123244 - Mark-Simulacrum:share-inline-never-generics, r=saethlin 2024-11-28 21:44:34 +00:00
rustc_codegen_ssa Auto merge of #123244 - Mark-Simulacrum:share-inline-never-generics, r=saethlin 2024-11-28 21:44:34 +00:00
rustc_const_eval Move always_storage_live_locals. 2024-11-26 12:05:57 +11:00
rustc_data_structures Add UnordMap::clear method 2024-11-20 18:11:37 +01:00
rustc_driver
rustc_driver_impl Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_error_codes remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead 2024-11-08 09:16:00 +01:00
rustc_error_messages Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_errors Auto merge of #132954 - matthiaskrgr:rollup-x3rww9h, r=matthiaskrgr 2024-11-12 18:04:27 +00:00
rustc_expand Implement the unsafe-fields RFC. 2024-11-21 19:32:07 +01:00
rustc_feature Rollup merge of #131664 - taiki-e:s390x-asm-vreg-inout, r=Amanieu 2024-11-25 07:01:37 +01:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08:00
rustc_fs_util
rustc_graphviz
rustc_hir update comment 2024-11-28 12:22:02 +00:00
rustc_hir_analysis Rollup merge of #133428 - compiler-errors:rpitit-unsound, r=lcnr 2024-11-28 03:14:47 +01:00
rustc_hir_pretty Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_hir_typeck Rollup merge of #133358 - compiler-errors:pin-coerce, r=eholk 2024-11-28 12:06:00 +01:00
rustc_incremental Move some code from Compiler::enter to GlobalCtxt::finish 2024-11-09 17:55:39 +00:00
rustc_index reduce false positives of tail-expr-drop-order from consumed values 2024-11-20 20:53:11 +08:00
rustc_index_macros Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_infer Auto merge of #133242 - lcnr:questionable-uwu, r=compiler-errors,BoxyUwU 2024-11-23 18:01:21 +00:00
rustc_interface Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_lexer Clean up c_or_byte_string. 2024-11-25 16:10:55 +11:00
rustc_lint Rollup merge of #133487 - pitaj:reserve-guarded-strings, r=fee1-dead 2024-11-28 12:06:04 +01:00
rustc_lint_defs fix confusing diagnostic for reserved ## 2024-11-25 22:29:14 -07:00
rustc_llvm Rollup merge of #127483 - BertalanD:no_sanitize-global-var, r=rcvalle 2024-11-23 20:19:51 +08:00
rustc_log
rustc_macros give a better error for tuple structs in derive(Diagnostic) 2024-10-27 21:23:28 -04:00
rustc_metadata always create DefIds when lowering anon-consts 2024-11-28 12:22:02 +00:00
rustc_middle Auto merge of #123244 - Mark-Simulacrum:share-inline-never-generics, r=saethlin 2024-11-28 21:44:34 +00:00
rustc_mir_build Auto merge of #131859 - chriskrycho:update-trpl, r=onur-ozkan 2024-11-23 23:26:19 +00:00
rustc_mir_dataflow Rollup merge of #133475 - nnethercote:MaybeStorage-improvements, r=lcnr 2024-11-26 20:35:40 -05:00
rustc_mir_transform Rollup merge of #133418 - Zalathar:spans, r=jieyouxu 2024-11-27 22:23:25 +01:00
rustc_monomorphize Share inline(never) generics across crates 2024-11-28 13:43:05 -05:00
rustc_next_trait_solver remove remaining references to Reveal 2024-11-23 13:52:56 +01:00
rustc_parse Rollup merge of #133560 - clubby789:mut-mut-space, r=jieyouxu 2024-11-28 12:06:07 +01:00
rustc_parse_format
rustc_passes Refactor where predicates, and reserve for attributes support 2024-11-25 16:38:35 +08:00
rustc_pattern_analysis no more Reveal :( 2024-11-23 13:52:54 +01:00
rustc_privacy Simplify some places that deal with generic parameter defaults 2024-11-11 21:29:18 +01:00
rustc_query_impl Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_query_system Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnr 2024-11-19 02:07:48 +00:00
rustc_resolve always create DefIds when lowering anon-consts 2024-11-28 12:22:02 +00:00
rustc_sanitizers use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
rustc_serialize
rustc_session Remove -Zfuel. 2024-11-26 10:45:21 +00:00
rustc_smir Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_span Rollup merge of #133463 - taiki-e:aarch64-asm-x18, r=Amanieu 2024-11-28 12:06:02 +01:00
rustc_symbol_mangling additional TypingEnv cleanups 2024-11-19 21:36:23 +01:00
rustc_target Rollup merge of #133463 - taiki-e:aarch64-asm-x18, r=Amanieu 2024-11-28 12:06:02 +01:00
rustc_trait_selection Auto merge of #133393 - compiler-errors:dyn-tweaks, r=lcnr,spastorino 2024-11-27 13:02:46 +00:00
rustc_traits Delay a bug when encountering an impl with unconstrained generics in codegen_select 2024-11-23 05:27:45 +00:00
rustc_transmute use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
rustc_ty_utils rebase 2024-11-23 13:52:57 +01:00
rustc_type_ir Auto merge of #133393 - compiler-errors:dyn-tweaks, r=lcnr,spastorino 2024-11-27 13:02:46 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Rollup merge of #132161 - celinval:smir-fix-indent, r=compiler-errors 2024-11-08 18:51:28 +11:00