1
Fork 0
rust/compiler
bors 098d4fd74c Auto merge of #119977 - Mark-Simulacrum:defid-cache, r=cjgillot
Cache local DefId-keyed queries without hashing

This caches local DefId-keyed queries using just an IndexVec. This costs ~5% extra max-rss at most but brings significant runtime improvement, up to 13% cycle counts (mean: 4%) on primary benchmarks. It's possible that further tweaks could reduce the memory overhead further but this win seems worth landing despite the increased memory, particularly with regards to eliminating the present set in non-incr or storing it inline (skip list?) with the main data.

We tried applying this scheme to all keys in the [first perf run] but found that it carried a significant memory hit (50%). instructions/cycle counts were also much more mixed, though that may have been due to the lack of the present set optimization (needed for fast iter() calls in incremental scenarios).

Closes https://github.com/rust-lang/rust/issues/45275

[first perf run]: https://perf.rust-lang.org/compare.html?start=30dfb9e046aeb878db04332c74de76e52fb7db10&end=6235575300d8e6e2cc6f449cb9048722ef43f9c7&stat=instructions:u
2024-01-16 21:58:10 +00:00
..
rustc
rustc_abi Avoid specialization for the Span Encodable and Decodable impls 2023-12-31 20:42:17 +00:00
rustc_arena rustc_arena: add alloc_str 2023-12-05 17:52:51 -08:00
rustc_ast Delegation implementation: step 1 2024-01-12 14:11:16 +03:00
rustc_ast_lowering Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05: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 Delegation implementation: step 1 2024-01-12 14:11:16 +03: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 #116520 - Enselic:large-copy-into-fn, r=oli-obk 2024-01-16 19:33:14 +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 compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_codegen_gcc Rename {create,emit}_warning as {create,emit}_warn. 2024-01-10 07:33:06 +11:00
rustc_codegen_llvm Revert "Auto merge of #113923 - DianQK:restore-no-builtins-lto, r=pnkfelix" 2024-01-12 18:23:04 +08:00
rustc_codegen_ssa compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_const_eval compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_data_structures Rollup merge of #119527 - klensy:ordering, r=compiler-errors 2024-01-09 13:23:17 +01:00
rustc_driver
rustc_driver_impl Replace TrimmedDefPaths with a bool. 2024-01-15 09:16:14 +11:00
rustc_error_codes Add error code for missing base expression in struct update syntax 2024-01-09 19:25:54 +00:00
rustc_error_messages
rustc_errors Don't consider delayed bugs for -Ztreat-err-as-bug. 2024-01-13 09:59:56 +11:00
rustc_expand Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05:00
rustc_feature Rollup merge of #119866 - smoelius:patch-2, r=compiler-errors 2024-01-12 08:23:59 +01: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 #119361 - sjwang05:issue-119352, r=WaffleLapkin 2024-01-14 09:39:03 +00:00
rustc_hir_analysis Rollup merge of #119971 - compiler-errors:zip-eq, r=nnethercote 2024-01-15 08:44:49 +01:00
rustc_hir_pretty Delegation implementation: step 1 2024-01-12 14:11:16 +03:00
rustc_hir_typeck Rollup merge of #119900 - compiler-errors:closure-checking, r=oli-obk 2024-01-16 17:55:22 +01:00
rustc_incremental Rename {create,emit}_warning as {create,emit}_warn. 2024-01-10 07:33:06 +11:00
rustc_index Auto merge of #119499 - cjgillot:dtm-opt, r=nnethercote 2024-01-06 11:54:15 +00:00
rustc_index_macros Rollup merge of #119963 - clubby789:spec-allow-internal-unstable, r=compiler-errors 2024-01-15 08:44:49 +01:00
rustc_infer Auto merge of #119947 - compiler-errors:old-solver-instantiate-response, r=lcnr 2024-01-16 13:33:04 +00:00
rustc_interface Auto merge of #119473 - Urgau:check-cfg-explicit-none, r=petrochenkov 2024-01-13 06:17:46 +00:00
rustc_lexer Rename some unescaping functions. 2023-12-13 14:17:50 +11:00
rustc_lint Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05: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 u8 tags for smaller enums 2024-01-09 20:08:44 -05:00
rustc_metadata Auto merge of #119088 - George-lewis:glewis/suggest-upgrading-compiler, r=Nilstrieb 2024-01-13 20:06:03 +00:00
rustc_middle Auto merge of #119977 - Mark-Simulacrum:defid-cache, r=cjgillot 2024-01-16 21:58:10 +00:00
rustc_mir_build Auto merge of #116520 - Enselic:large-copy-into-fn, r=oli-obk 2024-01-16 19:33:14 +00:00
rustc_mir_dataflow compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_mir_transform Auto merge of #116520 - Enselic:large-copy-into-fn, r=oli-obk 2024-01-16 19:33:14 +00:00
rustc_monomorphize large_assignments: Lint on specific large args passed to functions 2024-01-15 19:07:12 +01:00
rustc_next_trait_solver Remove movability from TyKind::Coroutine 2023-12-28 16:35:01 +00:00
rustc_parse Auto merge of #119341 - sjwang05:issue-58462, r=WaffleLapkin 2024-01-14 04:37:45 +00:00
rustc_parse_format Removing redudant note from parse error 2024-01-08 19:41:01 +01:00
rustc_passes Add check for ui_testing via promoting parameters from ParseSess to Session 2024-01-13 12:11:13 -05:00
rustc_pattern_analysis Remove the unused overlapping_range_endpoints Vec 2024-01-15 19:27:06 +01:00
rustc_privacy Remove Session methods that duplicate DiagCtxt methods. 2023-12-24 08:05:28 +11:00
rustc_query_impl Rollup merge of #119527 - klensy:ordering, r=compiler-errors 2024-01-09 13:23:17 +01:00
rustc_query_system Auto merge of #119977 - Mark-Simulacrum:defid-cache, r=cjgillot 2024-01-16 21:58:10 +00:00
rustc_resolve Auto merge of #119610 - Nadrieril:never_pattern_bindings, r=compiler-errors 2024-01-15 21:24:13 +00:00
rustc_serialize Remove more needless leb128 coding for enum variants 2024-01-09 20:08:44 -05:00
rustc_session Replace TrimmedDefPaths with a bool. 2024-01-15 09:16:14 +11:00
rustc_smir compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_span compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
rustc_symbol_mangling Rename consuming chaining methods on DiagnosticBuilder. 2024-01-10 07:40:00 +11:00
rustc_target Auto merge of #119927 - matthiaskrgr:rollup-885ws57, r=matthiaskrgr 2024-01-13 16:09:45 +00:00
rustc_trait_selection Rollup merge of #119816 - oli-obk:tait_ice_unify_obligations, r=lcnr 2024-01-16 17:55:22 +01:00
rustc_traits Remove redundant Code from FulfillmentErrorCode variants 2024-01-12 16:34:39 +00: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 Fix tidy error 2023-12-31 20:58:36 +00:00
stable_mir Rollup merge of #119877 - celinval:smir-visit-projection, r=oli-obk 2024-01-12 15:16:57 +01:00