rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
97.96k stars 12.69k forks source link

Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types #91598

Closed nightkr closed 2 years ago

nightkr commented 2 years ago

1.57.0 seems to have brought a pretty deep regression in compile times for deeply nested "decorator" types, such as futures' Stream combinators.

This is a minimized version of https://github.com/kube-rs/kube-rs/issues/746.

Code

I tried this code:

use futures::{stream, StreamExt, TryStreamExt};

fn main() {
    stream::empty::<Result<(), ()>>()
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        // .boxed()
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        // .boxed()
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        // .boxed()
        .inspect_ok(|_| ())
        .inspect_ok(|_| ())
        .inspect_ok(|_| ());
}

In Rust 1.56.1, this builds in ~0.7s on my machine (excluding time spent compiling futures and its dependencies).

In Rust 1.57.0 (and the latest nightly), this takes several minutes.

Curiously, boxing into a trait object (by uncommenting the .boxed() calls) seems to act as a type checking boundary, and makes rustc 1.57.0 build it in ~0.55s.

Version it worked on

It most recently worked on: Rust 1.56.1

Version with regression

rustc --version --verbose:

rustc 1.57.0 (f1edd0429 2021-11-29)

Backtrace

There was no crash, so there is no backtrace to report.

nightkr commented 2 years ago

RUSTC_BOOTSTRAP=1 cargo rustc -- -Z new-llvm-pass-manager=no does not seem to make a difference, so this seems unrelated to #91128.

SNCPlay42 commented 2 years ago

Sounds like #89195/#89601.

the8472 commented 2 years ago

It builds in 11 seconds with #91186 (tested with build 1937cf62d0cb08000a49346c146830a7de817de3)

nightkr commented 2 years ago

Can confirm that #91186 brings my build time for the listed example down to ~9s. So it's a vast improvement over 1.57.0, but still 13x the compile time of 1.56.1.

xmo-odoo commented 2 years ago

I may have also hit that in a project of mine (currently only on my machine), initially was thinking "oh it's probably serde" as there are a ton of large serde-enabled types in the project, but this is also a project based on warp and that is very much a "deeply nested decorator types" framework.

Here are the compile time (from clean, but in 1.57 the vast, vast majority of the time is spent building the final binary which is where all the warp code lives, hence the concurrency going to shit):

cargo +1.55 b  383.07s user 24.22s system 329% cpu 2:03.43 total
cargo +1.56 b  401.37s user 27.12s system 269% cpu 2:38.97 total
cargo +1.57 b  879.49s user 53.17s system 155% cpu 9:59.98 total

The project is only 2.7kLOC (of rust) so it's not exactly gigantic

After seeing https://old.reddit.com/r/rust/comments/qdivb5/156_compile_time_is_through_the_roof/ I tried to profile-dump the result, here it is (though it's nightly), warning it's quite long but the problematic item is clearly evaluate_obligation (I have no idea what that is) as it takes 400s and >80% of the profile.

For refernce, here is what I guess is my current nightly, and how long the clean build takes on it without profiling:

❯ cargo +nightly version
cargo 1.58.0-nightly (294967c53 2021-11-29)
❯ cargo +nightly b
[...]
cargo +nightly b  751.72s user 50.64s system 150% cpu 8:51.59 total

so seems slightly better, but the regression is still there (the slightly lower average load might be due to other activities, or a sign that the regression got worse but other bits more than compensated for it).

-Z self-profile dump
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| Item                                             | Self time | % of total time | Time     | Item count | Incremental result hashing time |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| evaluate_obligation                              | 395.52s   | 81.257          | 397.82s  | 14367      | 3.94ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_fulfill_obligation                       | 32.75s    | 6.728           | 424.59s  | 5040       | 5.55ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| normalize_projection_ty                          | 19.96s    | 4.101           | 19.99s   | 3056       | 9.04ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| LLVM_passes                                      | 12.85s    | 2.641           | 12.85s   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| LLVM_module_codegen_emit_obj                     | 11.63s    | 2.389           | 11.63s   | 257        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_module                                   | 5.49s     | 1.128           | 13.41s   | 256        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| run_linker                                       | 1.59s     | 0.327           | 1.59s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| compute_debuginfo_type_name                      | 1.13s     | 0.232           | 1.13s    | 175664     | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_op_prove_predicate                          | 915.46ms  | 0.188           | 929.79ms | 2466       | 1.29ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| typeck                                           | 528.97ms  | 0.109           | 4.08s    | 253        | 7.67ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| LLVM_module_optimize                             | 489.44ms  | 0.101           | 489.44ms | 257        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| LLVM_module_codegen                              | 371.65ms  | 0.076           | 12.00s   | 257        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| monomorphization_collector_graph_walk            | 279.41ms  | 0.057           | 442.90s  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| symbol_name                                      | 259.04ms  | 0.053           | 281.12ms | 17471      | 10.62ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| normalize_generic_arg_after_erasing_regions      | 200.22ms  | 0.041           | 13.50s   | 12063      | 9.52ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_borrowck                                     | 195.98ms  | 0.040           | 5.57s    | 253        | 179.47µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_encode_dep_graph                       | 193.87ms  | 0.040           | 193.87ms | 425885     | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| fn_abi_of_instance                               | 188.67ms  | 0.039           | 6.54s    | 17592      | 28.58ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_intern_dep_graph_node                  | 143.82ms  | 0.030           | 328.23ms | 415098     | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_optimized_mir              | 134.27ms  | 0.028           | 136.01ms | 2693       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| optimized_mir                                    | 116.78ms  | 0.024           | 992.67ms | 2877       | 89.35ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| layout_of                                        | 111.66ms  | 0.023           | 4.51s    | 32608      | 17.18ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_instance                                 | 103.85ms  | 0.021           | 418.07s  | 19202      | 7.78ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| expand_crate                                     | 81.76ms   | 0.017           | 124.38ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| normalize_mir_const_after_erasing_regions        | 57.10ms   | 0.012           | 151.85ms | 5477       | 3.46ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_crate                                    | 50.16ms   | 0.010           | 456.72s  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| self_profile_alloc_query_strings                 | 49.65ms   | 0.010           | 49.65ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| param_env                                        | 49.60ms   | 0.010           | 136.78ms | 5353       | 3.74ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| eval_to_allocation_raw                           | 45.29ms   | 0.009           | 85.86ms  | 2970       | 2.32ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_register_crate                          | 41.95ms   | 0.009           | 108.79ms | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| encode_query_results_for                         | 41.28ms   | 0.008           | 41.28ms  | 25         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| free_global_ctxt                                 | 40.92ms   | 0.008           | 40.92ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| try_normalize_generic_arg_after_erasing_regions  | 39.00ms   | 0.008           | 6.36s    | 1880       | 1.04ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_shims                                        | 35.65ms   | 0.007           | 5.10s    | 1535       | 5.67ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_drops_elaborated_and_const_checked           | 35.03ms   | 0.007           | 677.99ms | 238        | 52.23µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_fn_attrs                                 | 33.70ms   | 0.007           | 92.18ms  | 4701       | 1.47ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_item_attrs                 | 30.02ms   | 0.006           | 30.02ms  | 8989       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| implementations_of_trait                         | 29.22ms   | 0.006           | 50.86ms  | 32076      | 13.40ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_built                                        | 27.35ms   | 0.006           | 4.00s    | 253        | 8.43ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| trait_impls_of                                   | 26.81ms   | 0.006           | 78.10ms  | 198        | 2.37ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| specialization_graph_of                          | 26.74ms   | 0.005           | 162.63ms | 144        | 5.26ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| conservative_is_privately_uninhabited            | 25.25ms   | 0.005           | 49.97ms  | 31424      | 7.83ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_trait_ref                                   | 23.46ms   | 0.005           | 107.17ms | 17637      | 14.02ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_adt_def                    | 21.94ms   | 0.005           | 47.93ms  | 4952       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_exported_symbols           | 20.79ms   | 0.004           | 22.77ms  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_impl_trait_ref             | 20.64ms   | 0.004           | 73.58ms  | 17515      | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| needs_drop_raw                                   | 20.19ms   | 0.004           | 5.84s    | 3668       | 833.85µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| configure_and_expand                             | 19.71ms   | 0.004           | 155.94ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| cgu_partitioning_place_roots                     | 19.64ms   | 0.004           | 23.61ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| erase_regions_ty                                 | 19.27ms   | 0.004           | 35.12ms  | 27004      | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| item_attrs                                       | 18.46ms   | 0.004           | 53.31ms  | 8989       | 11.75ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| native_libraries                                 | 18.39ms   | 0.004           | 18.53ms  | 163        | 18.27ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_of                                          | 17.31ms   | 0.004           | 5.53s    | 13995      | 7.69ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| explicit_predicates_of                           | 17.15ms   | 0.004           | 37.59ms  | 7582       | 9.56ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| assert_symbols_are_distinct                      | 17.07ms   | 0.004           | 270.39ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| predicates_of                                    | 17.00ms   | 0.003           | 116.30ms | 7582       | 3.01ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_type_of                    | 16.30ms   | 0.003           | 18.82ms  | 13432      | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| upstream_monomorphizations_for                   | 16.09ms   | 0.003           | 68.32ms  | 2400       | 14.23ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| predicates_defined_on                            | 15.87ms   | 0.003           | 72.12ms  | 7582       | 3.34ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| const_caller_location                            | 15.50ms   | 0.003           | 16.93ms  | 907        | 935.33µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| upstream_monomorphizations                       | 15.10ms   | 0.003           | 50.98ms  | 1          | 10.80ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_explicit_predicates_of     | 14.75ms   | 0.003           | 14.91ms  | 6830       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_copy_raw                                      | 14.65ms   | 0.003           | 95.55ms  | 4433       | 1.34ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| generics_of                                      | 14.38ms   | 0.003           | 29.82ms  | 7353       | 7.20ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| exported_symbols                                 | 13.24ms   | 0.003           | 36.21ms  | 163        | 13.06ms                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_parent                                      | 12.36ms   | 0.003           | 25.17ms  | 16690      | 3.81ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| def_span                                         | 12.00ms   | 0.002           | 21.06ms  | 5964       | 7.19ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| eval_to_const_value_raw                          | 11.98ms   | 0.002           | 177.98ms | 5636       | 2.72ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_lowering                                     | 10.44ms   | 0.002           | 10.44ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| should_inherit_track_caller                      | 9.70ms    | 0.002           | 29.65ms  | 4701       | 965.81µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| adt_def                                          | 9.58ms    | 0.002           | 59.71ms  | 5000       | 7.03ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_privacy                                | 9.03ms    | 0.002           | 10.45ms  | 7          | 2.24µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_fn_sig                     | 8.91ms    | 0.002           | 9.00ms   | 3666       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_generics_of                | 8.81ms    | 0.002           | 8.81ms   | 6601       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_implementations_of_trait   | 8.76ms    | 0.002           | 8.76ms   | 32076      | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| fn_sig                                           | 8.60ms    | 0.002           | 21.62ms  | 3813       | 5.01ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| opt_def_kind                                     | 8.44ms    | 0.002           | 31.16ms  | 8963       | 2.36ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| cgu_partitioning_internalize_symbols             | 7.93ms    | 0.002           | 7.93ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| inferred_outlives_of                             | 7.70ms    | 0.002           | 14.66ms  | 7582       | 2.02ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| late_resolve_crate                               | 7.65ms    | 0.002           | 9.36ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| thir_body                                        | 7.48ms    | 0.002           | 12.70ms  | 253        | 45.30µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| associated_item                                  | 7.03ms    | 0.001           | 13.03ms  | 6244       | 3.16ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| link_crate                                       | 6.79ms    | 0.001           | 1.60s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_op_normalize_predicate                      | 6.78ms    | 0.001           | 392.83ms | 1253       | 609.26µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_associated_item_def_ids    | 6.21ms    | 0.001           | 6.21ms   | 1359       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| promoted_mir                                     | 6.11ms    | 0.001           | 10.71ms  | 250        | 4.23ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_serialize_result_cache                 | 5.91ms    | 0.001           | 47.33ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| associated_items                                 | 5.89ms    | 0.001           | 23.87ms  | 1390       | 1.49ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| region_scope_tree                                | 5.85ms    | 0.001           | 6.21ms   | 425        | 3.57ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_def_span                   | 5.73ms    | 0.001           | 5.73ms   | 5291       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| cgu_partitioning_place_inline_items              | 5.58ms    | 0.001           | 5.58ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_impl_parent                | 5.46ms    | 0.001           | 5.46ms   | 16690      | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| collect_and_partition_mono_items                 | 4.67ms    | 0.001           | 443.22s  | 1          | 4.31ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_const                                        | 4.65ms    | 0.001           | 4.01s    | 253        | 42.57µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| instance_def_size_estimate                       | 4.50ms    | 0.001           | 6.40ms   | 4406       | 1.05ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| cgu_partitioning                                 | 4.49ms    | 0.001           | 48.70ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_promoted_mir               | 4.46ms    | 0.001           | 4.46ms   | 211        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_item_well_formed                           | 4.31ms    | 0.001           | 14.74ms  | 490        | 101.44µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| unsafety_check_result                            | 4.31ms    | 0.001           | 4.03s    | 253        | 79.91µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_promoted                                     | 4.27ms    | 0.001           | 4.02s    | 253        | 40.03µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| dropck_outlives                                  | 4.21ms    | 0.001           | 19.10ms  | 751        | 404.25µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_item_types                             | 4.12ms    | 0.001           | 2.37s    | 7          | 3.36µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| trait_of_item                                    | 4.05ms    | 0.001           | 8.97ms   | 3970       | 1.01ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_foreign_item                                  | 3.92ms    | 0.001           | 7.51ms   | 3975       | 920.52µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_sized_raw                                     | 3.86ms    | 0.001           | 3.39s    | 866        | 188.32µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| link_binary_remove_temps                         | 3.60ms    | 0.001           | 3.60ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| adt_dtorck_constraint                            | 3.54ms    | 0.001           | 28.81ms  | 680        | 346.64µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| method_autoderef_steps                           | 3.51ms    | 0.001           | 8.82ms   | 299        | 296.68µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_lints                                      | 3.46ms    | 0.001           | 21.79ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_reachable_non_generic                         | 3.29ms    | 0.001           | 7.24ms   | 3977       | 760.50µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_impl_item_well_formed                      | 3.25ms    | 0.001           | 11.47ms  | 107        | 24.86µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_unit                                     | 3.22ms    | 0.001           | 3.32ms   | 256        | 3.08ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| death_checking                                   | 3.22ms    | 0.001           | 5.01ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_trait_of_item              | 3.21ms    | 0.001           | 3.21ms   | 3774       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_opt_def_kind               | 3.17ms    | 0.001           | 3.17ms   | 8210       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| codegen_module_optimize                          | 3.14ms    | 0.001           | 12.49s   | 257        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_mir_available           | 2.98ms    | 0.001           | 2.98ms   | 2687       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| adt_sized_constraint                             | 2.97ms    | 0.001           | 7.61ms   | 1105       | 368.59µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| associated_item_def_ids                          | 2.87ms    | 0.001           | 9.95ms   | 1449       | 1.36ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lint_mod                                         | 2.83ms    | 0.001           | 2.92ms   | 7          | 2.15µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_associated_item            | 2.82ms    | 0.001           | 2.82ms   | 6137       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_uninhabited_from                            | 2.59ms    | 0.001           | 20.72ms  | 1578       | 319.88µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| copy_all_cgu_workproducts_to_incr_comp_cache_dir | 2.57ms    | 0.001           | 2.57ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_lifetimes                                | 2.50ms    | 0.001           | 4.10ms   | 255        | 320.43µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_liveness                               | 2.46ms    | 0.001           | 6.01ms   | 7          | 2.29µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_match                                      | 2.42ms    | 0.000           | 3.06ms   | 253        | 47.83µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_super_predicates_of        | 2.40ms    | 0.000           | 2.40ms   | 178        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| adt_drop_tys                                     | 2.34ms    | 0.000           | 27.14ms  | 412        | 157.36µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_mir_available                                 | 2.16ms    | 0.000           | 6.79ms   | 2771       | 531.49µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| implied_outlives_bounds                          | 2.15ms    | 0.000           | 2.33ms   | 320        | 162.72µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_op_ascribe_user_type                        | 2.14ms    | 0.000           | 2.29ms   | 113        | 89.36µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_inferred_outlives_of       | 2.10ms    | 0.000           | 2.10ms   | 6830       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| vtable_entries                                   | 1.97ms    | 0.000           | 1.17s    | 154        | 119.92µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_polarity                                    | 1.93ms    | 0.000           | 3.62ms   | 1518       | 596.52µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_for_ctfe                                     | 1.80ms    | 0.000           | 3.52ms   | 363        | 1.35ms                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| upstream_drop_glue_for                           | 1.73ms    | 0.000           | 20.72ms  | 1558       | 405.54µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| privacy_access_levels                            | 1.73ms    | 0.000           | 2.03ms   | 1          | 16.93µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_op_normalize_fn_sig                         | 1.72ms    | 0.000           | 2.99ms   | 372        | 177.55µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_codegened_item                                | 1.66ms    | 0.000           | 2.55ms   | 1131       | 286.56µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_mir_for_ctfe               | 1.53ms    | 0.000           | 1.54ms   | 309        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_defaultness                                 | 1.41ms    | 0.000           | 2.35ms   | 997        | 297.97µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_load_macro                              | 1.39ms    | 0.000           | 1.39ms   | 48         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| early_lint_checks                                | 1.39ms    | 0.000           | 1.39ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| drop_ast                                         | 1.31ms    | 0.000           | 1.31ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_adt_destructor             | 1.28ms    | 0.000           | 3.64ms   | 994        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_foreign_item            | 1.23ms    | 0.000           | 1.23ms   | 3745       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| static_mutability                                | 1.23ms    | 0.000           | 2.44ms   | 774        | 281.32µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| vtable_allocation                                | 1.20ms    | 0.000           | 2.13ms   | 154        | 300.83µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| pre_AST_expansion_lint_checks                    | 1.17ms    | 0.000           | 1.17ms   | 7          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| collect_mod_item_types                           | 1.16ms    | 0.000           | 11.75ms  | 7          | 1.79µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lint_levels                                      | 1.16ms    | 0.000           | 1.16ms   | 1          | 89.41µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| specializes                                      | 1.14ms    | 0.000           | 2.52ms   | 193        | 41.73µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_attrs                                  | 1.11ms    | 0.000           | 6.60ms   | 7          | 1.89µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| own_existential_vtable_entries                   | 1.11ms    | 0.000           | 3.44ms   | 26         | 19.20µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_unstable_api_usage                     | 990.05µs  | 0.000           | 2.10ms   | 7          | 1.43µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| adt_destructor                                   | 979.39µs  | 0.000           | 10.13ms  | 1042       | 245.61µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_impl_polarity              | 959.34µs  | 0.000           | 959.34µs | 1396       | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_op_normalize_ty                             | 915.98µs  | 0.000           | 1.18ms   | 343        | 134.16µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| link_binary                                      | 893.99µs  | 0.000           | 1.60s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| analysis                                         | 893.09µs  | 0.000           | 2.77s    | 1          | 317.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| visibility                                       | 862.32µs  | 0.000           | 1.73ms   | 1245       | 260.29µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| explicit_item_bounds                             | 822.99µs  | 0.000           | 1.92ms   | 98         | 337.76µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_const_qualif                                 | 820.87µs  | 0.000           | 3.74ms   | 259        | 65.05µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| reachable_non_generics                           | 810.24µs  | 0.000           | 1.96ms   | 50         | 721.05µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| drop_dep_graph                                   | 752.54µs  | 0.000           | 752.54µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| wf_checking                                      | 748.15µs  | 0.000           | 26.96ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_persist_result_cache                   | 740.32µs  | 0.000           | 48.07ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lookup_deprecation_entry                         | 730.60µs  | 0.000           | 1.69ms   | 943        | 213.34µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_module_items                                 | 712.54µs  | 0.000           | 1.38ms   | 7          | 18.00µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| cgu_partitioning_merge_cgus                      | 692.00µs  | 0.000           | 692.00µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_intrinsics                             | 670.34µs  | 0.000           | 681.88µs | 7          | 2.00µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| item_bounds                                      | 655.67µs  | 0.000           | 2.35ms   | 97         | 158.89µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_static_mutability          | 649.41µs  | 0.000           | 649.41µs | 690        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_private_in_public                          | 592.61µs  | 0.000           | 1.06ms   | 1          | 271.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_const_bodies                           | 583.57µs  | 0.000           | 924.95µs | 7          | 1.33µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_loops                                  | 494.55µs  | 0.000           | 500.17µs | 7          | 1.67µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| object_safety_violations                         | 493.08µs  | 0.000           | 2.68ms   | 8          | 3.60µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_check_unused                             | 487.58µs  | 0.000           | 487.58µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| generator_kind                                   | 475.47µs  | 0.000           | 964.48µs | 235        | 96.65µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| expn_that_defined                                | 460.41µs  | 0.000           | 872.07µs | 309        | 156.27µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| upvars_mentioned                                 | 448.05µs  | 0.000           | 665.54µs | 253        | 97.06µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| finalize_macro_resolutions                       | 440.16µs  | 0.000           | 440.16µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| late_bound_vars_map                              | 422.07µs  | 0.000           | 2.17ms   | 295        | 117.49µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| variances_of                                     | 405.65µs  | 0.000           | 965.35µs | 278        | 92.03µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_reachable_non_generics     | 404.15µs  | 0.000           | 707.16µs | 49         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_explicit_item_bounds       | 390.11µs  | 0.000           | 390.11µs | 60         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_late_bound_map                                | 384.97µs  | 0.000           | 693.50µs | 210        | 55.05µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_impl_defaultness           | 384.97µs  | 0.000           | 384.97µs | 914        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| fn_abi_of_fn_ptr                                 | 382.68µs  | 0.000           | 727.70µs | 88         | 128.28µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| AST_validation                                   | 382.56µs  | 0.000           | 382.56µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| object_lifetime_defaults_map                     | 381.34µs  | 0.000           | 615.39µs | 597        | 128.44µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_postprocess                              | 376.15µs  | 0.000           | 376.15µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| link_binary_check_files_are_writeable            | 370.27µs  | 0.000           | 370.27µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lit_to_const                                     | 370.20µs  | 0.000           | 453.36µs | 239        | 109.47µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_owner_parent                                 | 345.76µs  | 0.000           | 508.08µs | 475        | 123.23µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| stability_index                                  | 343.51µs  | 0.000           | 344.46µs | 1          | 7.24µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_finalize_session_directory             | 329.03µs  | 0.000           | 329.03µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| drop_compiler                                    | 327.30µs  | 0.000           | 327.30µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| in_scope_traits_map                              | 324.04µs  | 0.000           | 359.88µs | 85         | 255.59µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| reachable_set                                    | 319.66µs  | 0.000           | 413.56µs | 1          | 2.38µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_owner                                        | 319.37µs  | 0.000           | 526.61µs | 598        | 113.46µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| parse_crate                                      | 316.67µs  | 0.000           | 316.67µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_ctfe_mir_available                            | 310.43µs  | 0.000           | 744.47µs | 363        | 78.22µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| super_predicates_of                              | 309.02µs  | 0.000           | 2.79ms   | 178        | 149.92µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| param_env_reveal_all_normalized                  | 297.40µs  | 0.000           | 426.15µs | 239        | 99.71µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_expn_that_defined          | 289.11µs  | 0.000           | 289.11µs | 289        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| typeck_item_bodies                               | 286.90µs  | 0.000           | 99.61ms  | 1          | 272.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| MIR_borrow_checking                              | 284.91µs  | 0.000           | 77.29ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_check_crate                                 | 275.49µs  | 0.000           | 2.63s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| trait_def                                        | 271.46µs  | 0.000           | 605.63µs | 180        | 62.41µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| diagnostic_items                                 | 269.85µs  | 0.000           | 402.34µs | 163        | 79.93µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| parent_module_from_def_id                        | 259.77µs  | 0.000           | 366.51µs | 297        | 79.95µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_lookup_stability           | 252.28µs  | 0.000           | 252.28µs | 212        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| thir_abstract_const                              | 251.92µs  | 0.000           | 345.27µs | 254        | 63.33µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| finalize_imports                                 | 249.53µs  | 0.000           | 249.53µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lookup_stability                                 | 249.17µs  | 0.000           | 778.69µs | 213        | 90.09µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_trait_def                  | 249.08µs  | 0.000           | 249.08µs | 180        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| named_region_map                                 | 238.01µs  | 0.000           | 2.54ms   | 176        | 62.67µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| complete_gated_feature_checking                  | 229.50µs  | 0.000           | 229.50µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| opt_const_param_of                               | 227.17µs  | 0.000           | 330.49µs | 253        | 68.55µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_attrs                                        | 226.69µs  | 0.000           | 384.59µs | 598        | 108.19µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| coherent_trait                                   | 223.02µs  | 0.000           | 120.91ms | 12         | 4.12µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_lookup_deprecation_entry   | 223.01µs  | 0.000           | 223.01µs | 678        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_generator_kind             | 220.71µs  | 0.000           | 220.71µs | 179        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_variances_of               | 215.47µs  | 0.000           | 215.47µs | 200        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| dependency_formats                               | 208.85µs  | 0.000           | 1.17ms   | 1          | 1.33µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| get_lang_items                                   | 206.22µs  | 0.000           | 952.36µs | 1          | 3.86µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_const_fn_raw                                  | 197.58µs  | 0.000           | 490.39µs | 229        | 40.03µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| thir_check_unsafety                              | 197.50µs  | 0.000           | 321.25µs | 253        | 64.69µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_hash                                       | 194.42µs  | 0.000           | 252.37µs | 163        | 28.95µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| mir_keys                                         | 192.10µs  | 0.000           | 194.61µs | 1          | 17.42µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| inherent_impls                                   | 189.77µs  | 0.000           | 415.69µs | 136        | 79.59µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| orphan_check_crate                               | 188.31µs  | 0.000           | 203.33µs | 1          | 1.04µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| all_diagnostic_items                             | 181.44µs  | 0.000           | 359.49µs | 1          | 27.02µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| MIR_effect_checking                              | 179.82µs  | 0.000           | 805.95µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| inferred_outlives_crate                          | 179.26µs  | 0.000           | 1.24ms   | 1          | 9.76µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_visibility                 | 179.23µs  | 0.000           | 179.23µs | 531        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crates                                           | 176.82µs  | 0.000           | 187.28µs | 1          | 174.56µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_inherent_impls             | 175.81µs  | 0.000           | 175.81µs | 86         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_impl_wf                                | 172.04µs  | 0.000           | 190.87µs | 7          | 1.59µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| postorder_cnums                                  | 170.71µs  | 0.000           | 171.21µs | 1          | 6.58µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| prepare_outputs                                  | 166.20µs  | 0.000           | 166.20µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
|                                         | 160.35µs  | 0.000           | 0.00ns   | 0          | 160.35µs                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_variances                                  | 159.68µs  | 0.000           | 194.11µs | 1          | 5.25µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| used_trait_imports                               | 159.20µs  | 0.000           | 245.47µs | 253        | 68.06µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_name                                       | 151.62µs  | 0.000           | 230.06µs | 163        | 54.32µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| serialize_work_products                          | 147.77µs  | 0.000           | 147.77µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| entry_fn                                         | 147.67µs  | 0.000           | 469.94µs | 1          | 641.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_mod_naked_functions                        | 143.28µs  | 0.000           | 149.47µs | 7          | 2.02µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_ctfe_mir_available      | 141.50µs  | 0.000           | 141.50µs | 309        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| encode_query_results                             | 140.49µs  | 0.000           | 41.42ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| used_crate_source                                | 140.21µs  | 0.000           | 211.54µs | 162        | 71.41µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| symbol_mangling_version                          | 138.89µs  | 0.000           | 221.15µs | 64         | 28.40µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_prepare_session_directory              | 135.56µs  | 0.000           | 135.56µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| dep_kind                                         | 128.50µs  | 0.000           | 194.41µs | 162        | 26.70µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| match_checking                                   | 125.23µs  | 0.000           | 3.18ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| monomorphization_collector_root_collections      | 124.06µs  | 0.000           | 847.15µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_prepare_load_dep_graph                 | 119.34µs  | 0.000           | 119.34µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_owner_nodes                                  | 116.68µs  | 0.000           | 193.52µs | 257        | 52.72µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_load_dep_graph                         | 109.98µs  | 0.000           | 109.98µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_injection                                  | 109.83µs  | 0.000           | 109.83µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| issue33140_self_ty                               | 109.36µs  | 0.000           | 196.28µs | 94         | 24.34µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| has_typeck_results                               | 105.93µs  | 0.000           | 155.71µs | 87         | 21.84µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_no_builtins                                   | 105.16µs  | 0.000           | 177.57µs | 162        | 28.84µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_profiler_runtime                              | 105.09µs  | 0.000           | 209.29µs | 162        | 29.49µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_constness                                   | 98.55µs   | 0.000           | 159.96µs | 91         | 23.04µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| defined_lang_items                               | 98.37µs   | 0.000           | 321.45µs | 162        | 44.83µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_unreachable_local_definition                  | 92.78µs   | 0.000           | 130.36µs | 58         | 15.69µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_inherent_impls                             | 89.85µs   | 0.000           | 90.70µs  | 1          | 4.04µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_compiler_builtins                             | 87.90µs   | 0.000           | 139.76µs | 163        | 23.95µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| panic_in_drop_strategy                           | 87.48µs   | 0.000           | 138.40µs | 155        | 25.37µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| missing_lang_items                               | 87.23µs   | 0.000           | 172.09µs | 162        | 28.46µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_panic_runtime                                 | 86.44µs   | 0.000           | 153.90µs | 163        | 23.77µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| panic_strategy                                   | 86.22µs   | 0.000           | 137.45µs | 155        | 25.62µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| setup_global_ctxt                                | 82.56µs   | 0.000           | 82.56µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| maybe_unused_trait_import                        | 78.00µs   | 0.000           | 129.55µs | 174        | 28.61µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_diagnostic_items           | 77.64µs   | 0.000           | 77.64µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| destructure_const                                | 76.77µs   | 0.000           | 124.87µs | 20         | 8.44µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| write_allocator_module                           | 76.25µs   | 0.000           | 76.25µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| unsafety_checking                                | 75.79µs   | 0.000           | 75.79µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_native_libraries           | 75.73µs   | 0.000           | 75.73µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_const_fn_raw            | 71.14µs   | 0.000           | 71.14µs  | 87         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| default_anon_const_substs                        | 70.27µs   | 0.000           | 142.28µs | 24         | 12.64µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| normalize_opaque_types                           | 67.28µs   | 0.000           | 87.55µs  | 34         | 13.44µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| has_structural_eq_impls                          | 66.26µs   | 0.000           | 1.78ms   | 8          | 1.88µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_param_predicates                            | 62.71µs   | 0.000           | 340.02µs | 8          | 6.22µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| symbols_for_closure_captures                     | 58.86µs   | 0.000           | 65.05µs  | 17         | 7.96µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_promotable_const_fn                           | 56.86µs   | 0.000           | 197.69µs | 48         | 7.38µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lib_features                                     | 55.02µs   | 0.000           | 56.11µs  | 1          | 2.55µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| crate_inherent_impls_overlap_check               | 52.48µs   | 0.000           | 107.87µs | 1          | 284.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| subst_and_check_impossible_predicates            | 51.96µs   | 0.000           | 146.93µs | 49         | 8.14µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| misc_checking_1                                  | 50.07µs   | 0.000           | 10.84ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_defined_lang_items         | 49.08µs   | 0.000           | 187.24µs | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| coherence_checking                               | 43.91µs   | 0.000           | 116.53ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_symbol_mangling_version    | 41.99µs   | 0.000           | 41.99µs  | 64         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| link                                             | 41.76µs   | 0.000           | 1.61s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| serialize_dep_graph                              | 41.48µs   | 0.000           | 48.15ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_load_query_result_cache                | 38.11µs   | 0.000           | 38.11µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| find_cgu_reuse                                   | 36.63µs   | 0.000           | 36.63µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| module_exports                                   | 34.99µs   | 0.000           | 35.48µs  | 1          | 33.93µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| proc_macro_decls_static                          | 32.66µs   | 0.000           | 34.32µs  | 1          | 375.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_used_crate_source          | 30.99µs   | 0.000           | 30.99µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| partition_and_assert_distinct_symbols            | 30.47µs   | 0.000           | 319.12ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lookup_const_stability                           | 27.68µs   | 0.000           | 58.56µs  | 16         | 7.84µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| item_types_checking                              | 27.53µs   | 0.000           | 2.37s    | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_impl_constness             | 27.46µs   | 0.000           | 27.46µs  | 89         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_persist_dep_graph                      | 27.03µs   | 0.000           | 38.52µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| coerce_unsized_info                              | 25.74µs   | 0.000           | 35.46µs  | 4          | 2.37µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_lookup_const_stability     | 25.15µs   | 0.000           | 25.15µs  | 16         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_crate_name                 | 25.04µs   | 0.000           | 25.04µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| super_predicates_that_define_assoc_type          | 22.76µs   | 0.000           | 50.92µs  | 14         | 6.26µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| liveness_and_intrinsic_checking                  | 22.31µs   | 0.000           | 6.71ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| supported_target_features                        | 22.14µs   | 0.000           | 22.53µs  | 1          | 11.32µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_panic_runtime           | 20.69µs   | 0.000           | 20.69µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_missing_lang_items         | 20.60µs   | 0.000           | 20.60µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_freeze_raw                                    | 20.21µs   | 0.000           | 702.00µs | 4          | 923.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| macro_expand_crate                               | 19.19µs   | 0.000           | 124.40ms | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| blocked_on_dep_graph_loading                     | 17.81µs   | 0.000           | 17.81µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_garbage_collect_session_directories    | 17.62µs   | 0.000           | 17.62µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_dep_kind                   | 16.65µs   | 0.000           | 16.65µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_profiler_runtime        | 16.09µs   | 0.000           | 16.09µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| is_private_dep                                   | 13.89µs   | 0.000           | 20.38µs  | 12         | 2.06µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| type_collecting                                  | 13.67µs   | 0.000           | 11.76ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| all_local_trait_impls                            | 12.52µs   | 0.000           | 13.58µs  | 1          | 11.18µs                         |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| misc_checking_3                                  | 11.93µs   | 0.000           | 43.37ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_no_builtins             | 11.59µs   | 0.000           | 11.59µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| privacy_checking_modules                         | 11.01µs   | 0.000           | 10.46ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| unused_lib_feature_checking                      | 10.73µs   | 0.000           | 66.84µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_compiler_builtins       | 10.68µs   | 0.000           | 10.68µs  | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| item_bodies_checking                             | 9.69µs    | 0.000           | 99.62ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| deref_const                                      | 9.20µs    | 0.000           | 24.91µs  | 4          | 1.50µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| asyncness                                        | 8.71µs    | 0.000           | 9.17µs   | 1          | 464.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_crate_hash                 | 8.65µs    | 0.000           | 8.65µs   | 162        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_coerce_unsized_info        | 7.80µs    | 0.000           | 7.80µs   | 4          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_panic_in_drop_strategy     | 7.62µs    | 0.000           | 7.62µs   | 155        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| finish_ongoing_codegen                           | 7.51µs    | 0.000           | 2.58ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_panic_strategy             | 7.46µs    | 0.000           | 7.46µs   | 155        | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| module_lints                                     | 7.43µs    | 0.000           | 2.92ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| features_query                                   | 7.14µs    | 0.000           | 7.42µs   | 1          | 6.69µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| impl_wf_inference                                | 6.87µs    | 0.000           | 197.73µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_crate                                    | 5.50µs    | 0.000           | 10.92ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| join_worker_thread                               | 5.26µs    | 0.000           | 5.26µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| hir_crate                                        | 4.54µs    | 0.000           | 15.34µs  | 1          | 923.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| attributes_injection                             | 4.00µs    | 0.000           | 4.00µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| extern_mod_stmt_cnum                             | 3.72µs    | 0.000           | 5.28µs   | 4          | 1.15µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_mir_const_qualif           | 3.65µs    | 0.000           | 3.65µs   | 6          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| plugin_loading                                   | 3.52µs    | 0.000           | 3.52µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_is_private_dep             | 3.11µs    | 0.000           | 3.11µs   | 11         | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| allocator_kind                                   | 3.05µs    | 0.000           | 3.45µs   | 1          | 501.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| limits                                           | 3.03µs    | 0.000           | 3.50µs   | 1          | 421.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| lint_checking                                    | 2.77µs    | 0.000           | 24.72ms  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| output_filenames                                 | 2.49µs    | 0.000           | 3.04µs   | 1          | 1.38µs                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| incr_comp_query_cache_promotion                  | 2.42µs    | 0.000           | 2.42µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| misc_checking_2                                  | 2.27µs    | 0.000           | 9.90ms   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| monomorphization_collector                       | 2.19µs    | 0.000           | 442.90s  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| backend_optimization_level                       | 2.11µs    | 0.000           | 2.73µs   | 1          | 631.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| assert_dep_graph                                 | 1.99µs    | 0.000           | 1.99µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| looking_for_entry_point                          | 1.89µs    | 0.000           | 471.83µs | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| looking_for_derive_registrar                     | 1.84µs    | 0.000           | 36.16µs  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| maybe_create_a_macro_crate                       | 1.45µs    | 0.000           | 1.45µs   | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| maybe_unused_extern_crates                       | 1.08µs    | 0.000           | 1.43µs   | 1          | 456.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| metadata_decode_entry_thir_abstract_const        | 930.00ns  | 0.000           | 930.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| maybe_building_test_harness                      | 808.00ns  | 0.000           | 808.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolutions                                      | 659.00ns  | 0.000           | 990.00ns | 1          | 134.00ns                        |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_unused_macros                              | 633.00ns  | 0.000           | 633.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_main                                     | 478.00ns  | 0.000           | 478.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| write_crate_metadata                             | 408.00ns  | 0.000           | 408.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| layout_testing                                   | 404.00ns  | 0.000           | 404.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| llvm_dump_timing_file                            | 352.00ns  | 0.000           | 352.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| resolve_report_errors                            | 298.00ns  | 0.000           | 298.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| check_dirty_clean                                | 145.00ns  | 0.000           | 145.00ns | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
| plugin_registration                              | 86.00ns   | 0.000           | 86.00ns  | 1          | 0.00ns                          |
+--------------------------------------------------+-----------+-----------------+----------+------------+---------------------------------+
Total cpu time: 486.758548417s
+----------------------------+-----------------+
| Item                       | Artifact Size   |
+----------------------------+-----------------+
| codegen_unit_size_estimate | 329776 bytes    |
+----------------------------+-----------------+
| dep_graph                  | 25659685 bytes  |
+----------------------------+-----------------+
| linked_artifact            | 337257528 bytes |
+----------------------------+-----------------+
| object_file                | 436355120 bytes |
+----------------------------+-----------------+
| query_cache                | 16709679 bytes  |
+----------------------------+-----------------+
| work_product_index         | 13514 bytes     |
+----------------------------+-----------------+
apiraino commented 2 years ago

I've put together a small reproducible project for the Warp web framework case (which seems to be specifically hit by this regression as @xmo-odoo correctly mentions). It's not exactly the MCVE I wish I could provide, hopefully it's a good start. https://github.com/apiraino/test-regression-157

Time spent compiling is comparable in both 1.56.1 and 1.57.0. Linking is where the regression is apparent.

In case it's relevant here's the compile/link flags:

[profile.dev]
lto = "off"
codegen-units = 16
incremental = true
rpath = false
split-debuginfo = "unpacked"
xmo-odoo commented 2 years ago

FWIW I tested #91186 locally (thanks @teozkr for their help building and installing rustc from a pr) and it seems to more or less fix the regression for me:

cargo +stage1 build  432.53s user 19.88s system 356% cpu 2:06.87 total

there's a marginal slowdown (it's a bit slower than 1.55 while using a larger %cpu, and a good 50s more USER CPU time, possibly because it's only a stage 1 compiler?) but it mostly resolves the issue.

nightkr commented 2 years ago

I realized that I was only using the stage1 compiler, but stage2 ended up having roughly the same performance.

apiraino commented 2 years ago

Assigning priority as discussed in the Zulip thread of the Prioritization Working Group.

@rustbot label -I-prioritize +P-critical

pnkfelix commented 2 years ago

@rustbot assign @Aaron1011

Aaron1011 commented 2 years ago

Compilation time appears to be improved on the latest nightly (though still not as good as in 1.56.1)

rkuhn commented 2 years ago

This issue also surfaces in https://github.com/ipfs-rust/ipfs-embed/issues/109, currently nightly does not fix it (i.e. I haven’t been able to build any of the binaries in that project): nightly stops reporting progress after monomorphization_collector_root_collections, so I assume that monomorphization_collector_graph_walk basically runs forever.

apiraino commented 2 years ago

Update on my previous comment: I report a substancial massive improvement on my test repository with a recent nightly:

Version Command Time
1.56.1 cargo clean ; time cargo +1.56.1 build ~1m1s
1.57.0 cargo clean ; time cargo +1.57.0 build ~1m52s
nightly 2021-12-30 cargo clean ; time cargo +nightly-2021-12-30-x86_64-unknown-linux-gnu build 0m34s
nightkr commented 2 years ago

Can confirm! nightly now seems to beat 1.56.1 handily.

the8472 commented 2 years ago

This issue also surfaces in ipfs-rust/ipfs-embed#109, currently nightly does not fix it (i.e. I haven’t been able to build any of the binaries in that project): nightly stops reporting progress after monomorphization_collector_root_collections, so I assume that monomorphization_collector_graph_walk basically runs forever.

I have tried the reproducer from https://github.com/ipfs-rust/ipfs-embed/issues/109#issuecomment-980819604 appears to hang on beta and and builds in 42s on nightly.

rkuhn commented 2 years ago

Can confirm, with the nightly from Dec 31 it builds one of the binaries in 8.9 instead of 14.2 seconds (the latter with 1.56.1 — I wasn’t patient enough for 1.57).

apiraino commented 2 years ago

Checking progress here, @teozkr @rkuhn did you have a chance to test against the new stable 1.58 if it solves the issue also for you? thanks

nightkr commented 2 years ago

@apiraino In my testing, 1.58.0 was as broken as 1.57.0, while the 1.59 beta fixes the issue.

xmo-odoo commented 2 years ago

@apiraino for my use-case (warp-related), the issue is not just fixed but significantly improved compared even to 1.55: it looks like the final linking / binary generation has been parallelised? I get a much higher average system utilisation (almost 400%, versus 300 in 1.55, and a paltry 140 in 1.57 where the final binary liking took ages and only loaded a single core) alongside a slightly lower USER%:

❯ cargo +1.58 b 2> /dev/null
cargo +1.58 b 2> /dev/null  298.57s user 21.41s system 392% cpu 1:21.51 total
❯ cargo +1.57 b 2> /dev/null
cargo +1.57 b 2> /dev/null  842.88s user 48.73s system 142% cpu 10:24.91 total
❯ cargo +1.56 b 2> /dev/null
cargo +1.56 b 2> /dev/null  436.38s user 26.57s system 244% cpu 3:09.43 total
❯ cargo +1.55 b 2> /dev/null
cargo +1.55 b 2> /dev/null  350.74s user 22.00s system 313% cpu 1:59.04 total
rkuhn commented 2 years ago

@apiraino no dice: with 1.58.1 I can’t get the tests to compile (i.e. it takes more than just a few minutes), you may try this branch if you want to play with it. On nightly the hot build of the tests (cargo build --tests) takes 7sec for me. On 1.56.1 it was 9sec.

rkuhn commented 2 years ago

On 1.59.0-beta.3 it takes 8sec, so it seems fixed for 1.59.

apiraino commented 2 years ago

I'm going to close this issue as the numbers are showing this should be solved. In case it can be reopened or follow-up issues can be created.