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

Autodiff Upstreaming - rustc_codegen_ssa, rustc_middle #133429

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ZuseZ4
Copy link
Contributor

@ZuseZ4 ZuseZ4 commented Nov 25, 2024

This PR should not be merged until the rustc_codegen_llvm part is merged.
I will also alter it a little based on what get's shaved off from the cg_llvm PR,
and address some of the feedback I received in the other PR (including cleanups).

I am putting it already up to

  1. Discuss with @jieyouxu if there is more work needed to add tests to this and
  2. Pray that there is someone reviewing who can tell me why some of my autodiff invocations get lost.

Re 1: My test require fat-lto. I also modify the compilation pipeline. So if there are any other llvm-ir tests in the same compilation unit then I will likely break them. Luckily there are two groups who currently have the same fat-lto requirement for their GPU code which I have for my autodiff code and both groups have some plans to enable support for thin-lto. Once either that work pans out, I'll copy it over for this feature. I will also work on not changing the optimization pipeline for functions not differentiated, but that will require some thoughts and engineering, so I think it would be good to be able to run the autodiff tests isolated from the rest for now. Can you guide me here please?
For context, here are some of my tests in the samples folder: https://github.com/EnzymeAD/rustbook

Re 2: This is a pretty serious issue, since it effectively prevents publishing libraries making use of autodiff: EnzymeAD#173. For some reason my dummy code persists till the end, so the code which calls autodiff, deletes the dummy, and inserts the code to compute the derivative never gets executed. To me it looks like the rustc_autodiff attribute just get's dropped, but I don't know WHY? Any help would be super appreciated, as rustc queries look a bit voodoo to me.

Tracking:

r? @jieyouxu

@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 Nov 25, 2024
@ZuseZ4
Copy link
Contributor Author

ZuseZ4 commented Nov 25, 2024

To expand on 2)
Assume you have the following code

#[autodiff(bar, Reverse, ...)]
fn foo(x: f32) -> f32 { x*x }

it will expand to

#[rustc_autodiff]
fn foo(x: f32) -> f32 {x*x}
#[rustc_autodiff(Reverse,...)]
fn bar(x: f32, scalar_factor: f32) -> (f32, f32) {
   // some_dummy_code()
}

Now I have some logic in this PR which picks up the rustc_autodiff attributes and passes them onto the backend, where for every single rustc_autodiff attribute with arguments we pick the function (thus bar here) and replace the dummy code with the right code to return the derivative. So bar would afterwards return (x*x, 2.0 * x). But as mentioned above, once you use autodiff in a library and call it in another module, the dummy code get's executed, as shown in the linked PR.
Any hints would be appreciated.

@traviscross traviscross mentioned this pull request Nov 4, 2024
7 tasks
Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some interim feedback for this draft PR

compiler/rustc_codegen_ssa/src/back/write.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/assert_module_sources.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_session/src/options.rs Outdated Show resolved Hide resolved
@@ -996,6 +997,35 @@ mod parse {
}
}

pub(crate) fn parse_autodiff(slot: &mut Vec<AutoDiff>, v: Option<&str>) -> bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: this has no error messages if the autodiff options failed to parse, acceptable for unstable flag but still poor UX, unacceptable when it comes to stabilization time.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be handled with a proper description in parse_autodiff above.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume there is some rustc function to generate suggestions when users make a typo?
I'll update it for now to print the unrecognized value.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked again at all the other options which accept more values (e.g. instrument_xray), and they have no error-handling either. Is there a preferred way to print errors here?

compiler/rustc_session/src/config.rs Outdated Show resolved Hide resolved
compiler/rustc_session/src/options.rs Outdated Show resolved Hide resolved
@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 Nov 25, 2024
@jieyouxu
Copy link
Member

jieyouxu commented Nov 25, 2024

My test require fat-lto.

For codegen/assembly/ui tests you can make it build w/ fat LTO via

//@ compile-flags: -Clto=fat

I also modify the compilation pipeline. So if there are any other llvm-ir tests in the same compilation unit then I will likely break them.

I don't quite understand the implication of this. Is there some small example I can refer to?

I will also work on not changing the optimization pipeline for functions not differentiated, but that will require some thoughts and engineering, so I think it would be good to be able to run the autodiff tests isolated from the rest for now. Can you guide me here please?

Can you elaborate on what test conditions you need? What do you mean exactly by "isolated"? Can you not run autodiff but only if there is autodiff support, or do you mean like don't run by default even if there is autodiff support?

@ZuseZ4
Copy link
Contributor Author

ZuseZ4 commented Nov 25, 2024

https://github.com/rust-lang/rust/pull/130060/files#diff-a56b374664e290a55d70fa80e456b6280913830b382b73fb70c4483d3d4cf246
adjust's the llvm opt pipeline (if autodiff is enabled at build time and used).
We have a first opt run which skips the late llvm opts (which tend to increase code size), and runs opt a second time (now with the full pipeline) once autodiff is done. I will manage to not make it optimize unrelated code in the future, but for now it means other functions are now optimized 1.5 times by llvm. And in reality llvm opts don't really run to a fixpoint, so that is highly likely to change the IR.

@ZuseZ4 ZuseZ4 changed the title upstream rustc_codegen_ssa/rustc_middle changes for enzyme/autodiff Autodiff Upstreaming - rustc_codegen_ssa, rustc_middle Nov 26, 2024
@jieyouxu
Copy link
Member

functions are now optimized 1.5 times by llvm. And in reality llvm opts don't really run to a fixpoint, so that is highly likely to change the IR.

This just means that for now, you'll have to gate autodiff-related tests with //@ needs-autodiff or somehow allow compiletest to determine that the llvm used is built with autodiff support and the test is exercising said autodiff support.

Note that this cannot break and should not modify code that does not use autodiff at all, which is indicated by codegen tests that do not use / opt-in to autodiff support.

@oli-obk oli-obk self-assigned this Dec 6, 2024
@ZuseZ4 ZuseZ4 marked this pull request as ready for review December 13, 2024 00:57
@rustbot
Copy link
Collaborator

rustbot commented Dec 13, 2024

This PR modifies config.example.toml.

If appropriate, please update CONFIG_CHANGE_HISTORY in src/bootstrap/src/utils/change_tracker.rs.

Some changes occurred in coverage instrumentation.

cc @Zalathar

Some changes occurred in cfg and check-cfg configuration

cc @Urgau

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

@rust-log-analyzer

This comment has been minimized.

@ZuseZ4
Copy link
Contributor Author

ZuseZ4 commented Jan 2, 2025

I rebased now that the other autodiff PR got merged, fixed all conflicts, and got it to compile locally.
I will work through the existing feedback over the next days.

@bors
Copy link
Contributor

bors commented Jan 25, 2025

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

@rust-log-analyzer

This comment has been minimized.

@ZuseZ4
Copy link
Contributor Author

ZuseZ4 commented Jan 25, 2025

@oli-obk Just to keep track, so far we have 3/4 things which should be fixed here. Potentially not all in this specific PR, but preferably before enabling it for default nightly builds.

  1. (Most orthogonal) the macro getting lost when used in dependencies.

  2. Performance: Have two opt runs, with AD being applied at the end of the first run. I need to look again at it, last time I wasn't 100% sure how to trigger these two runs after the refactoring.

  3. Build setup: Don't force users to pass RUSTFLAGS="-Z llvm-plugins=/home/manuel/prog/rust-working/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-19.so -C passes=enzyme. I'll probably ask on zulip/bootstrap for help with that.

  4. (of course I'll also need to apply the other code quality recommendations above).

After thinking about it for a bit I'll probably just do 4) for now, and leave 1-3 for a follow-up PR, just for the sake of having a working version upstream. I'll need to talk to jieyouxu to see if we then add test's already here, or in the follow-up PR where I fix 3).

@rust-log-analyzer

This comment has been minimized.

@ZuseZ4
Copy link
Contributor Author

ZuseZ4 commented Jan 27, 2025

I'll need to add the fn-ptr error message and left a few questions.
I decided to leave the bootstrapping change for an extra PR, so the tests will probably also need to wait for that (since we use a -Z llvm-plugin flag which requires the absolute path to Enzyme, something which we probably don't want to add as a temporary workaround to the test infra).

@ZuseZ4 ZuseZ4 requested a review from jieyouxu January 27, 2025 01:19
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 27, 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 Jan 27, 2025
@rust-log-analyzer

This comment has been minimized.

Copy link
Contributor

@oli-obk oli-obk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the other codegen backends needs some adjustment, too, or just rebase over #136118 ?

compiler/rustc_codegen_llvm/src/builder/autodiff.rs Outdated Show resolved Hide resolved
It--;
//It--;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leftover commented out code from debugging (should be reinstated, right?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, based on testing I actually have to delete It right there and not decrement, since it's a call instruction which uses all of the previous arguments and for llvm-ir you usually have to delete in reverse order, since it checks for remaining users. I deleted the line and renamed the function.
I'm very open to better names than LLVMRustEraseInstUntilInclusive

compiler/rustc_middle/src/query/erase.rs Outdated Show resolved Hide resolved
Comment on lines 1134 to 1152
if ty.is_fn_ptr() {
unimplemented!("what to do whith fn ptr?");
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is still unresolved. An unstructured tcx.span_err() is ok for this

compiler/rustc_monomorphize/src/partitioning.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
compiler/rustc_codegen_ssa/src/codegen_attrs.rs Outdated Show resolved Hide resolved
@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 Jan 27, 2025
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jan 27, 2025
Change `collect_and_partition_mono_items` tuple return type to a struct

rust-lang#133429 will add a new field to this tuple, so it seems prudent to turn it into a struct first to avoid confusion about what the tuple elements mean.
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jan 27, 2025
Rollup merge of rust-lang#136118 - oli-obk:push-qsslxsopnrmr, r=Zalathar

Change `collect_and_partition_mono_items` tuple return type to a struct

rust-lang#133429 will add a new field to this tuple, so it seems prudent to turn it into a struct first to avoid confusion about what the tuple elements mean.
@bors
Copy link
Contributor

bors commented Jan 27, 2025

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

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.7s done
#21 DONE 41.5s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---

thread 'rustc' panicked at /checkout/compiler/rustc_middle/src/ty/mod.rs:1766:13:
assertion failed: rustc_feature::encode_cross_crate(attr)
stack backtrace:
   0:     0x7f9af9560422 - <<std[c044a44b1283b693]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[15592c06caabf6d5]::fmt::Display>::fmt
   1:     0x7f9af95beda7 - core[15592c06caabf6d5]::fmt::write
   2:     0x7f9af9553db9 - <std[c044a44b1283b693]::sys::pal::unix::stdio::Stderr as std[c044a44b1283b693]::io::Write>::write_fmt
   3:     0x7f9af95602d2 - <std[c044a44b1283b693]::sys::backtrace::BacktraceLock>::print
   4:     0x7f9af9562c02 - std[c044a44b1283b693]::panicking::default_hook::{closure#0}
   5:     0x7f9af9562a0e - std[c044a44b1283b693]::panicking::default_hook
   6:     0x7f9af5602383 - <alloc[b339aa790f4a69ce]::boxed::Box<rustc_driver_impl[5a305cef73bf4a9]::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:     0x7f9af9563807 - std[c044a44b1283b693]::panicking::rust_panic_with_hook
   8:     0x7f9af956340b - std[c044a44b1283b693]::panicking::begin_panic_handler::{closure#0}
   9:     0x7f9af95609e9 - std[c044a44b1283b693]::sys::backtrace::__rust_end_short_backtrace::<std[c044a44b1283b693]::panicking::begin_panic_handler::{closure#0}, !>
  11:     0x7f9af5505ef2 - core[15592c06caabf6d5]::panicking::panic_fmt
  12:     0x7f9af5505f95 - core[15592c06caabf6d5]::panicking::panic
  13:     0x7f9af7fcc230 - <rustc_middle[c44cea16f14f62d5]::ty::context::TyCtxt>::get_attrs::<rustc_span[a0e71855a20bac44]::def_id::DefId>
  14:     0x7f9af7e894da - rustc_codegen_ssa[431ae11ef1377866]::codegen_attrs::autodiff_attrs
  14:     0x7f9af7e894da - rustc_codegen_ssa[431ae11ef1377866]::codegen_attrs::autodiff_attrs
  15:     0x7f9af788a7ba - rustc_query_impl[6c4c37143fd7a65d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c4c37143fd7a65d]::query_impl::autodiff_attrs::dynamic_query::{closure#2}::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>
  16:     0x7f9af7968f29 - <rustc_query_impl[6c4c37143fd7a65d]::query_impl::autodiff_attrs::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[c44cea16f14f62d5]::ty::context::TyCtxt, rustc_span[a0e71855a20bac44]::def_id::DefId)>>::call_once
  17:     0x7f9af782ccbb - <std[c044a44b1283b693]::thread::local::LocalKey<core[15592c06caabf6d5]::cell::Cell<*const ()>>>::with::<rustc_middle[c44cea16f14f62d5]::ty::context::tls::enter_context<rustc_query_system[370703f137239ccf]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_query_system[370703f137239ccf]::query::caches::DefIdCache<rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>
  18:     0x7f9af775e431 - rustc_query_system[370703f137239ccf]::query::plumbing::try_execute_query::<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_query_system[370703f137239ccf]::query::caches::DefIdCache<rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt, false>
  19:     0x7f9af7b927fe - rustc_query_impl[6c4c37143fd7a65d]::query_impl::autodiff_attrs::get_query_non_incr::__rust_end_short_backtrace
  20:     0x7f9af63a4888 - rustc_middle[c44cea16f14f62d5]::query::plumbing::query_get_at::<rustc_query_system[370703f137239ccf]::query::caches::DefIdCache<rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 8usize]>>>
  21:     0x7f9af63ac29b - rustc_monomorphize[d3f6ec5195974691]::partitioning::collect_and_partition_mono_items
  22:     0x7f9af78a86c5 - rustc_query_impl[6c4c37143fd7a65d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c4c37143fd7a65d]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 40usize]>>
  23:     0x7f9af79b0579 - <rustc_query_impl[6c4c37143fd7a65d]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[c44cea16f14f62d5]::ty::context::TyCtxt, ())>>::call_once
  24:     0x7f9af782cf4a - <std[c044a44b1283b693]::thread::local::LocalKey<core[15592c06caabf6d5]::cell::Cell<*const ()>>>::with::<rustc_middle[c44cea16f14f62d5]::ty::context::tls::enter_context<rustc_query_system[370703f137239ccf]::query::plumbing::try_load_from_disk_and_cache_in_memory<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_query_system[370703f137239ccf]::query::caches::SingleCache<rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 40usize]>>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 40usize]>>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 40usize]>>
  25:     0x7f9af7767840 - rustc_query_system[370703f137239ccf]::query::plumbing::try_execute_query::<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_query_system[370703f137239ccf]::query::caches::SingleCache<rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 40usize]>>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt, false>
  26:     0x7f9af7c009fb - rustc_query_impl[6c4c37143fd7a65d]::query_impl::collect_and_partition_mono_items::get_query_non_incr::__rust_end_short_backtrace
  27:     0x7f9af7f77ed3 - rustc_codegen_ssa[431ae11ef1377866]::back::symbol_export::exported_symbols_provider_local
  28:     0x7f9af7890456 - rustc_query_impl[6c4c37143fd7a65d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6c4c37143fd7a65d]::query_impl::exported_symbols::dynamic_query::{closure#2}::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 16usize]>>
  29:     0x7f9af7be83ad - <rustc_query_impl[6c4c37143fd7a65d]::query_impl::exported_symbols::dynamic_query::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(rustc_middle[c44cea16f14f62d5]::ty::context::TyCtxt, rustc_span[a0e71855a20bac44]::def_id::CrateNum)>>::call_once
  30:     0x7f9af782e3ae - <std[c044a44b1283b693]::thread::local::LocalKey<core[15592c06caabf6d5]::cell::Cell<*const ()>>>::with::<rustc_middle[c44cea16f14f62d5]::ty::context::tls::enter_context<rustc_query_system[370703f137239ccf]::query::plumbing::execute_job_non_incr<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_data_structures[4960afe1c19b83da]::vec_cache::VecCache<rustc_span[a0e71855a20bac44]::def_id::CrateNum, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[370703f137239ccf]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 16usize]>>
  31:     0x7f9af77e8ded - rustc_query_system[370703f137239ccf]::query::plumbing::try_execute_query::<rustc_query_impl[6c4c37143fd7a65d]::DynamicConfig<rustc_data_structures[4960afe1c19b83da]::vec_cache::VecCache<rustc_span[a0e71855a20bac44]::def_id::CrateNum, rustc_middle[c44cea16f14f62d5]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[370703f137239ccf]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6c4c37143fd7a65d]::plumbing::QueryCtxt, false>
  32:     0x7f9af7afebdc - rustc_query_impl[6c4c37143fd7a65d]::query_impl::exported_symbols::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f9af862a375 - <rustc_metadata[db785d496155694e]::rmeta::encoder::EncodeContext>::encode_crate_root
  34:     0x7f9af8636c1c - rustc_metadata[db785d496155694e]::rmeta::encoder::encode_metadata
  35:     0x7f9af874c84e - rustc_metadata[db785d496155694e]::fs::encode_and_write_metadata
  36:     0x7f9af57ec293 - <rustc_interface[940bae373762b9f1]::queries::Linker>::codegen_and_build_linker
  37:     0x7f9af559e30b - <std[c044a44b1283b693]::thread::local::LocalKey<core[15592c06caabf6d5]::cell::Cell<*const ()>>>::with::<rustc_middle[c44cea16f14f62d5]::ty::context::tls::enter_context<<rustc_middle[c44cea16f14f62d5]::ty::context::GlobalCtxt>::enter<rustc_interface[940bae373762b9f1]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>>::{closure#1}, core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>>::{closure#0}, core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>>
  38:     0x7f9af556cb3b - <rustc_middle[c44cea16f14f62d5]::ty::context::TyCtxt>::create_global_ctxt::<core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>, rustc_interface[940bae373762b9f1]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  39:     0x7f9af561ab36 - <rustc_interface[940bae373762b9f1]::passes::create_and_enter_global_ctxt<core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[15592c06caabf6d5]::ops::function::FnOnce<(&rustc_session[e43c8a3890848f45]::session::Session, rustc_middle[c44cea16f14f62d5]::ty::context::CurrentGcx, &std[c044a44b1283b693]::sync::once_lock::OnceLock<rustc_middle[c44cea16f14f62d5]::ty::context::GlobalCtxt>, &rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_middle[c44cea16f14f62d5]::arena::Arena>, &rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_hir[5db49573cfe0ac5a]::Arena>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  40:     0x7f9af56013ab - <alloc[b339aa790f4a69ce]::boxed::Box<dyn for<'a> core[15592c06caabf6d5]::ops::function::FnOnce<(&'a rustc_session[e43c8a3890848f45]::session::Session, rustc_middle[c44cea16f14f62d5]::ty::context::CurrentGcx, &'a std[c044a44b1283b693]::sync::once_lock::OnceLock<rustc_middle[c44cea16f14f62d5]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_middle[c44cea16f14f62d5]::arena::Arena<'a>>, &'a rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_hir[5db49573cfe0ac5a]::Arena<'a>>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2}), Output = core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>>> as core[15592c06caabf6d5]::ops::function::FnOnce<(&rustc_session[e43c8a3890848f45]::session::Session, rustc_middle[c44cea16f14f62d5]::ty::context::CurrentGcx, &std[c044a44b1283b693]::sync::once_lock::OnceLock<rustc_middle[c44cea16f14f62d5]::ty::context::GlobalCtxt>, &rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_middle[c44cea16f14f62d5]::arena::Arena>, &rustc_data_structures[4960afe1c19b83da]::sync::worker_local::WorkerLocal<rustc_hir[5db49573cfe0ac5a]::Arena>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2})>>::call_once
  41:     0x7f9af56183af - rustc_interface[940bae373762b9f1]::passes::create_and_enter_global_ctxt::<core[15592c06caabf6d5]::option::Option<rustc_interface[940bae373762b9f1]::queries::Linker>, rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}::{closure#2}>
  42:     0x7f9af55ea54b - <scoped_tls[bf7abbac846ce9d2]::ScopedKey<rustc_span[a0e71855a20bac44]::SessionGlobals>>::set::<rustc_interface[940bae373762b9f1]::util::run_in_thread_with_globals<rustc_interface[940bae373762b9f1]::util::run_in_thread_pool_with_globals<rustc_interface[940bae373762b9f1]::interface::run_compiler<(), rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
  43:     0x7f9af559c7d0 - rustc_span[a0e71855a20bac44]::create_session_globals_then::<(), rustc_interface[940bae373762b9f1]::util::run_in_thread_with_globals<rustc_interface[940bae373762b9f1]::util::run_in_thread_pool_with_globals<rustc_interface[940bae373762b9f1]::interface::run_compiler<(), rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  44:     0x7f9af55d8d71 - std[c044a44b1283b693]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[940bae373762b9f1]::util::run_in_thread_with_globals<rustc_interface[940bae373762b9f1]::util::run_in_thread_pool_with_globals<rustc_interface[940bae373762b9f1]::interface::run_compiler<(), rustc_driver_impl[5a305cef73bf4a9]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  45:     0x7f9af5590dd7 - <<std[c044a44b1283b693]::thread::Builder>::spawn_unchecked_<rustc_interface[940bae373762b9f1]::util::run_in_thread_with_globals<rustc_interface[940bae373762b9f1]::util::run_in_thread_pool_with_globals<rustc_interface[940bae373762b9f1]::interface::run_compiler<(), rustc_driver_impl[5a305cef73bf4a9]::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}
  46:     0x7f9af956fb15 - <std[c044a44b1283b693]::sys::pal::unix::thread::Thread>::new::thread_start
  48:     0x7f9af4917c3c - <unknown>
  49:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.
error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: please attach the file at `/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/compiler_builtins-0.1.143/rustc-ice-2025-01-27T23_41_14-12128.txt` to your bug report

note: compiler flags: --crate-type lib -C opt-level=3 -C embed-bitcode=no -C codegen-units=10000 -C debug-assertions=on -C strip=debuginfo -C symbol-mangling-version=v0 -Z randomize-layout -Z unstable-options -Z macro-backtrace -C split-debuginfo=off -C prefer-dynamic -C llvm-args=-import-instr-limit=10 -Z inline-mir -Z inline-mir-preserve-debug -Z mir_strip_debuginfo=locals-in-tiny-functions -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -C embed-bitcode=yes -C force-frame-pointers=yes -Z crate-attr=doc(html_root_url="https://doc.rust-lang.org/nightly/") -Z binary-dep-depinfo -Z force-unstable-if-unmarked
note: some of the compiler flags provided by cargo are hidden

query stack during panic:
query stack during panic:
#0 [autodiff_attrs] computing autodiff attributes of `<u64 as core::ops::arith::Sub>::sub`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
... and 1 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 compiler_builtins --edition=2021 /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/compiler_builtins-0.1.143/src/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 codegen-units=10000 -C debug-assertions=on --cfg 'feature="c"' --cfg 'feature="cc"' --cfg 'feature="compiler-builtins"' --cfg 'feature="core"' --cfg 'feature="default"' --cfg 'feature="rustc-dep-of-std"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("c", "cc", "compiler-builtins", "core", "default", "mangled-names", "mem", "no-asm", "no-f16-f128", "public-test-deps", "rustc-dep-of-std"))' -C metadata=d7cfa33b7474dd74 -C extra-filename=-9a378558cc5d2143 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C strip=debuginfo -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/release/deps --extern core=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/librustc_std_workspace_core-909cc34fe085b3d9.rmeta --cap-lints allow -Csymbol-mangling-version=v0 -Zrandomize-layout '--check-cfg=cfg(feature,values(any()))' -Zunstable-options '--check-cfg=cfg(bootstrap)' -Zmacro-backtrace -Csplit-debuginfo=off -Cprefer-dynamic -Cllvm-args=-import-instr-limit=10 --cfg=randomized_layouts -Zinline-mir -Zinline-mir-preserve-debug -Zmir_strip_debuginfo=locals-in-tiny-functions -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Alinker-messages -Cembed-bitcode=yes -Cforce-frame-pointers=yes '-Zcrate-attr=doc(html_root_url="https://doc.rust-lang.org/nightly/")' -Z binary-dep-depinfo -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/build/compiler_builtins-48be300fa7f18aff/out -l static=compiler-rt --cfg f16_enabled --cfg f128_enabled --cfg intrinsics_enabled --cfg arch_enabled --cfg optimizations_enabled --cfg 'feature="unstable-intrinsics"' --cfg 'feature="mem-unaligned"' --cfg '__absvdi2="optimized-c"' --cfg '__absvsi2="optimized-c"' --cfg '__absvti2="optimized-c"' --cfg '__addvdi3="optimized-c"' --cfg '__addvsi3="optimized-c"' --cfg '__addvti3="optimized-c"' --cfg '__cmpdi2="optimized-c"' --cfg '__cmpti2="optimized-c"' --cfg '__divdc3="optimized-c"' --cfg '__divsc3="optimized-c"' --cfg '__ffsti2="optimized-c"' --cfg '__int_util="optimized-c"' --cfg '__muldc3="optimized-c"' --cfg '__mulsc3="optimized-c"' --cfg '__mulvdi3="optimized-c"' --cfg '__mulvsi3="optimized-c"' --cfg '__mulvti3="optimized-c"' --cfg '__negdf2="optimized-c"' --cfg '__negdi2="optimized-c"' --cfg '__negsf2="optimized-c"' --cfg '__negti2="optimized-c"' --cfg '__negvdi2="optimized-c"' --cfg '__negvsi2="optimized-c"' --cfg '__negvti2="optimized-c"' --cfg '__paritydi2="optimized-c"' --cfg '__paritysi2="optimized-c"' --cfg '__parityti2="optimized-c"' --cfg '__popcountdi2="optimized-c"' --cfg '__popcountsi2="optimized-c"' --cfg '__popcountti2="optimized-c"' --cfg '__subvdi3="optimized-c"' --cfg '__subvsi3="optimized-c"' --cfg '__subvti3="optimized-c"' --cfg '__ucmpdi2="optimized-c"' --cfg '__ucmpti2="optimized-c"' --check-cfg 'cfg(__ashldi3, values("optimized-c"))' --check-cfg 'cfg(__ashlsi3, values("optimized-c"))' --check-cfg 'cfg(__ashrdi3, values("optimized-c"))' --check-cfg 'cfg(__ashrsi3, values("optimized-c"))' --check-cfg 'cfg(__bswapsi2, values("optimized-c"))' --check-cfg 'cfg(__bswapdi2, values("optimized-c"))' --check-cfg 'cfg(__bswapti2, values("optimized-c"))' --check-cfg 'cfg(__divdi3, values("optimized-c"))' --check-cfg 'cfg(__divsi3, values("optimized-c"))' --check-cfg 'cfg(__divmoddi4, values("optimized-c"))' --check-cfg 'cfg(__divmodsi4, values("optimized-c"))' --check-cfg 'cfg(__divmodsi4, values("optimized-c"))' --check-cfg 'cfg(__divmodti4, values("optimized-c"))' --check-cfg 'cfg(__lshrdi3, values("optimized-c"))' --check-cfg 'cfg(__lshrsi3, values("optimized-c"))' --check-cfg 'cfg(__moddi3, values("optimized-c"))' --check-cfg 'cfg(__modsi3, values("optimized-c"))' --check-cfg 'cfg(__muldi3, values("optimized-c"))' --check-cfg 'cfg(__udivdi3, values("optimized-c"))' --check-cfg 'cfg(__udivmoddi4, values("optimized-c"))' --check-cfg 'cfg(__udivmodsi4, values("optimized-c"))' --check-cfg 'cfg(__udivsi3, values("optimized-c"))' --check-cfg 'cfg(__umoddi3, values("optimized-c"))' --check-cfg 'cfg(__umodsi3, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_cas16_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldadd8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldclr8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldeor8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_ldset8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp1_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp2_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp4_acq_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_relax, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_acq, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_rel, values("optimized-c"))' --check-cfg 'cfg(__aarch64_swp8_acq_rel, values("optimized-c"))' --check-cfg 'cfg(target_feature, values("vis3"))' --check-cfg 'cfg(feature, values("checked"))' --check-cfg 'cfg(assert_no_panic)' --check-cfg 'cfg(f16_enabled)' --check-cfg 'cfg(f128_enabled)' --check-cfg 'cfg(intrinsics_enabled)' --check-cfg 'cfg(arch_enabled)' --check-cfg 'cfg(optimizations_enabled)' --check-cfg 'cfg(feature, values("unstable-public-internals"))' --check-cfg 'cfg(optimizations_enabled)' --check-cfg 'cfg(x86_no_sse)' --check-cfg 'cfg(feature, values("mem-unaligned"))' --check-cfg 'cfg(thumb)' --check-cfg 'cfg(thumb_1)' --check-cfg 'cfg(kernel_user_helpers)'` (exit status: 101)
Build completed unsuccessfully in 0:05:22
  local time: Mon Jan 27 23:41:18 UTC 2025
  network time: Mon, 27 Jan 2025 23:41:18 GMT
##[error]Process completed with exit code 1.

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.

7 participants