-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Open
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-autodiff`#![feature(autodiff)]``#![feature(autodiff)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
snippet:
//@compile-flags: -Zincremental-verify-ich=yes -Cincremental=<dir> -Cdebuginfo=2 -Clink-dead-code=true -Zvalidate-mir -Zquery-dep-graph -Zthreads=4 --edition=2024
#![feature(autodiff)]
macro_rules! demo {
() => {
#[std::autodiff::autodiff_reverse(x, Active, Active)]
fn f(x: f64) -> f64 {
x
}
};
}
demo!();
pub fn main() {}Version information
rustc 1.94.0-nightly (2ca7bcd03 2025-12-23)
binary: rustc
commit-hash: 2ca7bcd03b87b52f7055a59b817443b0ac4a530d
commit-date: 2025-12-23
host: x86_64-unknown-linux-gnu
release: 1.94.0-nightly
LLVM version: 21.1.8
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc -Zincremental-verify-ich=yes -Cincremental=<dir> -Cdebuginfo=2 -Clink-dead-code=true -Zvalidate-mir -Zquery-dep-graph -Zthreads=4 --edition=2024
Program output
warning: function `f` is never used
--> /tmp/icemaker_global_tempdir.4K5QMhZtihrW/rustc_testrunner_tmpdir_reporting.eu9lK8vGklo3/mvce.rs:5:12
|
5 | fn f(x: f64) -> f64 {
| ^
...
10 | demo!();
| ------- in this macro invocation
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
= note: this warning originates in the macro `demo` (in Nightly builds, run with -Z macro-backtrace for more info)
error: using the autodiff feature requires -Z autodiff=Enable
error: using the autodiff feature requires setting `lto="fat"` in your Cargo.toml
error: internal compiler error: /rustc-dev/2ca7bcd03b87b52f7055a59b817443b0ac4a530d/compiler/rustc_codegen_llvm/src/intrinsic.rs:1211:14: invalid args
thread 'rustc' (3569175) panicked at /rustc-dev/2ca7bcd03b87b52f7055a59b817443b0ac4a530d/compiler/rustc_codegen_llvm/src/intrinsic.rs:1211:14:
Box<dyn Any>
stack backtrace:
0: 0x7f934f22c3a3 - <<std[243ef3771c46e43a]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c088ff38143eb53e]::fmt::Display>::fmt
1: 0x7f934f810648 - core[c088ff38143eb53e]::fmt::write
2: 0x7f934f242af6 - <std[243ef3771c46e43a]::sys::stdio::unix::Stderr as std[243ef3771c46e43a]::io::Write>::write_fmt
3: 0x7f934f202b48 - std[243ef3771c46e43a]::panicking::default_hook::{closure#0}
4: 0x7f934f220213 - std[243ef3771c46e43a]::panicking::default_hook
5: 0x7f934e210d77 - std[243ef3771c46e43a]::panicking::update_hook::<alloc[baa86124b2c3e6f2]::boxed::Box<rustc_driver_impl[e986b619aabff65e]::install_ice_hook::{closure#1}>>::{closure#0}
6: 0x7f934f2204f2 - std[243ef3771c46e43a]::panicking::panic_with_hook
7: 0x7f934e24dec1 - std[243ef3771c46e43a]::panicking::begin_panic::<rustc_errors[c64784b3ec03c9d3]::ExplicitBug>::{closure#0}
8: 0x7f934e23e166 - std[243ef3771c46e43a]::sys::backtrace::__rust_end_short_backtrace::<std[243ef3771c46e43a]::panicking::begin_panic<rustc_errors[c64784b3ec03c9d3]::ExplicitBug>::{closure#0}, !>
9: 0x7f934e23b7a9 - std[243ef3771c46e43a]::panicking::begin_panic::<rustc_errors[c64784b3ec03c9d3]::ExplicitBug>
10: 0x7f934e26beb1 - <rustc_errors[c64784b3ec03c9d3]::diagnostic::BugAbort as rustc_errors[c64784b3ec03c9d3]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
11: 0x7f934e80d2e9 - rustc_middle[395a2484b1db1a27]::util::bug::opt_span_bug_fmt::<rustc_span[f0a4c422aa13deb9]::span_encoding::Span>::{closure#0}
12: 0x7f934e80d472 - rustc_middle[395a2484b1db1a27]::ty::context::tls::with_opt::<rustc_middle[395a2484b1db1a27]::util::bug::opt_span_bug_fmt<rustc_span[f0a4c422aa13deb9]::span_encoding::Span>::{closure#0}, !>::{closure#0}
13: 0x7f934e7fe77b - rustc_middle[395a2484b1db1a27]::ty::context::tls::with_context_opt::<rustc_middle[395a2484b1db1a27]::ty::context::tls::with_opt<rustc_middle[395a2484b1db1a27]::util::bug::opt_span_bug_fmt<rustc_span[f0a4c422aa13deb9]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
14: 0x7f934cc1a5b4 - rustc_middle[395a2484b1db1a27]::util::bug::bug_fmt
15: 0x7f934e02095b - rustc_codegen_llvm[988cdf03c4cb321]::intrinsic::codegen_autodiff
16: 0x7f9350940442 - <rustc_codegen_llvm[988cdf03c4cb321]::builder::GenericBuilder<rustc_codegen_llvm[988cdf03c4cb321]::context::FullCx> as rustc_codegen_ssa[21f8591ee52006ec]::traits::intrinsic::IntrinsicCallBuilderMethods>::codegen_intrinsic_call
17: 0x7f9350941cad - <rustc_codegen_ssa[21f8591ee52006ec]::mir::FunctionCx<rustc_codegen_llvm[988cdf03c4cb321]::builder::GenericBuilder<rustc_codegen_llvm[988cdf03c4cb321]::context::FullCx>>>::codegen_intrinsic_call
18: 0x7f9350cab46a - rustc_codegen_ssa[21f8591ee52006ec]::mir::codegen_mir::<rustc_codegen_llvm[988cdf03c4cb321]::builder::GenericBuilder<rustc_codegen_llvm[988cdf03c4cb321]::context::FullCx>>
19: 0x7f934fbca383 - rustc_codegen_llvm[988cdf03c4cb321]::base::compile_codegen_unit::module_codegen
20: 0x7f9350bda704 - <rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend as rustc_codegen_ssa[21f8591ee52006ec]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
21: 0x7f934dfeecad - rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec::<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>
22: 0x7f934e0022ca - rustc_thread_pool[7f17bb90507950fa]::join::join_context::<rustc_thread_pool[7f17bb90507950fa]::join::join::call<(), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>::{closure#1}>::{closure#0}, rustc_thread_pool[7f17bb90507950fa]::join::join::call<(), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>::{closure#2}>::{closure#0}, (), ()>::{closure#0}
23: 0x7f934dfeed61 - rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec::<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>
24: 0x7f934e03ef15 - <rustc_thread_pool[7f17bb90507950fa]::job::StackJob<rustc_thread_pool[7f17bb90507950fa]::latch::SpinLatch, rustc_thread_pool[7f17bb90507950fa]::join::join_context<rustc_thread_pool[7f17bb90507950fa]::join::join::call<(), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>::{closure#1}>::{closure#0}, rustc_thread_pool[7f17bb90507950fa]::join::join::call<(), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_slice::par_rec<(core[c088ff38143eb53e]::option::Option<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, core[c088ff38143eb53e]::option::Option<(usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>)>), rustc_data_structures[75601f20e3d68749]::sync::parallel::par_map<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse), alloc[baa86124b2c3e6f2]::vec::Vec<(usize, &rustc_codegen_ssa[21f8591ee52006ec]::assert_module_sources::CguReuse)>, (usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>), std[243ef3771c46e43a]::collections::hash::map::HashMap<usize, rustc_data_structures[75601f20e3d68749]::marker::IntoDynSyncSend<(rustc_codegen_ssa[21f8591ee52006ec]::ModuleCodegen<rustc_codegen_llvm[988cdf03c4cb321]::ModuleLlvm>, u64)>, rustc_hash[1d1c167f5c76c9f8]::FxBuildHasher>, rustc_codegen_ssa[21f8591ee52006ec]::base::codegen_crate<rustc_codegen_llvm[988cdf03c4cb321]::LlvmCodegenBackend>::{closure#5}::{closure#1}>::{closure#0}::{closure#1}>::{closure#2}>::{closure#0}, (), ()>::{closure#0}::{closure#0}, ()> as rustc_thread_pool[7f17bb90507950fa]::job::Job>::execute
25: 0x7f934ef15f4f - <rustc_thread_pool[7f17bb90507950fa]::registry::WorkerThread>::wait_or_steal_until_cold
26: 0x7f934ef14962 - <rustc_thread_pool[7f17bb90507950fa]::registry::ThreadBuilder>::run
27: 0x7f934e209b8c - std[243ef3771c46e43a]::sys::backtrace::__rust_begin_short_backtrace::<<rustc_thread_pool[7f17bb90507950fa]::ThreadPoolBuilder>::build_scoped<rustc_interface[577997324878ea43]::util::run_in_thread_pool_with_globals<rustc_interface[577997324878ea43]::interface::run_compiler<(), rustc_driver_impl[e986b619aabff65e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#5}::{closure#0}::{closure#0}, rustc_interface[577997324878ea43]::util::run_in_thread_pool_with_globals<rustc_interface[577997324878ea43]::interface::run_compiler<(), rustc_driver_impl[e986b619aabff65e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#5}::{closure#0}::{closure#1}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
28: 0x7f934e2157f3 - <std[243ef3771c46e43a]::thread::lifecycle::spawn_unchecked<<rustc_thread_pool[7f17bb90507950fa]::ThreadPoolBuilder>::build_scoped<rustc_interface[577997324878ea43]::util::run_in_thread_pool_with_globals<rustc_interface[577997324878ea43]::interface::run_compiler<(), rustc_driver_impl[e986b619aabff65e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#5}::{closure#0}::{closure#0}, rustc_interface[577997324878ea43]::util::run_in_thread_pool_with_globals<rustc_interface[577997324878ea43]::interface::run_compiler<(), rustc_driver_impl[e986b619aabff65e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#5}::{closure#0}::{closure#1}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#1} as core[c088ff38143eb53e]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
29: 0x7f9350995b38 - <std[243ef3771c46e43a]::sys::thread::unix::Thread>::new::thread_start
30: 0x7f934a29698b - <unknown>
31: 0x7f934a31a9cc - <unknown>
32: 0x0 - <unknown>
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: please make sure that you have updated to the latest nightly
note: rustc 1.94.0-nightly (2ca7bcd03 2025-12-23) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z incremental-verify-ich=yes -C incremental=[REDACTED] -C debuginfo=2 -C link-dead-code=true -Z validate-mir -Z query-dep-graph -Z threads=4
query stack during panic:
end of query stack
error: aborting due to 3 previous errors; 1 warning emitted
@rustbot label +F-autodiff +-Zvalidate-mir
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-autodiff`#![feature(autodiff)]``#![feature(autodiff)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.