Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conditionally fuse small constant constant integer switches when lowering slice patterns #136417

Draft
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

xacrimon
Copy link

@xacrimon xacrimon commented Feb 2, 2025

Partial solution significantly improving #110870 but not a "perfect for every case" solution. Somewhat spiritual successor to #121540.

I recently hacked together a fully functional PoC of what was attempted in #121540 using a hidden const impl Trait lang-item shoved into a private core module, which allowed PartialEq like behaviour and easy lowering of TestKind::Eq into efficient comparisons with very simple MIR.

However I quickly discovered there was in fact more to the story than this. Unfortuantely we can't just use that hack or wait until we get const impl Trait on PartialEq. Simply detecting constant sequences and lowering them carelessly into TestKind::Eq and through some trait yielded some very good improvements in very specific patterns but often significantly worsened codegen for "common" patterns. A typical example is a match of a &[u8] against a decent set of branches, each having some OR patterns on top of bytestring literals, say you're converting an error string from C into an enum for example. Carelessly lowering these into slice comparisons eliminated opportunities for "match decision tree magic" and in my testing most commonly degenerated into a long sequence of one-by-one slice equality checks, then I might as well use an if .. else chain...

Good match lowering is highly conditional on being able to pick kinds of tests in an order that gives it as much information as possible for as little test cost as possible, and being able to extract meaningful info from said test results. As a result, something slightly more clever is probably going to be needed to provide consistently decent codegen. Whatever exactly that is, it probably involves deciding between slice tests, indexed primitive tests and fused constant tests dynamically while lowering.

This PR is the first in probably a larger long-running project for me focused on making improvements to this. In particular some way to more intelligently pick tests, give the test picker ability to reason about sequences of patterns and additional kinds of tests that can be picked for them, like slice equality.

Since we don't have const impl Trait for PartialEq yet, and anything related is quite a ways out, this PR attempts to cut some low hanging fruit that is easy to do now, will be necessary later anyhow (to properly utilize slice comparisons) and seems to improve both code size and performance substantially in match snippets I've looked at so far. It does this by doing two main new things:

  • introducing a new lowering system for PatKind::Array and PatKind::Slice, allowing meaningful patterns to be identified in their elems/subpatterns and this translated into the generated match pair trees.
  • conditional optimization when lowering constant and sequential match pair trees of small integers like u8 and u16 which can fuse many comparisons into one, without completely loosing the branching ability that makes slice comparisons hard to implement without strong regressions in typical patterns.

Left to do before review on my end

  • Get rid of THIR patterns in the arenas
  • Resolve currently failing tests
  • Put together a collection of samples of bad codegen that is now less bad

r? @ghost

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 2, 2025
@xacrimon
Copy link
Author

xacrimon commented Feb 2, 2025

@rustbot label +S-waiting-on-author -S-waiting-on-review

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 2, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling tracing-tree v0.3.1
   Compiling rinja v0.3.5

thread 'rustc' panicked at compiler/rustc_mir_transform/src/validate.rs:80:25:
broken MIR in Item(DefId(0:916 ~ rustdoc[ba81]::clean::utils::format_integer_with_underscore_sep)) (after phase change to runtime-optimized) at bb5[0]:
the value 0x6f30 is not a proper u8
   0:     0x7f1fb5073d81 - <<std[c044a44b1283b693]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[15592c06caabf6d5]::fmt::Display>::fmt
   1:     0x7f1fb50d1763 - core[15592c06caabf6d5]::fmt::write
   2:     0x7f1fb50675b9 - <std[c044a44b1283b693]::sys::pal::unix::stdio::Stderr as std[c044a44b1283b693]::io::Write>::write_fmt
   3:     0x7f1fb5073c22 - <std[c044a44b1283b693]::sys::backtrace::BacktraceLock>::print
   3:     0x7f1fb5073c22 - <std[c044a44b1283b693]::sys::backtrace::BacktraceLock>::print
   4:     0x7f1fb5076679 - std[c044a44b1283b693]::panicking::default_hook::{closure#0}
   5:     0x7f1fb5076488 - std[c044a44b1283b693]::panicking::default_hook
   6:     0x7f1fb0a2df98 - <alloc[b339aa790f4a69ce]::boxed::Box<rustc_driver_impl[160b713536888786]::install_ice_hook::{closure#1}> as core[15592c06caabf6d5]::ops::function::Fn<(&dyn for<'a, 'b> core[15592c06caabf6d5]::ops::function::Fn<(&'a std[c044a44b1283b693]::panic::PanicHookInfo<'b>,), Output = ()> + core[15592c06caabf6d5]::marker::Send + core[15592c06caabf6d5]::marker::Sync, &std[c044a44b1283b693]::panic::PanicHookInfo)>>::call
   7:     0x7f1fb5077283 - std[c044a44b1283b693]::panicking::rust_panic_with_hook
   8:     0x7f1fb5076e9e - std[c044a44b1283b693]::panicking::begin_panic_handler::{closure#0}
   9:     0x7f1fb50743a9 - std[c044a44b1283b693]::sys::backtrace::__rust_end_short_backtrace::<std[c044a44b1283b693]::panicking::begin_panic_handler::{closure#0}, !>
  11:     0x7f1fb08f1860 - core[15592c06caabf6d5]::panicking::panic_fmt
  11:     0x7f1fb08f1860 - core[15592c06caabf6d5]::panicking::panic_fmt
  12:     0x7f1fb1cc1e6b - <rustc_mir_transform[a22a0f5acd1749a7]::validate::CfgChecker>::fail::<alloc[b339aa790f4a69ce]::string::String>
  13:     0x7f1fb1cc1399 - <rustc_mir_transform[a22a0f5acd1749a7]::validate::Validator as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  14:     0x7f1fb1b668e9 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  15:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  16:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  17:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  18:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  19:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  20:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  21:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
  22:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
  23:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  24:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  25:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
  26:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
  27:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  28:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  29:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  30:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  31:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  32:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  33:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  34:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  35:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  36:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
  37:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
  38:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  39:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  40:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
  41:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
  42:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  43:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  44:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  45:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  46:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  47:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  48:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  49:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  50:     0x7f1fb47997e2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  51:     0x7f1fb47aa638 - <rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt>::instance_mir
  52:     0x7f1fb1b7e387 - rustc_mir_transform[a22a0f5acd1749a7]::inline::try_instance_mir
  53:     0x7f1fb1b7565c - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  54:     0x7f1fb1b77196 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  55:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  56:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  57:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  58:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  59:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  60:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  61:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  62:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  63:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
  64:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
  65:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  66:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  67:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
  68:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
  69:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  70:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  71:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  72:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  73:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  74:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  75:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  76:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  77:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  78:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
  79:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
  80:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  81:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  82:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
  83:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
  84:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
  85:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
  86:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
  87:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
  88:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
  89:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  90:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  91:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  92:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
  93:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
  94:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
  95:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
  96:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
  97:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
  98:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
  99:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 100:     0x7f1fb1b77196 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 101:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
 102:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
 103:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
 104:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 105:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 106:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 107:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
 108:     0x7f1fb47997e2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
 109:     0x7f1fb47aa638 - <rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt>::instance_mir
 110:     0x7f1fb1b7e387 - rustc_mir_transform[a22a0f5acd1749a7]::inline::try_instance_mir
 111:     0x7f1fb1b7565c - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 112:     0x7f1fb1b77196 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 113:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
 114:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
 115:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
 116:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 117:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 118:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 119:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
 120:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
 121:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
 122:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
 123:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 124:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 125:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
 126:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
 127:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 128:     0x7f1fb1b77196 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 129:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
 130:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
 131:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
 132:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 133:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 134:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 135:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
 136:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
 137:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
 138:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
 139:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 140:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 141:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
 142:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
 143:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 144:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
 145:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
 146:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
 147:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 148:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 149:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 150:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
 151:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
 152:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
 153:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
 154:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 155:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 156:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
 157:     0x7f1fb1b545de - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
 158:     0x7f1fb1b750c9 - rustc_mir_transform[a22a0f5acd1749a7]::inline::process_blocks::<rustc_mir_transform[a22a0f5acd1749a7]::inline::NormalInliner>
 159:     0x7f1fb1b6e9dd - <rustc_mir_transform[a22a0f5acd1749a7]::inline::Inline as rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::MirPass>::run_pass
 160:     0x7f1fb1b65f76 - rustc_mir_transform[a22a0f5acd1749a7]::pass_manager::run_passes_inner
 161:     0x7f1fb1b6aec0 - rustc_mir_transform[a22a0f5acd1749a7]::optimized_mir
 162:     0x7f1fb311f697 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 163:     0x7f1fb34c3c79 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 164:     0x7f1fb2ff5e79 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 165:     0x7f1fb3429ade - rustc_query_impl[ee4d1298d171efd5]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
 166:     0x7f1fb1ccfee2 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>>
 167:     0x7f1fb1ce9e4d - rustc_mir_transform[a22a0f5acd1749a7]::cross_crate_inline::cross_crate_inlinable
 168:     0x7f1fb3131b77 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>
 169:     0x7f1fb3219759 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, rustc_span[3a183bfc41840f46]::def_id::DefId)>>::call_once
 170:     0x7f1fb2fec07b - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 171:     0x7f1fb33c629c - rustc_query_impl[ee4d1298d171efd5]::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
 172:     0x7f1fb2d148c1 - rustc_middle[42afeac9472b8ce9]::query::plumbing::query_get_at::<rustc_query_system[415e5057adcd67e0]::query::caches::DefIdCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 1usize]>>>
 173:     0x7f1fb2d20f29 - rustc_passes[514ad1dcf749765]::reachable::recursively_reachable
 174:     0x7f1fb2d22408 - rustc_passes[514ad1dcf749765]::reachable::reachable_set
 175:     0x7f1fb311fac5 - rustc_query_impl[ee4d1298d171efd5]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ee4d1298d171efd5]::query_impl::reachable_set::dynamic_query::{closure#2}::{closure#0}, rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>
 176:     0x7f1fb3214df1 - <rustc_query_impl[ee4d1298d171efd5]::query_impl::reachable_set::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt, ())>>::call_once
 177:     0x7f1fb3001fc6 - rustc_query_system[415e5057adcd67e0]::query::plumbing::try_execute_query::<rustc_query_impl[ee4d1298d171efd5]::DynamicConfig<rustc_query_system[415e5057adcd67e0]::query::caches::SingleCache<rustc_middle[42afeac9472b8ce9]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ee4d1298d171efd5]::plumbing::QueryCtxt, false>
 178:     0x7f1fb32f4ae2 - rustc_query_impl[ee4d1298d171efd5]::query_impl::reachable_set::get_query_non_incr::__rust_end_short_backtrace
 179:     0x7f1fb404f047 - <rustc_metadata[a37160da14e4f989]::rmeta::encoder::EncodeContext>::encode_crate_root
 180:     0x7f1fb405f232 - rustc_metadata[a37160da14e4f989]::rmeta::encoder::encode_metadata
 181:     0x7f1fb41b5dcf - rustc_metadata[a37160da14e4f989]::fs::encode_and_write_metadata
 182:     0x7f1fb0c538a2 - <rustc_interface[d54e8cf7bb20fce2]::queries::Linker>::codegen_and_build_linker
 183:     0x7f1fb09b1f8c - <std[c044a44b1283b693]::thread::local::LocalKey<core[15592c06caabf6d5]::cell::Cell<*const ()>>>::with::<rustc_middle[42afeac9472b8ce9]::ty::context::tls::enter_context<<rustc_middle[42afeac9472b8ce9]::ty::context::GlobalCtxt>::enter<rustc_interface[d54e8cf7bb20fce2]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>, rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>>::{closure#1}, core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>>::{closure#0}, core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>>
 184:     0x7f1fb093adfa - <rustc_middle[42afeac9472b8ce9]::ty::context::TyCtxt>::create_global_ctxt::<core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>, rustc_interface[d54e8cf7bb20fce2]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>, rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
 185:     0x7f1fb09fb514 - <rustc_interface[d54e8cf7bb20fce2]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>, rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(&rustc_session[b62ef9781f5168bc]::session::Session, rustc_middle[42afeac9472b8ce9]::ty::context::CurrentGcx, &std[c044a44b1283b693]::sync::once_lock::OnceLock<rustc_middle[42afeac9472b8ce9]::ty::context::GlobalCtxt>, &rustc_data_structures[42a644dcc5e0687b]::sync::worker_local::WorkerLocal<rustc_middle[42afeac9472b8ce9]::arena::Arena>, &rustc_data_structures[42a644dcc5e0687b]::sync::worker_local::WorkerLocal<rustc_hir[77b4b0c239462657]::Arena>, rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
 186:     0x7f1fb09f96f4 - rustc_interface[d54e8cf7bb20fce2]::passes::create_and_enter_global_ctxt::<core[15592c06caabf6d5]::option::Option<rustc_interface[d54e8cf7bb20fce2]::queries::Linker>, rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}::{closure#2}>
 187:     0x7f1fb0a1363e - <scoped_tls[bf7abbac846ce9d2]::ScopedKey<rustc_span[3a183bfc41840f46]::SessionGlobals>>::set::<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_with_globals<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_pool_with_globals<rustc_interface[d54e8cf7bb20fce2]::interface::run_compiler<(), rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
 188:     0x7f1fb09b0b10 - rustc_span[3a183bfc41840f46]::create_session_globals_then::<(), rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_with_globals<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_pool_with_globals<rustc_interface[d54e8cf7bb20fce2]::interface::run_compiler<(), rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
 189:     0x7f1fb09d14e2 - std[c044a44b1283b693]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_with_globals<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_pool_with_globals<rustc_interface[d54e8cf7bb20fce2]::interface::run_compiler<(), rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
 190:     0x7f1fb09d2933 - <<std[c044a44b1283b693]::thread::Builder>::spawn_unchecked_<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_with_globals<rustc_interface[d54e8cf7bb20fce2]::util::run_in_thread_pool_with_globals<rustc_interface[d54e8cf7bb20fce2]::interface::run_compiler<(), rustc_driver_impl[160b713536888786]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[15592c06caabf6d5]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 191:     0x7f1fb5083685 - <std[c044a44b1283b693]::sys::pal::unix::thread::Thread>::new::thread_start
 193:     0x7f1fafcfd850 - <unknown>
 194:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.
---
warning: the ICE couldn't be written to `/checkout/rustc-ice-2025-02-02T03_11_41-24249.txt`: Read-only file system (os error 30)

note: rustc 1.86.0-nightly (3aa63edee 2025-02-02) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C opt-level=3 -C embed-bitcode=no -C debug-assertions=on -C symbol-mangling-version=v0 -Z unstable-options -Z macro-backtrace -C split-debuginfo=off -C link-arg=-L/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/lib -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -Z unstable-options -Z binary-dep-depinfo -Z on-broken-pipe=kill -Z tls-model=initial-exec
note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [optimized_mir] optimizing MIR for `clean::utils::format_integer_with_underscore_sep`
#0 [optimized_mir] optimizing MIR for `clean::utils::format_integer_with_underscore_sep`
#1 [cross_crate_inlinable] whether the item should be made inlinable across crates
... and 19 other queries... use `env RUST_BACKTRACE=1` to see the full query stack

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc /checkout/obj/build/bootstrap/debug/rustc --crate-name rustdoc --edition=2021 src/librustdoc/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debug-assertions=on --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("jemalloc"))' -C metadata=88831c43dabd0a55 -C extra-filename=-cf355331c3f40bce --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps --extern arrayvec=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libarrayvec-ea91b8e5e76583b7.rmeta --extern base64=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libbase64-601cc2561f2cf20c.rmeta --extern indexmap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libindexmap-0323adaf4876ef93.rmeta --extern itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-9656da8cc10b9684.rmeta --extern minifier=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libminifier-6c9408522c35fe31.rmeta --extern pulldown_cmark_old=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libpulldown_cmark-d16a9fb9b2e76b2e.rmeta --extern regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-82010bda561ea43a.rmeta --extern rinja=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/librinja-47b794c1e17525a6.rmeta --extern rustdoc_json_types=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/librustdoc_json_types-5f320a1315079693.rmeta --extern serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-f401cde860cdc297.rmeta --extern serde_json=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde_json-ebeada83a0d6a845.rmeta --extern smallvec=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsmallvec-b5fc2e176a6fbe30.rmeta --extern tempfile=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtempfile-a0a8b5139e5ccce2.rmeta --extern threadpool=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libthreadpool-2dc2034e3fd5eb01.rmeta --extern tracing=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtracing-c2df4d3829a34d81.rmeta --extern tracing_subscriber=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtracing_subscriber-aac05a3c76f0d2b0.rmeta --extern tracing_tree=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtracing_tree-3bfcf5ac4aa359e1.rmeta --extern unicode_segmentation=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libunicode_segmentation-eda766795dbeb928.rmeta --cfg=windows_raw_dylib -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=cfg(bootstrap)' '--check-cfg=cfg(llvm_enzyme)' '--check-cfg=cfg(rust_analyzer)' -Zmacro-backtrace -Csplit-debuginfo=off -Clink-arg=-L/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/lib -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Alinker-messages -Zunstable-options -Z binary-dep-depinfo` (exit status: 101)
Command has failed. Rerun with -v to see more details.
  local time: Sun Feb  2 03:11:52 UTC 2025
  network time: Sun, 02 Feb 2025 03:11:52 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants