-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 6 pull requests #91288
Rollup of 6 pull requests #91288
Conversation
The current guarantee is too strong as it would prevent adapters from exploiting knowledge about the iterator length and using counted loops for example because they would stop calling `next()` before it ever returned `None`. Additionally several nested zip iterators already fail to uphold this. This doesn't remove any of the specialization code that tries (and sometimes fails) to uphold the guarantee for `next()` because removing it would also affect `next_back()` in more surprising ways.
Dependence on endianness and type sizes was reported for enum discriminants in rust-lang#74215 but it is a more general issue since for example the default implementation of `Hasher::write_usize` uses native endianness. Additionally the implementations of library types are occasionally changed as their internal fields change or hashing gets optimized.
The "fixed" in "fixed steady state limits" means to exclude load-dependent resource prioritization that would calculate to 100% of capacity on an idle system and less capacity on a loaded system. Additionally I also exclude "system load" since it would be silly to try to identify other, perhaps higher priority, processes hogging some CPU cores that aren't explicitly excluded by masks/quotas/whatever.
Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Provide suggestoin to constrain trait bound for associated type. Revert incorrect changes to `missing-bounds` test. Address part of rust-lang#20041.
We carry around a list of stylesheets that can carry two different types of thing: 1. Internal stylesheets specific to a page type (only for settings) 2. Themes In this change I move the link generation for settings.css into settings(), so Context.style_files is reserved just for themes. We had two places where we extracted a base theme name from a list of StylePaths. I consolidated that code to be a method on StylePath. I moved generation of link tags for stylesheets into the page.html template. With that change, I made the template responsible for special handling of light.css (making it the default theme) and of the other themes (marking them disabled). That allowed getting rid of the `disabled` field on StylePath.
We had been injecting the list of themes and the rustdoc version into main.js by rewriting it at doc generation time. By avoiding this rewrite, we can make it easier to edit main.js without regenerating all the docs. Added a more convenient accessor for rustdoc-vars. Changed storage.js to not rely on resourcesSuffix. It could in theory use rustdoc-vars, but because rustdoc-vars is at the end of the HTML, it's not available when storage.js runs (very early in page load).
…ntee, r=dtolnay Weaken guarantee around advancing underlying iterators in zip The current guarantee (introduced in rust-lang#52279) is too strong as it prevents adapters from exploiting knowledge about the iterator length and using counted loops for example because they would stop calling `next()` before it ever returned `None`. Additionally several nested zip iterators already fail to uphold this. This does not yet remove any of the specialization code that tries (and sometimes fails) to uphold the guarantee for `next()` because removing it would also affect `next_back()` in more surprising ways. The intent is to be able to remove for example this branch https://github.com/rust-lang/rust/blob/36bcf4069717b9dff90270d13b53a3b130329960/library/core/src/iter/adapters/zip.rs#L234-L243 or this test https://github.com/rust-lang/rust/blob/36bcf4069717b9dff90270d13b53a3b130329960/library/core/tests/iter/adapters/zip.rs#L177-L188 Solves rust-lang#82303 by declaring it a non-issue.
Document non-guarantees for Hash Dependence on endianness and type sizes was reported for enum discriminants in rust-lang#74215 but it is a more general issue since for example the default implementation of `Hasher::write_usize` uses native endianness. Additionally the implementations of library types are occasionally changed as their internal fields change or hashing gets optimized. ## Question Should this go on the module level documentation instead since it also concerns `Hasher` to some extent and not just `Hash`? resolves rust-lang#74215
…state, r=dtolnay Expand `available_parallelism` docs in anticipation of cgroup quota support The "fixed" in "fixed steady state limits" means to exclude load-dependent resource prioritization that would calculate to 100% of capacity on an idle system and less capacity on a loaded system. Additionally I also exclude "system load" since it would be silly to try to identify other, perhaps higher priority, processes hogging some CPU cores that aren't explicitly excluded by masks/quotas/whatever.
…GuillaumeGomez rustdoc: Consolidate static-file replacement mechanism There were a few places in rustdoc where we would take static JS or CSS and rewrite it at doc generation time to insert values. This consolidates all the CSS instances into one CSS file and replaces the JS examples with data- attributes on the rustdoc-vars div. Demo https://rustdoc.crud.net/jsha/static-file-replace/test_docs/ r? ``@GuillaumeGomez``
Account for incorrect `where T::Assoc = Ty` bound Provide suggestoin to constrain trait bound for associated type. Revert incorrect changes to `missing-bounds` test. Address part of rust-lang#20041.
Use non-generic inner function for pointer formatting Previously, despite the implementation being type-unaware, `fmt::Pointer`'s implementation for `*const T` in monomorphized. This affects: * `fmt::Debug` for `*const T` * `fmt::Debug` for `*mut T` * `fmt::Pointer` for `*const T` * `fmt::Pointer` for `*mut T` And since the implementation is non-trivial, this results in a large amount of LLVM bitcode being generated. For example, with a large bindgen project with Debug implementations enabled, it will generate a lot of calls to `fmt::Debug for *const T`, which in turn will perform codegen for a copy of this function for every type. For example, in a real-world bindgen'd header I've been testing with (4,189,245 lines of bindgen Rust with layout tests disabled) the difference between a slightly old nightly (`rustc 1.58.0-nightly (e249ce6 2021-10-30)`) and this PR: <details> <summary>Nightly (Click to Expand)</summary> ``` Lines Copies Function name ----- ------ ------------- 7256000 (100%) 216544 (100%) (TOTAL) 1815449 (25.0%) 24206 (11.2%) <*const T as core::fmt::Pointer>::fmt 300248 (4.1%) 29579 (13.7%) <&T as core::fmt::Debug>::fmt 290328 (4.0%) 24194 (11.2%) <*mut T as core::fmt::Pointer>::fmt 217746 (3.0%) 24194 (11.2%) <*mut T as core::fmt::Debug>::fmt 123329 (1.7%) 1486 (0.7%) core::fmt::builders::DebugList::entries 72790 (1.0%) 1486 (0.7%) core::slice::iter::Iter<T>::post_inc_start 71313 (1.0%) 1486 (0.7%) core::slice::iter::Iter<T>::new 68329 (0.9%) 1486 (0.7%) <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next 38636 (0.5%) 1486 (0.7%) <[T] as core::fmt::Debug>::fmt 26874 (0.4%) 1493 (0.7%) core::array::<impl core::fmt::Debug for [T; N]>::fmt 22290 (0.3%) 1486 (0.7%) core::slice::index::<impl core::ops::index::Index<I> for [T]>::index 19407 (0.3%) 1493 (0.7%) core::array::<impl core::ops::index::Index<I> for [T; N]>::index 19318 (0.3%) 1486 (0.7%) core::slice::<impl [T]>::iter 17832 (0.2%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::offset 17832 (0.2%) 1486 (0.7%) core::ptr::mut_ptr::<impl *mut T>::offset 16346 (0.2%) 1486 (0.7%) <core::ops::range::RangeFull as core::slice::index::SliceIndex<[T]>>::index 13374 (0.2%) 1486 (0.7%) <I as core::iter::traits::collect::IntoIterator>::into_iter 13374 (0.2%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::add 13371 (0.2%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::is_null 13371 (0.2%) 1486 (0.7%) core::ptr::mut_ptr::<impl *mut T>::is_null 11888 (0.2%) 1486 (0.7%) core::slice::<impl [T]>::as_ptr 11879 (0.2%) 1486 (0.7%) core::ptr::non_null::NonNull<T>::new_unchecked 7421 (0.1%) 1486 (0.7%) core::ptr::non_null::NonNull<T>::as_ptr ``` </details> <details> <summary>This PR (Click to Expand)</summary> ``` Lines Copies Function name ----- ------ ------------- 5684504 (100%) 216542 (100%) (TOTAL) 300248 (5.3%) 29579 (13.7%) <&T as core::fmt::Debug>::fmt 290328 (5.1%) 24194 (11.2%) <*mut T as core::fmt::Pointer>::fmt 266265 (4.7%) 24206 (11.2%) <*const T as core::fmt::Pointer>::fmt 217746 (3.8%) 24194 (11.2%) <*mut T as core::fmt::Debug>::fmt 101039 (1.8%) 1486 (0.7%) core::fmt::builders::DebugList::entries 72790 (1.3%) 1486 (0.7%) core::slice::iter::Iter<T>::post_inc_start 71313 (1.3%) 1486 (0.7%) core::slice::iter::Iter<T>::new 68329 (1.2%) 1486 (0.7%) <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::next 38636 (0.7%) 1486 (0.7%) <[T] as core::fmt::Debug>::fmt 26874 (0.5%) 1493 (0.7%) core::array::<impl core::fmt::Debug for [T; N]>::fmt 22290 (0.4%) 1486 (0.7%) core::slice::index::<impl core::ops::index::Index<I> for [T]>::index 19407 (0.3%) 1493 (0.7%) core::array::<impl core::ops::index::Index<I> for [T; N]>::index 19318 (0.3%) 1486 (0.7%) core::slice::<impl [T]>::iter 17832 (0.3%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::offset 17832 (0.3%) 1486 (0.7%) core::ptr::mut_ptr::<impl *mut T>::offset 16346 (0.3%) 1486 (0.7%) <core::ops::range::RangeFull as core::slice::index::SliceIndex<[T]>>::index 13374 (0.2%) 1486 (0.7%) <I as core::iter::traits::collect::IntoIterator>::into_iter 13374 (0.2%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::add 13371 (0.2%) 1486 (0.7%) core::ptr::const_ptr::<impl *const T>::is_null 13371 (0.2%) 1486 (0.7%) core::ptr::mut_ptr::<impl *mut T>::is_null 11888 (0.2%) 1486 (0.7%) core::slice::<impl [T]>::as_ptr 11879 (0.2%) 1486 (0.7%) core::ptr::non_null::NonNull<T>::new_unchecked 7421 (0.1%) 1486 (0.7%) core::ptr::non_null::NonNull<T>::as_ptr ``` </details> Output generated using `cargo llvm-lines` version 0.4.12. Summary of differences: | rustc Version | Total LLVM line count | `*const T as fmt::Pointer` LLVM lines | Compilation Time | |-|-|-|-| | `nightly` | 7256000 | 1815449 (25.0% of binary) | 537.014 | | PR | 5684504 (-21.65%) | 266265 (4.7% of binary) (-85.3% from nightly) | 502.990 | This results in a pretty noticeable as the majority of rustc's time is spent in either codegen or LLVM, in this case, and is significantly improved by disabling derives for `fmt::Debug`, as it prevents generating all this LLVM IR to be handled. Here's a run time comparison with nightly on the same codebase (commit 454cc5f built from source vs 37c8f25 from my PR built from source): <details> <summary>nightly (Click to Expand)</summary> ``` time: 2.370; rss: 56MB -> 1118MB (+1062MB) parse_crate time: 0.000; rss: 1118MB -> 1118MB ( +0MB) attributes_injection time: 0.000; rss: 1118MB -> 1118MB ( +0MB) incr_comp_prepare_session_directory time: 0.000; rss: 1118MB -> 1118MB ( +0MB) incr_comp_garbage_collect_session_directories time: 0.000; rss: 1120MB -> 1120MB ( +0MB) plugin_loading time: 0.000; rss: 1120MB -> 1120MB ( +0MB) plugin_registration time: 0.000; rss: 1120MB -> 1120MB ( +0MB) crate_injection time: 13.897; rss: 1120MB -> 3147MB (+2027MB) expand_crate time: 0.002; rss: 3147MB -> 3147MB ( +0MB) check_unused_macros time: 13.900; rss: 1120MB -> 3147MB (+2027MB) macro_expand_crate time: 0.002; rss: 3147MB -> 3147MB ( +0MB) maybe_building_test_harness time: 0.503; rss: 3147MB -> 3147MB ( +0MB) AST_validation time: 0.000; rss: 3147MB -> 3147MB ( +0MB) maybe_create_a_macro_crate time: 0.002; rss: 3147MB -> 3147MB ( +0MB) finalize_imports time: 0.502; rss: 3147MB -> 3153MB ( +6MB) finalize_macro_resolutions time: 4.478; rss: 3153MB -> 3574MB ( +420MB) late_resolve_crate time: 0.000; rss: 3574MB -> 3574MB ( +0MB) resolve_main time: 0.332; rss: 3574MB -> 3574MB ( +0MB) resolve_check_unused time: 0.000; rss: 3574MB -> 3574MB ( +0MB) resolve_report_errors time: 0.279; rss: 3574MB -> 3574MB ( +0MB) resolve_postprocess time: 5.595; rss: 3147MB -> 3574MB ( +427MB) resolve_crate time: 0.382; rss: 3574MB -> 3574MB ( +0MB) complete_gated_feature_checking time: 20.526; rss: 1120MB -> 3574MB (+2454MB) configure_and_expand time: 0.000; rss: 3574MB -> 3574MB ( +0MB) prepare_outputs time: 0.000; rss: 3574MB -> 3574MB ( +0MB) blocked_on_dep_graph_loading time: 65.992; rss: 3574MB -> 6317MB (+2743MB) hir_lowering time: 1.117; rss: 6317MB -> 6323MB ( +6MB) early_lint_checks time: 1.447; rss: 6323MB -> 6271MB ( -52MB) drop_ast time: 0.002; rss: 5838MB -> 5838MB ( +0MB) setup_global_ctxt time: 0.000; rss: 5843MB -> 5843MB ( +0MB) looking_for_entry_point time: 0.313; rss: 5843MB -> 5844MB ( +1MB) looking_for_derive_registrar time: 9.652; rss: 5843MB -> 6065MB ( +222MB) misc_checking_1 time: 9.713; rss: 6065MB -> 6769MB ( +704MB) type_collecting time: 0.665; rss: 6769MB -> 6769MB ( +0MB) impl_wf_inference time: 0.064; rss: 6769MB -> 6769MB ( +0MB) unsafety_checking time: 3.095; rss: 6769MB -> 6792MB ( +23MB) coherence_checking time: 21.282; rss: 6792MB -> 7546MB ( +754MB) wf_checking time: 5.404; rss: 7546MB -> 7681MB ( +135MB) item_types_checking time: 79.665; rss: 7681MB -> 8075MB ( +394MB) item_bodies_checking time: 120.166; rss: 6065MB -> 8081MB (+2016MB) type_check_crate time: 2.038; rss: 8081MB -> 8085MB ( +4MB) match_checking time: 1.300; rss: 8085MB -> 8113MB ( +28MB) liveness_and_intrinsic_checking time: 3.338; rss: 8081MB -> 8113MB ( +32MB) misc_checking_2 time: 68.612; rss: 8113MB -> 9285MB (+1172MB) MIR_borrow_checking time: 0.622; rss: 9285MB -> 9301MB ( +17MB) MIR_effect_checking time: 0.000; rss: 9301MB -> 9301MB ( +0MB) layout_testing time: 4.331; rss: 9383MB -> 9510MB ( +127MB) death_checking time: 0.032; rss: 9510MB -> 9510MB ( +0MB) unused_lib_feature_checking time: 4.444; rss: 9510MB -> 9568MB ( +58MB) crate_lints time: 59.563; rss: 9568MB -> 9576MB ( +8MB) module_lints time: 64.006; rss: 9510MB -> 9576MB ( +66MB) lint_checking time: 4.127; rss: 9576MB -> 9639MB ( +62MB) privacy_checking_modules time: 77.984; rss: 9301MB -> 9639MB ( +337MB) misc_checking_3 time: 0.311; rss: 10357MB -> 10357MB ( +0MB) monomorphization_collector_root_collections time: 14.051; rss: 10357MB -> 10573MB ( +217MB) monomorphization_collector_graph_walk time: 1.759; rss: 10573MB -> 10652MB ( +79MB) partition_and_assert_distinct_symbols time: 28.518; rss: 9639MB -> 10711MB (+1072MB) generate_crate_metadata time: 0.000; rss: 10711MB -> 10711MB ( +0MB) find_cgu_reuse time: 63.408; rss: 10711MB -> 12272MB (+1560MB) codegen_to_LLVM_IR time: 64.916; rss: 10711MB -> 12267MB (+1556MB) codegen_crate time: 0.000; rss: 12261MB -> 12261MB ( +0MB) assert_dep_graph time: 0.000; rss: 12261MB -> 12261MB ( +0MB) check_dirty_clean time: 0.664; rss: 12230MB -> 12210MB ( -20MB) encode_query_results_for(rustc_query_impl::queries::type_of) time: 2.111; rss: 12210MB -> 12043MB ( -167MB) encode_query_results_for(rustc_query_impl::queries::generics_of) time: 0.108; rss: 12043MB -> 12057MB ( +14MB) encode_query_results_for(rustc_query_impl::queries::predicates_of) time: 0.004; rss: 12057MB -> 12059MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::mir_const_qualif) time: 0.665; rss: 12059MB -> 12121MB ( +62MB) encode_query_results_for(rustc_query_impl::queries::mir_for_ctfe) time: 16.149; rss: 12121MB -> 12148MB ( +28MB) encode_query_results_for(rustc_query_impl::queries::optimized_mir) time: 0.000; rss: 12148MB -> 12148MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::covered_file_name) time: 0.000; rss: 12148MB -> 12148MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::covered_code_regions) time: 0.010; rss: 12148MB -> 12150MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::promoted_mir) time: 0.052; rss: 12150MB -> 12155MB ( +4MB) encode_query_results_for(rustc_query_impl::queries::unsafety_check_result) time: 0.003; rss: 12155MB -> 12156MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::thir_check_unsafety) time: 11.428; rss: 12156MB -> 11748MB ( -408MB) encode_query_results_for(rustc_query_impl::queries::typeck) time: 0.000; rss: 11748MB -> 11748MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::diagnostic_only_typeck) time: 0.094; rss: 11748MB -> 11756MB ( +8MB) encode_query_results_for(rustc_query_impl::queries::used_trait_imports) time: 0.272; rss: 11756MB -> 11778MB ( +22MB) encode_query_results_for(rustc_query_impl::queries::mir_borrowck) time: 0.054; rss: 11778MB -> 11778MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::eval_to_allocation_raw) time: 0.005; rss: 11778MB -> 11779MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::eval_to_const_value_raw) time: 0.021; rss: 11779MB -> 11784MB ( +5MB) encode_query_results_for(rustc_query_impl::queries::check_match) time: 0.041; rss: 11784MB -> 11786MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::symbol_name) time: 0.743; rss: 11786MB -> 11815MB ( +29MB) encode_query_results_for(rustc_query_impl::queries::codegen_fn_attrs) time: 0.043; rss: 11815MB -> 11816MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::codegen_fulfill_obligation) time: 0.674; rss: 11816MB -> 11840MB ( +25MB) encode_query_results_for(rustc_query_impl::queries::specialization_graph_of) time: 0.000; rss: 11840MB -> 11840MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::adt_drop_tys) time: 0.000; rss: 11840MB -> 11840MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::adt_significant_drop_tys) time: 0.005; rss: 11840MB -> 11841MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::unused_generic_params) time: 33.153; rss: 12232MB -> 11841MB ( -390MB) encode_query_results time: 88.943; rss: 11955MB -> 11783MB ( -173MB) LLVM_passes(crate) time: 38.854; rss: 12259MB -> 10095MB (-2164MB) incr_comp_serialize_result_cache time: 39.030; rss: 12261MB -> 10095MB (-2166MB) incr_comp_persist_result_cache time: 0.000; rss: 10095MB -> 10095MB ( +0MB) incr_comp_persist_dep_graph time: 39.064; rss: 12257MB -> 10095MB (-2162MB) serialize_dep_graph time: 19.047; rss: 10095MB -> 10307MB ( +212MB) free_global_ctxt time: 0.000; rss: 10307MB -> 10307MB ( +0MB) join_worker_thread time: 0.519; rss: 10307MB -> 10307MB ( +0MB) copy_all_cgu_workproducts_to_incr_comp_cache_dir time: 0.522; rss: 10307MB -> 10307MB ( +0MB) finish_ongoing_codegen time: 0.000; rss: 10307MB -> 10307MB ( +0MB) llvm_dump_timing_file time: 0.002; rss: 10307MB -> 10307MB ( +0MB) serialize_work_products time: 0.001; rss: 9542MB -> 9542MB ( +0MB) incr_comp_finalize_session_directory time: 0.000; rss: 9542MB -> 9542MB ( +0MB) link_binary_check_files_are_writeable time: 7.835; rss: 9542MB -> 9544MB ( +2MB) link_rlib time: 0.000; rss: 9544MB -> 9544MB ( +0MB) link_binary_remove_temps time: 7.872; rss: 9542MB -> 9544MB ( +2MB) link_binary time: 7.944; rss: 9542MB -> 9201MB ( -341MB) link_crate time: 8.495; rss: 10307MB -> 9201MB (-1106MB) link time: 537.014; rss: 33MB -> 3715MB (+3682MB) total ``` </details> <details> <summary>This PR (Click to Expand)</summary> ``` time: 2.379; rss: 51MB -> 1116MB (+1064MB) parse_crate time: 0.003; rss: 1116MB -> 1116MB ( +0MB) attributes_injection time: 0.002; rss: 1116MB -> 1116MB ( +0MB) incr_comp_prepare_session_directory time: 0.000; rss: 1116MB -> 1116MB ( +0MB) incr_comp_garbage_collect_session_directories time: 0.000; rss: 1116MB -> 1116MB ( +0MB) plugin_loading time: 0.000; rss: 1116MB -> 1116MB ( +0MB) plugin_registration time: 0.003; rss: 1118MB -> 1118MB ( +0MB) crate_injection time: 13.376; rss: 1118MB -> 3143MB (+2025MB) expand_crate time: 0.002; rss: 3143MB -> 3143MB ( +0MB) check_unused_macros time: 13.379; rss: 1118MB -> 3143MB (+2025MB) macro_expand_crate time: 0.002; rss: 3143MB -> 3143MB ( +0MB) maybe_building_test_harness time: 0.479; rss: 3143MB -> 3143MB ( +0MB) AST_validation time: 0.002; rss: 3143MB -> 3143MB ( +0MB) maybe_create_a_macro_crate time: 0.005; rss: 3143MB -> 3143MB ( +0MB) finalize_imports time: 0.520; rss: 3143MB -> 3125MB ( -18MB) finalize_macro_resolutions time: 4.446; rss: 3125MB -> 3577MB ( +453MB) late_resolve_crate time: 0.000; rss: 3577MB -> 3577MB ( +0MB) resolve_main time: 0.336; rss: 3577MB -> 3577MB ( +0MB) resolve_check_unused time: 0.000; rss: 3577MB -> 3577MB ( +0MB) resolve_report_errors time: 0.295; rss: 3577MB -> 3578MB ( +0MB) resolve_postprocess time: 5.602; rss: 3143MB -> 3578MB ( +435MB) resolve_crate time: 0.388; rss: 3578MB -> 3578MB ( +0MB) complete_gated_feature_checking time: 20.014; rss: 1116MB -> 3578MB (+2462MB) configure_and_expand time: 0.000; rss: 3578MB -> 3578MB ( +0MB) prepare_outputs time: 0.000; rss: 3578MB -> 3578MB ( +0MB) blocked_on_dep_graph_loading time: 64.219; rss: 3578MB -> 6313MB (+2736MB) hir_lowering time: 1.102; rss: 6313MB -> 6319MB ( +6MB) early_lint_checks time: 1.426; rss: 6319MB -> 6268MB ( -52MB) drop_ast time: 0.005; rss: 5834MB -> 5836MB ( +2MB) setup_global_ctxt time: 0.000; rss: 5838MB -> 5838MB ( +0MB) looking_for_entry_point time: 0.292; rss: 5838MB -> 5840MB ( +1MB) looking_for_derive_registrar time: 9.553; rss: 5838MB -> 6060MB ( +222MB) misc_checking_1 time: 9.949; rss: 6060MB -> 6764MB ( +704MB) type_collecting time: 0.630; rss: 6764MB -> 6764MB ( +0MB) impl_wf_inference time: 0.060; rss: 6764MB -> 6764MB ( +0MB) unsafety_checking time: 3.054; rss: 6764MB -> 6787MB ( +23MB) coherence_checking time: 20.702; rss: 6787MB -> 7533MB ( +746MB) wf_checking time: 5.194; rss: 7533MB -> 7668MB ( +135MB) item_types_checking time: 74.677; rss: 7668MB -> 8062MB ( +394MB) item_bodies_checking time: 114.497; rss: 6060MB -> 8068MB (+2008MB) type_check_crate time: 1.891; rss: 8068MB -> 8072MB ( +4MB) match_checking time: 1.292; rss: 8072MB -> 8100MB ( +28MB) liveness_and_intrinsic_checking time: 3.183; rss: 8068MB -> 8100MB ( +32MB) misc_checking_2 time: 68.845; rss: 8100MB -> 9279MB (+1179MB) MIR_borrow_checking time: 0.587; rss: 9279MB -> 9295MB ( +17MB) MIR_effect_checking time: 0.000; rss: 9295MB -> 9295MB ( +0MB) layout_testing time: 4.443; rss: 9377MB -> 9504MB ( +127MB) death_checking time: 0.034; rss: 9504MB -> 9504MB ( +0MB) unused_lib_feature_checking time: 4.409; rss: 9504MB -> 9562MB ( +58MB) crate_lints time: 56.490; rss: 9562MB -> 9571MB ( +8MB) module_lints time: 60.900; rss: 9504MB -> 9571MB ( +66MB) lint_checking time: 4.147; rss: 9571MB -> 9633MB ( +62MB) privacy_checking_modules time: 75.094; rss: 9295MB -> 9633MB ( +337MB) misc_checking_3 time: 0.315; rss: 10357MB -> 10357MB ( +0MB) monomorphization_collector_root_collections time: 14.501; rss: 10357MB -> 10571MB ( +215MB) monomorphization_collector_graph_walk time: 1.763; rss: 10571MB -> 10661MB ( +89MB) partition_and_assert_distinct_symbols time: 29.035; rss: 9633MB -> 10706MB (+1073MB) generate_crate_metadata time: 0.000; rss: 10706MB -> 10706MB ( +0MB) find_cgu_reuse time: 30.913; rss: 10706MB -> 12150MB (+1444MB) codegen_to_LLVM_IR time: 31.108; rss: 10706MB -> 12150MB (+1444MB) codegen_crate time: 0.000; rss: 12150MB -> 12150MB ( +0MB) assert_dep_graph time: 0.000; rss: 12150MB -> 12150MB ( +0MB) check_dirty_clean time: 0.416; rss: 12152MB -> 12199MB ( +46MB) encode_query_results_for(rustc_query_impl::queries::type_of) time: 1.259; rss: 12199MB -> 12211MB ( +12MB) encode_query_results_for(rustc_query_impl::queries::generics_of) time: 0.095; rss: 12211MB -> 12193MB ( -18MB) encode_query_results_for(rustc_query_impl::queries::predicates_of) time: 0.005; rss: 12193MB -> 12195MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::mir_const_qualif) time: 0.828; rss: 12195MB -> 12208MB ( +14MB) encode_query_results_for(rustc_query_impl::queries::mir_for_ctfe) time: 17.880; rss: 12208MB -> 11987MB ( -222MB) encode_query_results_for(rustc_query_impl::queries::optimized_mir) time: 0.000; rss: 11987MB -> 11987MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::covered_file_name) time: 0.000; rss: 11987MB -> 11987MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::covered_code_regions) time: 0.007; rss: 11987MB -> 11988MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::promoted_mir) time: 0.049; rss: 11988MB -> 11992MB ( +4MB) encode_query_results_for(rustc_query_impl::queries::unsafety_check_result) time: 0.002; rss: 11992MB -> 11994MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::thir_check_unsafety) time: 38.049; rss: 11994MB -> 12093MB ( +99MB) encode_query_results_for(rustc_query_impl::queries::typeck) time: 0.000; rss: 12093MB -> 12093MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::diagnostic_only_typeck) time: 0.024; rss: 12093MB -> 12095MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::used_trait_imports) time: 0.372; rss: 12095MB -> 12053MB ( -42MB) encode_query_results_for(rustc_query_impl::queries::mir_borrowck) time: 0.015; rss: 12053MB -> 12053MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::eval_to_allocation_raw) time: 0.005; rss: 12053MB -> 12054MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::eval_to_const_value_raw) time: 0.003; rss: 12054MB -> 12056MB ( +2MB) encode_query_results_for(rustc_query_impl::queries::check_match) time: 0.037; rss: 12056MB -> 11899MB ( -157MB) encode_query_results_for(rustc_query_impl::queries::symbol_name) time: 0.667; rss: 11899MB -> 11708MB ( -191MB) encode_query_results_for(rustc_query_impl::queries::codegen_fn_attrs) time: 0.045; rss: 11708MB -> 11709MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::codegen_fulfill_obligation) time: 0.295; rss: 11709MB -> 11734MB ( +25MB) encode_query_results_for(rustc_query_impl::queries::specialization_graph_of) time: 0.000; rss: 11734MB -> 11734MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::adt_drop_tys) time: 0.000; rss: 11734MB -> 11734MB ( +0MB) encode_query_results_for(rustc_query_impl::queries::adt_significant_drop_tys) time: 0.005; rss: 11734MB -> 11734MB ( +1MB) encode_query_results_for(rustc_query_impl::queries::unused_generic_params) time: 60.063; rss: 12152MB -> 11734MB ( -418MB) encode_query_results time: 76.745; rss: 12007MB -> 11699MB ( -308MB) LLVM_passes(crate) time: 61.634; rss: 12150MB -> 10557MB (-1593MB) incr_comp_serialize_result_cache time: 61.637; rss: 12150MB -> 10557MB (-1593MB) incr_comp_persist_result_cache time: 0.001; rss: 10557MB -> 10557MB ( +0MB) incr_comp_persist_dep_graph time: 61.641; rss: 12150MB -> 10557MB (-1593MB) serialize_dep_graph time: 15.601; rss: 10557MB -> 10242MB ( -315MB) free_global_ctxt time: 0.000; rss: 10242MB -> 10242MB ( +0MB) join_worker_thread time: 0.368; rss: 10242MB -> 10242MB ( +0MB) copy_all_cgu_workproducts_to_incr_comp_cache_dir time: 0.375; rss: 10242MB -> 10242MB ( +0MB) finish_ongoing_codegen time: 0.000; rss: 10242MB -> 10242MB ( +0MB) llvm_dump_timing_file time: 0.002; rss: 10242MB -> 10242MB ( +0MB) serialize_work_products time: 0.001; rss: 9668MB -> 9668MB ( +0MB) incr_comp_finalize_session_directory time: 0.000; rss: 9668MB -> 9668MB ( +0MB) link_binary_check_files_are_writeable time: 1.469; rss: 9668MB -> 9671MB ( +3MB) link_rlib time: 0.000; rss: 9671MB -> 9671MB ( +0MB) link_binary_remove_temps time: 1.506; rss: 9668MB -> 9671MB ( +3MB) link_binary time: 1.622; rss: 9668MB -> 9329MB ( -339MB) link_crate time: 2.037; rss: 10242MB -> 9329MB ( -913MB) link time: 502.990; rss: 32MB -> 5888MB (+5855MB) total ``` </details> (6.34% decrease in runtime, results are consistent across multiple runs)
@bors r+ rollup=never p=6 |
📌 Commit 073b120 has been approved by |
⌛ Testing commit 073b120 with merge 14270e53542552b537319b6ee4a4c447acfa079a... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
None of the changes in the pr looks related at first glance, maybe spurious? |
☀️ Test successful - checks-actions |
Finished benchmarking commit (686e313): comparison url. Summary: This change led to large relevant mixed results 🤷 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression |
Note that #91266 was expected to be a performance win, but wasn't benchmarked on CI, nor marked with rollup=never. |
Successful merges:
available_parallelism
docs in anticipation of cgroup quota support #91057 (Expandavailable_parallelism
docs in anticipation of cgroup quota support)where T::Assoc = Ty
bound #91208 (Account for incorrectwhere T::Assoc = Ty
bound)Failed merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup