Skip to content

Conversation

scottmcm
Copy link
Member

We're already paying for the extra look at stuff, what if we add a second attribute for things that we always want to inline, but are also fine with generic calls not getting inlined? Can we save a bunch of code and functions calls in derived Ords and such? Is it worth the extra overhead of normalizing more calls?

r? ghost

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jul 26, 2025
@scottmcm

This comment was marked as outdated.

@rust-timer

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jul 26, 2025
EXPERIMENT: Use the force-inline pass for more stuff
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 26, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment was marked as outdated.

@scottmcm
Copy link
Member Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jul 26, 2025
EXPERIMENT: Use the force-inline pass for more stuff
@rust-bors
Copy link

rust-bors bot commented Jul 26, 2025

⌛ Trying commit e9fcbb2 with merge 5a3178f

To cancel the try build, run the command @bors try cancel.

@rust-bors
Copy link

rust-bors bot commented Jul 26, 2025

☀️ Try build successful (CI)
Build commit: 5a3178f (5a3178fa03ad01debfab17b1253662bc45c95eb9, parent: f32b23204a0efe2fe8383ed4be1a30b56c1bbf94)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (5a3178f): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.9% [0.1%, 3.2%] 93
Regressions ❌
(secondary)
1.0% [0.1%, 5.2%] 73
Improvements ✅
(primary)
-0.8% [-2.6%, -0.1%] 5
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.1%] 2
All ❌✅ (primary) 0.8% [-2.6%, 3.2%] 98

Max RSS (memory usage)

Results (primary 1.8%, secondary 0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.3% [0.6%, 6.2%] 23
Regressions ❌
(secondary)
3.8% [1.1%, 6.5%] 2
Improvements ✅
(primary)
-3.6% [-6.3%, -0.9%] 2
Improvements ✅
(secondary)
-1.5% [-2.2%, -0.7%] 4
All ❌✅ (primary) 1.8% [-6.3%, 6.2%] 25

Cycles

Results (primary 2.3%, secondary 2.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.7% [2.2%, 3.7%] 12
Regressions ❌
(secondary)
2.8% [1.5%, 4.4%] 12
Improvements ✅
(primary)
-1.9% [-1.9%, -1.9%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.3% [-1.9%, 3.7%] 13

Binary size

Results (primary 1.3%, secondary 0.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.4% [0.0%, 8.5%] 96
Regressions ❌
(secondary)
1.0% [0.1%, 2.4%] 21
Improvements ✅
(primary)
-0.2% [-0.2%, -0.0%] 4
Improvements ✅
(secondary)
-0.1% [-0.3%, -0.0%] 4
All ❌✅ (primary) 1.3% [-0.2%, 8.5%] 100

Bootstrap: 467.999s -> 468.02s (0.00%)
Artifact size: 376.62 MiB -> 376.79 MiB (0.05%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jul 26, 2025
@bors
Copy link
Collaborator

bors commented Jul 26, 2025

☔ The latest upstream changes (presumably #144502) made this pull request unmergeable. Please resolve the merge conflicts.

@scottmcm
Copy link
Member Author

Hmm, yeah, way too many new resolve calls to work. Ah well, interesting to know.

@scottmcm scottmcm closed this Jul 26, 2025
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 26, 2025
@scottmcm scottmcm reopened this Aug 4, 2025
@rustbot rustbot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 4, 2025
@scottmcm
Copy link
Member Author

scottmcm commented Aug 4, 2025

I was inspired by https://discord.com/channels/273534239310479360/957720175619215380/1401622766536364124 to see if I can do a more limited version of this that would still work.

@scottmcm scottmcm force-pushed the early-inline branch 2 times, most recently from 4e11683 to a6adf2d Compare August 4, 2025 02:45
@scottmcm
Copy link
Member Author

scottmcm commented Aug 4, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Aug 4, 2025

⌛ Trying commit a6adf2d with merge f4b36c8

To cancel the try build, run the command @bors try cancel.

rust-bors bot added a commit that referenced this pull request Aug 4, 2025
EXPERIMENT: Use the force-inline pass for more stuff
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 4, 2025
@rust-log-analyzer

This comment has been minimized.

Zalathar added a commit to Zalathar/rust that referenced this pull request Aug 4, 2025
Add some pre-codegen MIR tests for debug mode

No functional changes; just some tests.

I made these for rust-lang#144483, but that's going in a different direction, so I wanted to propose we just add them to help see the impact of other related changes in the future.

r? mir
Zalathar added a commit to Zalathar/rust that referenced this pull request Aug 4, 2025
Add some pre-codegen MIR tests for debug mode

No functional changes; just some tests.

I made these for rust-lang#144483, but that's going in a different direction, so I wanted to propose we just add them to help see the impact of other related changes in the future.

r? mir
@rust-bors
Copy link

rust-bors bot commented Aug 4, 2025

☀️ Try build successful (CI)
Build commit: f4b36c8 (f4b36c8b56f988af2e104136c467ff4a28a21216, parent: 383b9c447b61641e1f1a3850253944a897a60827)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (f4b36c8): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.8% [0.1%, 1.0%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -0.7%, secondary -2.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.7% [0.9%, 2.4%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-5.4% [-7.4%, -3.4%] 2
Improvements ✅
(secondary)
-2.1% [-3.1%, -0.8%] 4
All ❌✅ (primary) -0.7% [-7.4%, 2.4%] 6

Cycles

Results (secondary -4.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.7% [-4.7%, -4.7%] 1
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 12
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.1%, -0.0%] 7
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.0% [-0.1%, 0.1%] 19

Bootstrap: 468.859s -> 468.747s (-0.02%)
Artifact size: 376.98 MiB -> 377.03 MiB (0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 4, 2025
rust-timer added a commit that referenced this pull request Aug 4, 2025
Rollup merge of #144875 - scottmcm:more-mir-tests, r=cjgillot

Add some pre-codegen MIR tests for debug mode

No functional changes; just some tests.

I made these for #144483, but that's going in a different direction, so I wanted to propose we just add them to help see the impact of other related changes in the future.

r? mir
…ther than `always`)

Obviously there's way more that could do this, but I don't to do *all* of them at once.
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-19-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling crypto-common v0.1.6
[RUSTC-TIMING] block_buffer test:false 0.185
[RUSTC-TIMING] crypto_common test:false 0.142
   Compiling psm v0.1.26
error: internal compiler error: compiler/rustc_mir_transform/src/validate.rs:80:25: broken MIR in FnPtrShim(DefId(2:3945 ~ core[78ea]::ops::function::FnOnce::call_once), FnDef(DefId(3:682 ~ alloc[65b5]::boxed::{impl#0}::new), [ty::Type])) (after phase change to runtime-optimized) at bb1[1]:
                                Alias(Projection, AliasTy { args: [FnDef(DefId(3:682 ~ alloc[65b5]::boxed::{impl#0}::new), [ty::Type]), (ty::Type,)], def_id: DefId(2:3944 ~ core[78ea]::ops::function::FnOnce::Output), .. }) does not have fields
   --> /checkout/library/alloc/src/boxed.rs:261:24
    |
261 |         return box_new(x);
    |                        ^

---
   9:     0xffaeb3a78cbc - std::panicking::default_hook::{{closure}}::haac60c33ad8953eb
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/std/src/panicking.rs:300:27
  10:     0xffaeb3a78b18 - std::panicking::default_hook::hfbe61bc0eb59097c
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/std/src/panicking.rs:327:9
  11:     0xffaeaff586c8 - <alloc[cf75e2ab30ac120f]::boxed::Box<rustc_driver_impl[f8dcd73e3f98802]::install_ice_hook::{closure#1}> as core[86de0986de23a55d]::ops::function::Fn<(&dyn for<'a, 'b> core[86de0986de23a55d]::ops::function::Fn<(&'a std[57c45f57ec3c24e5]::panic::PanicHookInfo<'b>,), Output = ()> + core[86de0986de23a55d]::marker::Sync + core[86de0986de23a55d]::marker::Send, &std[57c45f57ec3c24e5]::panic::PanicHookInfo)>>::call
  12:     0xffaeb3a79730 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1caa90323394741e
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/alloc/src/boxed.rs:1980:9
  13:     0xffaeb3a79730 - std::panicking::rust_panic_with_hook::h448ca412e27acd2b
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/std/src/panicking.rs:841:13
  14:     0xffaeb36845d8 - std[57c45f57ec3c24e5]::panicking::begin_panic::<rustc_errors[c4fdaa21ad111aa4]::ExplicitBug>::{closure#0}
  15:     0xffaeb368459c - std[57c45f57ec3c24e5]::sys::backtrace::__rust_end_short_backtrace::<std[57c45f57ec3c24e5]::panicking::begin_panic<rustc_errors[c4fdaa21ad111aa4]::ExplicitBug>::{closure#0}, !>
  16:     0xffaeafe57c80 - std[57c45f57ec3c24e5]::panicking::begin_panic::<rustc_errors[c4fdaa21ad111aa4]::ExplicitBug>
  17:     0xffaeafe5dc88 - <rustc_errors[c4fdaa21ad111aa4]::diagnostic::BugAbort as rustc_errors[c4fdaa21ad111aa4]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  18:     0xffaeb34219f4 - <rustc_errors[c4fdaa21ad111aa4]::DiagCtxtHandle>::span_bug::<rustc_span[41a6e2c377868cd4]::span_encoding::Span, alloc[cf75e2ab30ac120f]::string::String>
  19:     0xffaeb343cc88 - rustc_middle[9bffbefec4c2d3c6]::util::bug::opt_span_bug_fmt::<rustc_span[41a6e2c377868cd4]::span_encoding::Span>::{closure#0}
  20:     0xffaeb342f7ac - rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::with_opt::<rustc_middle[9bffbefec4c2d3c6]::util::bug::opt_span_bug_fmt<rustc_span[41a6e2c377868cd4]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0xffaeb342f768 - rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::with_context_opt::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::with_opt<rustc_middle[9bffbefec4c2d3c6]::util::bug::opt_span_bug_fmt<rustc_span[41a6e2c377868cd4]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0xffaeafe47604 - rustc_middle[9bffbefec4c2d3c6]::util::bug::span_bug_fmt::<rustc_span[41a6e2c377868cd4]::span_encoding::Span>
  23:     0xffaeb0fc22bc - <rustc_mir_transform[8ae3d3c636c4d037]::validate::CfgChecker>::fail::<alloc[cf75e2ab30ac120f]::string::String>
  24:     0xffaeb0fc1c58 - <rustc_mir_transform[8ae3d3c636c4d037]::validate::Validator as rustc_mir_transform[8ae3d3c636c4d037]::pass_manager::MirPass>::run_pass
  25:     0xffaeb0f2562c - rustc_mir_transform[8ae3d3c636c4d037]::pass_manager::run_passes_inner
  26:     0xffaeb0dc8360 - rustc_mir_transform[8ae3d3c636c4d037]::shim::make_shim
  27:     0xffaeb22f5584 - rustc_query_impl[6c9b933e04a41676]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c9b933e04a41676]::query_impl::mir_shims::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 8usize]>>
  28:     0xffaeb223e804 - <rustc_query_impl[6c9b933e04a41676]::query_impl::mir_shims::dynamic_query::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, rustc_middle[9bffbefec4c2d3c6]::ty::instance::InstanceKind)>>::call_once
  29:     0xffaeb227f8b4 - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<(rustc_middle[9bffbefec4c2d3c6]::ty::predicate::Predicate, rustc_middle[9bffbefec4c2d3c6]::traits::WellFormedLoc), rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 8usize]>>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 8usize]>>
  30:     0xffaeb217b9f4 - rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::try_execute_query::<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<rustc_middle[9bffbefec4c2d3c6]::ty::instance::InstanceKind, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt, false>
  31:     0xffaeb240eb08 - rustc_query_impl[6c9b933e04a41676]::query_impl::mir_shims::get_query_non_incr::__rust_end_short_backtrace
  32:     0xffaeb3371fd8 - <rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt>::instance_mir
  33:     0xffaeb0ce39b8 - rustc_monomorphize[86dc333c50564ca]::mono_checks::check_mono_item
  34:     0xffaeb22db144 - rustc_query_impl[6c9b933e04a41676]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c9b933e04a41676]::query_impl::check_mono_item::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 0usize]>>
  35:     0xffaeb21fa140 - <rustc_query_impl[6c9b933e04a41676]::query_impl::check_mono_item::dynamic_query::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance)>>::call_once
  36:     0xffaeb227f938 - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 0usize]>>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 0usize]>>
  37:     0xffaeb217d060 - rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::try_execute_query::<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt, false>
  38:     0xffaeb243300c - rustc_query_impl[6c9b933e04a41676]::query_impl::check_mono_item::get_query_non_incr::__rust_end_short_backtrace
  39:     0xffaeb0ca087c - rustc_monomorphize[86dc333c50564ca]::collector::items_of_instance
  40:     0xffaeb22e0920 - rustc_query_impl[6c9b933e04a41676]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c9b933e04a41676]::query_impl::items_of_instance::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 32usize]>>
  41:     0xffaeb22084bc - <rustc_query_impl[6c9b933e04a41676]::query_impl::items_of_instance::dynamic_query::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, (rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance, rustc_middle[9bffbefec4c2d3c6]::mir::mono::CollectionMode))>>::call_once
  42:     0xffaeb227f064 - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<(rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance, rustc_middle[9bffbefec4c2d3c6]::mir::mono::CollectionMode), rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 32usize]>>
  43:     0xffaeb219875c - rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::try_execute_query::<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::DefaultCache<(rustc_middle[9bffbefec4c2d3c6]::ty::instance::Instance, rustc_middle[9bffbefec4c2d3c6]::mir::mono::CollectionMode), rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt, false>
  44:     0xffaeb243357c - rustc_query_impl[6c9b933e04a41676]::query_impl::items_of_instance::get_query_non_incr::__rust_end_short_backtrace
  45:     0xffaeb0ca2ef4 - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  46:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  47:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  48:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  49:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  50:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  51:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  52:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  53:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  54:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  55:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  56:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  57:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  58:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  59:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  60:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  61:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  62:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  63:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  64:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  65:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  66:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  67:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  68:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  69:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  70:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  71:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  72:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  73:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  74:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  75:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  76:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  77:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  78:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  79:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  80:     0xffaeb0ca299c - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_rec
  81:     0xffaeb0c9a590 - rustc_monomorphize[86dc333c50564ca]::collector::collect_items_root
  82:     0xffaeb0cca9a4 - <rustc_session[e164ea3d64afd4b1]::session::Session>::time::<(), rustc_monomorphize[86dc333c50564ca]::collector::collect_crate_mono_items::{closure#1}>
  83:     0xffaeb0ca795c - rustc_monomorphize[86dc333c50564ca]::collector::collect_crate_mono_items
  84:     0xffaeb0caf1e4 - rustc_monomorphize[86dc333c50564ca]::partitioning::collect_and_partition_mono_items
  85:     0xffaeb22f13e4 - rustc_query_impl[6c9b933e04a41676]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c9b933e04a41676]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 40usize]>>
  86:     0xffaeb2234654 - <rustc_query_impl[6c9b933e04a41676]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, ())>>::call_once
  87:     0xffaeb227e95c - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::SingleCache<rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 40usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 40usize]>>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 40usize]>>
  88:     0xffaeb2144b68 - rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::try_execute_query::<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_query_system[ff5dd8c2f29163d8]::query::caches::SingleCache<rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 40usize]>>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt, false>
  89:     0xffaeb242b61c - rustc_query_impl[6c9b933e04a41676]::query_impl::collect_and_partition_mono_items::get_query_non_incr::__rust_end_short_backtrace
  90:     0xffaeb2591bf0 - rustc_codegen_ssa[3fe074c497e487d6]::back::symbol_export::exported_generic_symbols_provider_local
  91:     0xffaeb22ec5b8 - rustc_query_impl[6c9b933e04a41676]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c9b933e04a41676]::query_impl::exported_generic_symbols::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 16usize]>>
  92:     0xffaeb2227130 - <rustc_query_impl[6c9b933e04a41676]::query_impl::exported_generic_symbols::dynamic_query::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, rustc_span[41a6e2c377868cd4]::def_id::CrateNum)>>::call_once
  93:     0xffaeb22800a8 - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_data_structures[2c9f1c1f23740c75]::vec_cache::VecCache<rustc_span[41a6e2c377868cd4]::def_id::LocalDefId, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[ff5dd8c2f29163d8]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 16usize]>>
  94:     0xffaeb21a785c - rustc_query_system[ff5dd8c2f29163d8]::query::plumbing::try_execute_query::<rustc_query_impl[6c9b933e04a41676]::DynamicConfig<rustc_data_structures[2c9f1c1f23740c75]::vec_cache::VecCache<rustc_span[41a6e2c377868cd4]::def_id::CrateNum, rustc_middle[9bffbefec4c2d3c6]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[ff5dd8c2f29163d8]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6c9b933e04a41676]::plumbing::QueryCtxt, false>
  95:     0xffaeb242b190 - rustc_query_impl[6c9b933e04a41676]::query_impl::exported_generic_symbols::get_query_non_incr::__rust_end_short_backtrace
  96:     0xffaeb2d8d298 - <rustc_metadata[e90599fb12f69ac5]::rmeta::encoder::EncodeContext>::encode_crate_root
  97:     0xffaeafdfec10 - rustc_metadata[e90599fb12f69ac5]::rmeta::encoder::encode_metadata::{closure#3}::{closure#0}
  98:     0xffaeb2d853cc - <rustc_metadata[e90599fb12f69ac5]::rmeta::encoder::encode_metadata::{closure#3} as core[86de0986de23a55d]::ops::function::FnOnce<(rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt, &std[57c45f57ec3c24e5]::path::Path)>>::call_once
  99:     0xffaeb2d9e764 - rustc_metadata[e90599fb12f69ac5]::rmeta::encoder::encode_metadata
 100:     0xffaeb2e0c298 - rustc_metadata[e90599fb12f69ac5]::fs::encode_and_write_metadata
 101:     0xffaeb0169290 - rustc_interface[75c05ebdc46d0f4d]::passes::start_codegen
 102:     0xffaeb01e67c4 - <rustc_interface[75c05ebdc46d0f4d]::queries::Linker>::codegen_and_build_linker
 103:     0xffaeafec9cd8 - <std[57c45f57ec3c24e5]::thread::local::LocalKey<core[86de0986de23a55d]::cell::Cell<*const ()>>>::with::<rustc_middle[9bffbefec4c2d3c6]::ty::context::tls::enter_context<<rustc_middle[9bffbefec4c2d3c6]::ty::context::GlobalCtxt>::enter<rustc_interface[75c05ebdc46d0f4d]::passes::create_and_enter_global_ctxt<core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>>::{closure#1}, core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>>::{closure#0}, core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>>
 104:     0xffaeaff26c9c - <rustc_middle[9bffbefec4c2d3c6]::ty::context::TyCtxt>::create_global_ctxt::<core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>, rustc_interface[75c05ebdc46d0f4d]::passes::create_and_enter_global_ctxt<core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
 105:     0xffaeaff09a20 - <rustc_interface[75c05ebdc46d0f4d]::passes::create_and_enter_global_ctxt<core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[86de0986de23a55d]::ops::function::FnOnce<(&rustc_session[e164ea3d64afd4b1]::session::Session, rustc_middle[9bffbefec4c2d3c6]::ty::context::CurrentGcx, alloc[cf75e2ab30ac120f]::sync::Arc<rustc_data_structures[2c9f1c1f23740c75]::jobserver::Proxy>, &std[57c45f57ec3c24e5]::sync::once_lock::OnceLock<rustc_middle[9bffbefec4c2d3c6]::ty::context::GlobalCtxt>, &rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_middle[9bffbefec4c2d3c6]::arena::Arena>, &rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_hir[c4d5b34c706ef8ed]::Arena>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
 106:     0xffaeaff58490 - <alloc[cf75e2ab30ac120f]::boxed::Box<dyn for<'a> core[86de0986de23a55d]::ops::function::FnOnce<(&'a rustc_session[e164ea3d64afd4b1]::session::Session, rustc_middle[9bffbefec4c2d3c6]::ty::context::CurrentGcx, alloc[cf75e2ab30ac120f]::sync::Arc<rustc_data_structures[2c9f1c1f23740c75]::jobserver::Proxy>, &'a std[57c45f57ec3c24e5]::sync::once_lock::OnceLock<rustc_middle[9bffbefec4c2d3c6]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_middle[9bffbefec4c2d3c6]::arena::Arena<'a>>, &'a rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_hir[c4d5b34c706ef8ed]::Arena<'a>>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2}), Output = core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>>> as core[86de0986de23a55d]::ops::function::FnOnce<(&rustc_session[e164ea3d64afd4b1]::session::Session, rustc_middle[9bffbefec4c2d3c6]::ty::context::CurrentGcx, alloc[cf75e2ab30ac120f]::sync::Arc<rustc_data_structures[2c9f1c1f23740c75]::jobserver::Proxy>, &std[57c45f57ec3c24e5]::sync::once_lock::OnceLock<rustc_middle[9bffbefec4c2d3c6]::ty::context::GlobalCtxt>, &rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_middle[9bffbefec4c2d3c6]::arena::Arena>, &rustc_data_structures[2c9f1c1f23740c75]::sync::worker_local::WorkerLocal<rustc_hir[c4d5b34c706ef8ed]::Arena>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2})>>::call_once
 107:     0xffaeafef0130 - rustc_interface[75c05ebdc46d0f4d]::passes::create_and_enter_global_ctxt::<core[86de0986de23a55d]::option::Option<rustc_interface[75c05ebdc46d0f4d]::queries::Linker>, rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}::{closure#2}>
 108:     0xffaeafee1b4c - <scoped_tls[21646fa6031b800c]::ScopedKey<rustc_span[41a6e2c377868cd4]::SessionGlobals>>::set::<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_with_globals<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_pool_with_globals<rustc_interface[75c05ebdc46d0f4d]::interface::run_compiler<(), rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
 109:     0xffaeaff71068 - rustc_span[41a6e2c377868cd4]::create_session_globals_then::<(), rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_with_globals<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_pool_with_globals<rustc_interface[75c05ebdc46d0f4d]::interface::run_compiler<(), rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
 110:     0xffaeaff87ee4 - std[57c45f57ec3c24e5]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_with_globals<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_pool_with_globals<rustc_interface[75c05ebdc46d0f4d]::interface::run_compiler<(), rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
 111:     0xffaeafeea370 - <<std[57c45f57ec3c24e5]::thread::Builder>::spawn_unchecked_<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_with_globals<rustc_interface[75c05ebdc46d0f4d]::util::run_in_thread_pool_with_globals<rustc_interface[75c05ebdc46d0f4d]::interface::run_compiler<(), rustc_driver_impl[f8dcd73e3f98802]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[86de0986de23a55d]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 112:     0xffaeb3a7d6b0 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h4301b1eb7e190497
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/alloc/src/boxed.rs:1966:9
 113:     0xffaeb3a7d6b0 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h63c57e2bd87c106a
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/alloc/src/boxed.rs:1966:9
 114:     0xffaeb3a7d6b0 - std::sys::pal::unix::thread::Thread::new::thread_start::h029a7b8769f51646
                               at /rustc/390a0ab5dc4a895235a551e502c3893c3337731d/library/std/src/sys/pal/unix/thread.rs:97:17
 115:     0xffaeaf194b30 - <unknown>
 116:     0xffaeaf1fd88c - <unknown>
---
note: please make sure that you have updated to the latest nightly

note: please attach the file at `/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.104/rustc-ice-2025-08-06T04_41_53-15268.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -Z binary-dep-depinfo -Z force-unstable-if-unmarked

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [mir_shims] generating MIR shim for `core::ops::function::FnOnce::call_once`, instance=FnPtrShim(DefId(2:3945 ~ core[78ea]::ops::function::FnOnce::call_once), FnDef(DefId(3:682 ~ alloc[65b5]::boxed::{impl#0}::new), [ty::Type]))
#1 [check_mono_item] monomorphization-time checking
... and 3 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
[RUSTC-TIMING] parking_lot test:false 1.480
   Compiling rustc-hash v2.1.1
[RUSTC-TIMING] rustc_hash test:false 0.125
   Compiling rustc-stable-hash v0.1.2
[RUSTC-TIMING] build_script_build test:false 0.279
---
[RUSTC-TIMING] syn test:false 8.224
error: could not compile `syn` (lib)

Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc /checkout/obj/build/bootstrap/debug/rustc --crate-name syn --edition=2021 /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.104/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --cfg 'feature="clone-impls"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="extra-traits"' --cfg 'feature="fold"' --cfg 'feature="full"' --cfg 'feature="parsing"' --cfg 'feature="printing"' --cfg 'feature="proc-macro"' --cfg 'feature="visit"' --cfg 'feature="visit-mut"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("clone-impls", "default", "derive", "extra-traits", "fold", "full", "parsing", "printing", "proc-macro", "test", "visit", "visit-mut"))' -C metadata=0d5a78d7873b5792 -C extra-filename=-fb6ab839bcd99ae8 --out-dir /checkout/obj/build/aarch64-unknown-linux-gnu/stage1-rustc/release/deps -L dependency=/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-rustc/release/deps --extern proc_macro2=/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-rustc/release/deps/libproc_macro2-c52a08e3936ca7f7.rmeta --extern quote=/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-rustc/release/deps/libquote-a9b89089cc5c1862.rmeta --extern unicode_ident=/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-rustc/release/deps/libunicode_ident-72cf21332cd62c75.rmeta --cap-lints allow -Z binary-dep-depinfo` (exit status: 101)
warning: build failed, waiting for other jobs to finish...
[RUSTC-TIMING] rustc_hashes test:false 0.114
[RUSTC-TIMING] crossbeam_utils test:false 1.143
[RUSTC-TIMING] linux_raw_sys test:false 1.394
Build completed unsuccessfully in 0:10:05

@bors
Copy link
Collaborator

bors commented Aug 6, 2025

☔ The latest upstream changes (presumably #145003) made this pull request unmergeable. Please resolve the merge conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants