Skip to content
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

Merged
merged 15 commits into from
Nov 27, 2021
Merged

Rollup of 6 pull requests #91288

merged 15 commits into from
Nov 27, 2021

Commits on Aug 11, 2021

  1. Weaken guarantee around advancing underlying iterators in zip

    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.
    the8472 committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    2ff677d View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2021

  1. 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.
    the8472 committed Nov 18, 2021
    Configuration menu
    Copy the full SHA
    fd1494e View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2021

  1. Expand available_parallelism docs in anticipation of cgroup quotas

    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.
    the8472 committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    39b98e8 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2021

  1. Apply suggestions from code review

    Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
    the8472 and pierwill authored Nov 23, 2021
    Configuration menu
    Copy the full SHA
    53fc69f View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2021

  1. 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.
    estebank committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    4954389 View commit details
    Browse the repository at this point in the history
  2. Simplify rendering of stylesheet links into HTML

    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.
    jsha committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    3649b90 View commit details
    Browse the repository at this point in the history
  3. Move themes and version into rustdoc-vars

    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).
    jsha committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    f0683f9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d9afca5 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Configuration menu
    Copy the full SHA
    37c8f25 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2021

  1. Rollup merge of rust-lang#83791 - the8472:relax-zip-side-effect-guara…

    …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.
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    14ef447 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#90995 - the8472:hash-portability, r=dtolnay

    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
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    43279b2 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#91057 - the8472:clarify-parallelism-steady-…

    …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.
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    8fb58e5 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#91062 - jsha:static-file-replace, r=jyn514,…

    …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``
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    55f8b5f View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#91208 - estebank:eq-constraint, r=cjgillot

    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.
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    7c5bcd5 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#91266 - jam1garner:fmt-ptr-fix, r=dtolnay

    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)
    matthiaskrgr authored Nov 27, 2021
    Configuration menu
    Copy the full SHA
    073b120 View commit details
    Browse the repository at this point in the history