rust/compiler
bors 227abacaef Auto merge of #120003 - Mark-Simulacrum:opt-promoted, r=davidtwco
perf: Don't track specific live points for promoteds

We don't query this information out of the promoted (it's basically a single "unit" regardless of the complexity within it) and this saves on re-initializing the SparseIntervalMatrix's backing IndexVec with mostly empty rows for all of the leading regions in the function. Typical promoteds will only contain a few regions that need up be uplifted, while the parent function can have thousands.

For a simple function repeating println!("Hello world"); 50,000 times this reduces compile times from 90 to 15 seconds in debug mode. The previous implementations re-initialization led to an overall roughly n^2 runtime as each promoted initialized slots for ~n regions, now we scale closer to linearly (5000 hello worlds takes 1.1 seconds).

cc https://github.com/rust-lang/rust/issues/50994, https://github.com/rust-lang/rust/issues/86244
2024-01-20 11:21:28 +00:00
..
rustc
rustc_abi Fix rustc_abi build on stable 2024-01-16 21:15:31 +01:00
rustc_arena rustc_arena: add alloc_str 2023-12-05 17:52:51 -08:00
rustc_ast Auto merge of #116672 - maurer:128-align, r=nikic 2024-01-20 00:56:53 +00:00
rustc_ast_lowering Auto merge of #120006 - cjgillot:no-hir-owner, r=wesleywiser 2024-01-19 02:36:13 +00:00
rustc_ast_passes Auto merge of #119088 - George-lewis:glewis/suggest-upgrading-compiler, r=Nilstrieb 2024-01-13 20:06:03 +00:00
rustc_ast_pretty Add PatKind::Err 2024-01-17 03:14:16 +01:00
rustc_attr Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05:00
rustc_baked_icu_data
rustc_borrowck Auto merge of #120003 - Mark-Simulacrum:opt-promoted, r=davidtwco 2024-01-20 11:21:28 +00:00
rustc_builtin_macros Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05:00
rustc_codegen_cranelift Rollup merge of #119815 - nagisa:nagisa/polishes-libloading-use-somewhat, r=bjorn3 2024-01-19 19:27:00 +01:00
rustc_codegen_gcc Rename {create,emit}_warning as {create,emit}_warn. 2024-01-10 07:33:06 +11:00
rustc_codegen_llvm LLVM 18 x86 data layout update 2024-01-19 10:52:01 +01:00
rustc_codegen_ssa Auto merge of #119922 - nnethercote:fix-Diag-code-is_lint, r=oli-obk 2024-01-17 07:33:52 +00:00
rustc_const_eval Auto merge of #119821 - oli-obk:reveal_all_const_evals, r=lcnr 2024-01-20 04:57:51 +00:00
rustc_data_structures Auto merge of #120076 - Mark-Simulacrum:unhash, r=cjgillot 2024-01-19 04:43:17 +00:00
rustc_driver
rustc_driver_impl Replace TrimmedDefPaths with a bool. 2024-01-15 09:16:14 +11:00
rustc_error_codes Stabilize simple offset_of 2024-01-19 20:38:51 +00:00
rustc_error_messages
rustc_errors Rework how diagnostic lints are stored. 2024-01-14 14:04:25 +11:00
rustc_expand Auto merge of #120121 - matthiaskrgr:rollup-razammh, r=matthiaskrgr 2024-01-19 16:26:37 +00:00
rustc_feature Split remaining offset_of features into new tracking issues 2024-01-19 21:13:11 +00:00
rustc_fluent_macro annotate-snippets: update to 0.10 2024-01-07 16:53:32 +03:00
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #120006 - cjgillot:no-hir-owner, r=wesleywiser 2024-01-19 02:36:13 +00:00
rustc_hir_analysis Account for traits using self-trait by name without dyn 2024-01-19 23:37:39 +00:00
rustc_hir_pretty Add PatKind::Err 2024-01-17 03:14:16 +01:00
rustc_hir_typeck Rollup merge of #119613 - gavinleroy:expose-obligations, r=lcnr 2024-01-20 09:37:26 +01:00
rustc_incremental Get rid of the hir_owner query. 2024-01-16 23:49:38 +00:00
rustc_index Auto merge of #119499 - cjgillot:dtm-opt, r=nnethercote 2024-01-06 11:54:15 +00:00
rustc_index_macros Restrict access to the private field of newtype indexes 2024-01-19 15:38:47 +00:00
rustc_infer Rollup merge of #119613 - gavinleroy:expose-obligations, r=lcnr 2024-01-20 09:37:26 +01:00
rustc_interface Rollup merge of #119815 - nagisa:nagisa/polishes-libloading-use-somewhat, r=bjorn3 2024-01-19 19:27:00 +01:00
rustc_lexer Detect NulInCStr error earlier. 2024-01-12 16:19:37 +11:00
rustc_lint Rollup merge of #119967 - ShE3py:patkind-err, r=WaffleLapkin 2024-01-18 10:34:18 +01:00
rustc_lint_defs Rollup merge of #117556 - obeis:static-mut-ref-lint, r=davidtwco 2024-01-09 13:23:15 +01:00
rustc_llvm Revert "Auto merge of #113923 - DianQK:restore-no-builtins-lto, r=pnkfelix" 2024-01-12 18:23:04 +08:00
rustc_log
rustc_macros Rework how diagnostic lints are stored. 2024-01-14 14:04:25 +11:00
rustc_metadata Rollup merge of #119815 - nagisa:nagisa/polishes-libloading-use-somewhat, r=bjorn3 2024-01-19 19:27:00 +01:00
rustc_middle Auto merge of #119821 - oli-obk:reveal_all_const_evals, r=lcnr 2024-01-20 04:57:51 +00:00
rustc_mir_build Rollup merge of #120009 - Nadrieril:never_patterns_tyck, r=compiler-errors 2024-01-19 19:27:02 +01:00
rustc_mir_dataflow Rollup merge of #115291 - cjgillot:dest-prop-save, r=JakobDegen 2024-01-17 20:21:19 +01:00
rustc_mir_transform Rollup merge of #115291 - cjgillot:dest-prop-save, r=JakobDegen 2024-01-17 20:21:19 +01:00
rustc_monomorphize Make crate_inherent_impls fallible and stop using track_errors for it 2024-01-17 10:02:29 +00:00
rustc_next_trait_solver Remove movability from TyKind::Coroutine 2023-12-28 16:35:01 +00:00
rustc_parse Rollup merge of #119062 - compiler-errors:asm-in-let-else, r=davidtwco,est31 2024-01-19 08:15:03 +01:00
rustc_parse_format Removing redudant note from parse error 2024-01-08 19:41:01 +01:00
rustc_passes Rollup merge of #120107 - shepmaster:dead-code-repr-transparent, r=Nilstrieb 2024-01-19 08:15:05 +01:00
rustc_pattern_analysis Rollup merge of #119835 - Nadrieril:simplify-empty-logic, r=compiler-errors 2024-01-19 19:27:00 +01:00
rustc_privacy Remove Session methods that duplicate DiagCtxt methods. 2023-12-24 08:05:28 +11:00
rustc_query_impl Update measureme crate to version 11 2024-01-13 16:32:03 +01:00
rustc_query_system Auto merge of #120006 - cjgillot:no-hir-owner, r=wesleywiser 2024-01-19 02:36:13 +00:00
rustc_resolve Don't delete any lifetimes with bounds 2024-01-20 02:30:58 +04:00
rustc_serialize Rollup merge of #117561 - tgross35:split-array, r=scottmcm 2024-01-19 19:26:59 +01:00
rustc_session Rollup merge of #119828 - azhogin:azhogin/collapse_debuginfo_improved_attr, r=petrochenkov 2024-01-18 20:56:19 +01:00
rustc_smir Rollup merge of #119833 - celinval:smir-accept-closures, r=oli-obk 2024-01-18 10:34:17 +01:00
rustc_span Stabilize simple offset_of 2024-01-19 20:38:51 +00:00
rustc_symbol_mangling Rename consuming chaining methods on DiagnosticBuilder. 2024-01-10 07:40:00 +11:00
rustc_target Update more data layouts 2024-01-19 11:09:30 +01:00
rustc_trait_selection Rollup merge of #119613 - gavinleroy:expose-obligations, r=lcnr 2024-01-20 09:37:26 +01:00
rustc_traits Correctly handle normalization in implied bounds 2024-01-17 21:27:34 -05:00
rustc_transmute Fix an ICE that occurs after an error has already been reported 2024-01-09 16:09:30 +00:00
rustc_ty_utils Rollup merge of #119969 - compiler-errors:simplify-closure-env-ty, r=oli-obk 2024-01-16 17:55:23 +01:00
rustc_type_ir Restrict access to the private field of newtype indexes 2024-01-19 15:38:47 +00:00
stable_mir Make the remaining "private" fields actually private 2024-01-19 16:37:50 +00:00