Conversation
|
These commits modify the If this was unintentional then you should revert the changes before this PR is merged. Some changes occurred in compiler/rustc_codegen_llvm/src/llvm/enzyme_ffi.rs cc @ZuseZ4 |
|
That's exciting, and is gonna make some people on the infra team very happy. Just to be sure, are the tests still passing? |
This comment has been minimized.
This comment has been minimized.
|
(oops, sorry I should have run tests before opening this pr. It takes too much time running tests on my m1 mac so let me check them tomorrow, including ci failures..... 🙇) |
|
Don't worry. I don't run all tests either before opening a PR either, that indeed takes way too long. I mostly run |
|
Oh sorry, I was only referring to all the autodiff tests mentioned here. I'm also not running all tests. |
This comment has been minimized.
This comment has been minimized.
|
@sgasho It seems that all autodiff tests invoking enzyme fail, e.g: thread 'rustc' (2936300) panicked at compiler/rustc_codegen_llvm/src/llvm/enzyme_ffi.rs:211:35:
EnzymeWrapper not initialized
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::option::expect_failed
3: rustc_codegen_llvm::typetree::add_tt
4: rustc_codegen_llvm::intrinsic::codegen_autodiffI still remember I had the same issue in my original PR, so that might be the reason. |
|
Some changes occurred in compiler/rustc_codegen_llvm/src/builder/autodiff.rs cc @ZuseZ4 |
I solved the "EnzymeWrapper not initialized" problem in the latest commit (52f0d2e) However, another error occurred e.g. ./x test --stage 1 tests/codegen-llvm/autodiff/scalar.rs
Building bootstrap
Finished `dev` profile [unoptimized] target(s) in 0.14s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148803` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.55s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.59s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.12s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.25s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 2.77s
Testing stage1 with compiletest suite=codegen-llvm mode=codegen (aarch64-apple-darwin)
running 1 tests
[codegen] tests/codegen-llvm/autodiff/scalar.rs ... F
failures:
---- [codegen] tests/codegen-llvm/autodiff/scalar.rs stdout ----
------rustc stdout------------------------------
------rustc stderr------------------------------
Assertion failed: (AnalysisPasses.count(PassT::ID()) && "This analysis pass was not registered prior to being queried"), function getResult, file PassManager.h, line 414.
------------------------------------------
error: compilation failed!
status: signal: 6 (SIGABRT)
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/bin/rustc" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/scalar.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/suganoshota/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/vendor" "--sysroot" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "-O" "-Cdebug-assertions=no" "-Zcodegen-source-order" "--emit" "llvm-ir" "-o" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/scalar/scalar.ll" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Zautodiff=Enable,NoTT" "-C" "opt-level=3" "-Clto=fat"
stdout: none
--- stderr -------------------------------
Assertion failed: (AnalysisPasses.count(PassT::ID()) && "This analysis pass was not registered prior to being queried"), function getResult, file PassManager.h, line 414.
------------------------------------------
---- [codegen] tests/codegen-llvm/autodiff/scalar.rs stdout end ----
failures:
[codegen] tests/codegen-llvm/autodiff/scalar.rs
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 964 filtered out; finished in 529.35ms
Some tests failed in compiletest suite=codegen-llvm mode=codegen host=aarch64-apple-darwin target=aarch64-apple-darwin
Build completed unsuccessfully in 0:00:18I could not figure out what triggers "This analysis pass was not registered prior to being queried". codex cli says Enzyme has a problem but I'm not sure if it's right. I'll take look into it tomorrow.
|
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
|
Do you have a backtrace? |
|
I saw no further information using RUST_BACKTRACE=1 RUST_BACKTRACE=1 ./x test --stage 1 tests/codegen-llvm/autodiff/scalar.rsor set RUST_BACKTRACE=1
./x test --stage 1 tests/codegen-llvm/autodiff/scalar.rs |
|
You will have to use a debugger. These are LLVM aborts, not rust panics, so |
|
I see! Launching: /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/bin/rustc /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/scalar.rs -Zthreads=1 -Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Ztranslate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/Users/suganoshota/.cargo -Z ignore-directory-in-diagnostics-source-blocks=/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/vendor --sysroot /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1 --target aarch64-apple-darwin --check-cfg cfg(test,FALSE) -O -Cdebug-assertions=no -Zcodegen-source-order --emit llvm-ir -o /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/scalar/scalar.ll -A internal_features -A unused_parens -A unused_braces -Crpath -Cdebuginfo=0 -Zautodiff=Enable,NoTT -C opt-level=3 -Clto=fat
Launched process 22915 from '/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/bin/rustc'
Assertion failed: (AnalysisPasses.count(PassT::ID()) && "This analysis pass was not registered prior to being queried"), function getResult, file PassManager.h, line 414.
Stop reason: hit program assert
thread backtrace all
thread #1, name = 'main', queue = 'com.apple.main-thread'
frame #0: 0x0000000186068ae4 libsystem_kernel.dylib`__ulock_wait + 8
frame #1: 0x00000001860ac0ac libsystem_pthread.dylib`_pthread_join + 608
frame #2: 0x0000000109051888 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::join at unix.rs:134:28 [opt]
frame #3: 0x00000001063005c0 librustc_driver-1894da91bc51a45d.dylib`<std::thread::JoinInner<()>>::join + 32
frame #4: 0x000000010630449c librustc_driver-1894da91bc51a45d.dylib`rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}> + 2292
frame #5: 0x00000001062aa518 librustc_driver-1894da91bc51a45d.dylib`rustc_driver_impl::run_compiler + 4248
frame #6: 0x00000001062b074c librustc_driver-1894da91bc51a45d.dylib`rustc_driver_impl::main + 208
frame #7: 0x00000001000007b0 rustc`rustc_main::main + 12
frame #8: 0x0000000100000764 rustc`std::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()> + 12
frame #9: 0x000000010000077c rustc`std::rt::lang_start::<()>::{closure#0} + 16
frame #10: 0x0000000109046f94 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once at function.rs:287:21 [opt]
frame #11: 0x0000000109046f8c librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panicking::catch_unwind::do_call at panicking.rs:590:40 [opt]
frame #12: 0x0000000109046f88 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panicking::catch_unwind at panicking.rs:553:19 [opt]
frame #13: 0x0000000109046f88 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panic::catch_unwind at panic.rs:359:14 [opt]
frame #14: 0x0000000109046f88 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::rt::lang_start_internal::{{closure}} at rt.rs:175:24 [opt]
frame #15: 0x0000000109046bb8 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panicking::catch_unwind::do_call at panicking.rs:590:40 [opt]
frame #16: 0x0000000109046bb8 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panicking::catch_unwind at panicking.rs:553:19 [opt]
frame #17: 0x0000000109046bb8 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal [inlined] std::panic::catch_unwind at panic.rs:359:14 [opt]
frame #18: 0x0000000109046bb8 librustc_driver-1894da91bc51a45d.dylib`std::rt::lang_start_internal at rt.rs:171:5 [opt]
frame #19: 0x00000001000007e4 rustc`main + 52
frame #20: 0x0000000185ce1d54 dyld`start + 7184
thread #2, name = 'ctrl-c'
frame #0: 0x0000000186067908 libsystem_kernel.dylib`read + 8
frame #1: 0x00000001062eac68 librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()> + 52
frame #2: 0x00000001062feeec librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 108
frame #3: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #4: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #5: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136
thread #3, name = 'rustc'
frame #0: 0x0000000186066bb0 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x0000000185eee990 libdispatch.dylib`_dispatch_sema4_wait + 28
frame #2: 0x0000000185eeef40 libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
frame #3: 0x0000000109058d20 librustc_driver-1894da91bc51a45d.dylib`std::thread::Thread::park [inlined] std::sys::sync::thread_parking::darwin::Parker::park at darwin.rs:74:15 [opt]
frame #4: 0x0000000109058d00 librustc_driver-1894da91bc51a45d.dylib`std::thread::Thread::park at mod.rs:1498:47 [opt]
frame #5: 0x0000000107fc6308 librustc_driver-1894da91bc51a45d.dylib`<std::sync::mpmc::list::Channel<rustc_codegen_ssa::back::write::SharedEmitterMessage>>::recv::{closure#1} + 324
frame #6: 0x0000000107fc6d10 librustc_driver-1894da91bc51a45d.dylib`<std::sync::mpmc::list::Channel<rustc_codegen_ssa::back::write::SharedEmitterMessage>>::recv + 372
frame #7: 0x0000000107fa550c librustc_driver-1894da91bc51a45d.dylib`<rustc_codegen_ssa::back::write::SharedEmitterMain>::check + 152
frame #8: 0x00000001065e5e98 librustc_driver-1894da91bc51a45d.dylib`<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::join_codegen + 168
frame #9: 0x00000001064fc31c librustc_driver-1894da91bc51a45d.dylib`<rustc_interface::queries::Linker>::link + 304
frame #10: 0x000000010630dd6c librustc_driver-1894da91bc51a45d.dylib`rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 3524
frame #11: 0x000000010630192c librustc_driver-1894da91bc51a45d.dylib`rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}> + 328
frame #12: 0x00000001062eae1c librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 104
frame #13: 0x00000001062ff1bc librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 268
frame #14: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #15: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #16: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136
thread #4
frame #0: 0x000000018606a4f8 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001860aa0dc libsystem_pthread.dylib`_pthread_cond_wait + 984
frame #2: 0x000000010902d680 librustc_driver-1894da91bc51a45d.dylib`<jobserver::HelperState>::for_each_request::<jobserver::imp::spawn_helper::{closure#1}::{closure#0}> + 256
frame #3: 0x0000000109030620 librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<jobserver::imp::spawn_helper::{closure#1}, ()> + 36
frame #4: 0x000000010902f91c librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<jobserver::imp::spawn_helper::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 160
frame #5: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #6: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #7: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136
thread #5
frame #0: 0x000000018606a4f8 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001860aa0dc libsystem_pthread.dylib`_pthread_cond_wait + 984
frame #2: 0x000000010902d680 librustc_driver-1894da91bc51a45d.dylib`<jobserver::HelperState>::for_each_request::<jobserver::imp::spawn_helper::{closure#1}::{closure#0}> + 256
frame #3: 0x0000000109030620 librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<jobserver::imp::spawn_helper::{closure#1}, ()> + 36
frame #4: 0x000000010902f91c librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<jobserver::imp::spawn_helper::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 160
frame #5: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #6: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #7: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136
thread #6, name = 'coordinator'
frame #0: 0x0000000186066bb0 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x0000000185eee990 libdispatch.dylib`_dispatch_sema4_wait + 28
frame #2: 0x0000000185eeef40 libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
frame #3: 0x0000000109058d20 librustc_driver-1894da91bc51a45d.dylib`std::thread::Thread::park [inlined] std::sys::sync::thread_parking::darwin::Parker::park at darwin.rs:74:15 [opt]
frame #4: 0x0000000109058d00 librustc_driver-1894da91bc51a45d.dylib`std::thread::Thread::park at mod.rs:1498:47 [opt]
frame #5: 0x000000010666a278 librustc_driver-1894da91bc51a45d.dylib`<std::sync::mpmc::list::Channel<rustc_codegen_ssa::back::write::Message<rustc_codegen_llvm::LlvmCodegenBackend>>>::recv::{closure#1} + 140
frame #6: 0x000000010666b398 librustc_driver-1894da91bc51a45d.dylib`<std::sync::mpmc::list::Channel<rustc_codegen_ssa::back::write::Message<rustc_codegen_llvm::LlvmCodegenBackend>>>::recv + 460
frame #7: 0x00000001065d921c librustc_driver-1894da91bc51a45d.dylib`rustc_codegen_ssa::back::write::start_executing_work::<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#4} + 1528
frame #8: 0x00000001065d868c librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::start_executing_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#4}, core::result::Result<rustc_codegen_ssa::back::write::CompiledModules, ()>>::{closure#0}, core::result::Result<rustc_codegen_ssa::back::write::CompiledModules, ()>> + 72
frame #9: 0x00000001065df85c librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::start_executing_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#4}, core::result::Result<rustc_codegen_ssa::back::write::CompiledModules, ()>>::{closure#0}, core::result::Result<rustc_codegen_ssa::back::write::CompiledModules, ()>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 472
frame #10: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #11: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #12: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136
* thread #7, name = 'opt cgu.0', stop reason = hit program assert
* frame #0: 0x000000018606f5b0 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001860a9888 libsystem_pthread.dylib`pthread_kill + 296
frame #2: 0x0000000185fae850 libsystem_c.dylib`abort + 124
frame #3: 0x0000000185fada84 libsystem_c.dylib`__assert_rtn + 284
frame #4: 0x00000001057ed734 libEnzyme-21.dylib`TypeAnalyzer::TypeAnalyzer(FnTypeInfo const&, TypeAnalysis&, unsigned char) + 3960
frame #5: 0x00000001058267fc libEnzyme-21.dylib`TypeAnalysis::analyzeFunction(FnTypeInfo const&) + 288
frame #6: 0x000000010568fa5c libEnzyme-21.dylib`(anonymous namespace)::EnzymeBase::HandleAutoDiff(llvm::Instruction*, unsigned int, llvm::Value*, llvm::Type*, llvm::SmallVectorImpl<llvm::Value*>&, std::__1::map<int, llvm::Type*, std::__1::less<int>, std::__1::allocator<std::__1::pair<int const, llvm::Type*>>> const&, std::__1::vector<DIFFE_TYPE, std::__1::allocator<DIFFE_TYPE>> const&, llvm::Function*, DerivativeMode, (anonymous namespace)::EnzymeBase::Options&, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) + 1580
frame #7: 0x000000010568a0a0 libEnzyme-21.dylib`(anonymous namespace)::EnzymeBase::HandleAutoDiffArguments(llvm::CallInst*, DerivativeMode, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) + 644
frame #8: 0x00000001056856d8 libEnzyme-21.dylib`(anonymous namespace)::EnzymeBase::lowerEnzymeCalls(llvm::Function&, std::__1::set<llvm::Function*, std::__1::less<llvm::Function*>, std::__1::allocator<llvm::Function*>>&) + 13188
frame #9: 0x0000000105680974 libEnzyme-21.dylib`(anonymous namespace)::EnzymeBase::run(llvm::Module&) + 1384
frame #10: 0x000000010569e6bc libEnzyme-21.dylib`llvm::detail::PassModel<llvm::Module, EnzymeNewPM, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 28
frame #11: 0x000000011816727c libLLVM.dylib`llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 328
frame #12: 0x00000001066f9888 librustc_driver-1894da91bc51a45d.dylib`LLVMRustOptimize + 10124
frame #13: 0x000000010667a720 librustc_driver-1894da91bc51a45d.dylib`rustc_codegen_llvm::back::write::llvm_optimize + 3500
frame #14: 0x000000010667e1d0 librustc_driver-1894da91bc51a45d.dylib`rustc_codegen_llvm::back::write::optimize + 508
frame #15: 0x00000001065d7060 librustc_driver-1894da91bc51a45d.dylib`rustc_codegen_ssa::back::write::execute_optimize_work_item::<rustc_codegen_llvm::LlvmCodegenBackend> + 140
frame #16: 0x00000001065d7e8c librustc_driver-1894da91bc51a45d.dylib`std::sys::backtrace::__rust_begin_short_backtrace::<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::spawn_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#0}, ()>::{closure#0}, ()> + 180
frame #17: 0x00000001065df1a8 librustc_driver-1894da91bc51a45d.dylib`<<std::thread::Builder>::spawn_unchecked_<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::spawn_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#0}, ()>::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 212
frame #18: 0x0000000109051578 librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start [inlined] <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once at boxed.rs:2005:9 [opt]
frame #19: 0x000000010905156c librustc_driver-1894da91bc51a45d.dylib`std::sys::thread::unix::Thread::new::thread_start at unix.rs:126:17 [opt]
frame #20: 0x00000001860a9c08 libsystem_pthread.dylib`_pthread_start + 136 |
|
Good that you properly solved the first bug. I had just commented it out back in my PR and then ended up running into the same bug you're seeing now as well |
|
To be more clear at what did (not) work. In my first attempt where I just dlopen'ed Enzyme directly in |
I tried removing the Mutex and running the test, whose result didn't change. I'm not sure but I think the cause may lie in Enzyme commits made from early October until this PR was submitted. I realized that DominatorTreeAnalysis and LoopAnalysis is not registered when TypeAnalyzer::TypeAnalyzer tries to access them. I added a code to register those passes in PreProcessCache::PreProcessCache(enzyme/Enzyme/FunctionUtils.cpp) like below and the "This analysis pass was not registered prior to being queried" error disappeared
|
this error has been resolved, but I encountered another error in abi_handling.rs. Details
./x test --stage 1 tests/codegen-llvm/autodiff/abi_handling.rs
Building bootstrap
Finished `dev` profile [unoptimized] target(s) in 0.16s
WARNING: The `change-id` is missing in the `bootstrap.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
NOTE: to silence this warning, add `change-id = 148803` or `change-id = "ignore"` at the top of `bootstrap.toml`
Building stage1 compiler artifacts (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 1.18s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 wasm-component-ld (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.18s
Building stage1 llvm-bitcode-linker (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 0.15s
Building stage1 library artifacts (stage1 -> stage1, aarch64-apple-darwin)
Compiling rustc-std-workspace-std v1.99.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/library/rustc-std-workspace-std)
Compiling rustc-literal-escaper v0.0.5
Compiling getopts v0.2.24
Compiling proc_macro v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/library/proc_macro)
Compiling test v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/library/test)
Compiling sysroot v0.0.0 (/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/library/sysroot)
Finished `release` profile [optimized] target(s) in 18.42s
Building stage1 compiletest (stage0 -> stage1, aarch64-apple-darwin)
Finished `release` profile [optimized] target(s) in 3.52s
Testing stage1 with compiletest suite=codegen-llvm mode=codegen (aarch64-apple-darwin)
running 2 tests
.
[codegen] tests/codegen-llvm/autodiff/abi_handling.rs#release ... F
failures:
---- [codegen] tests/codegen-llvm/autodiff/abi_handling.rs#release stdout ----
------FileCheck stdout------------------------------
------FileCheck stderr------------------------------
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:61:18: error: release-NEXT: expected string not found in input
// release-NEXT: define internal fastcc float
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:121:17: note: scanning from here
; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:122:1: note: possible intended match here
define internal fastcc noundef float @_ZN12abi_handling3df217h8225b3063251a601E(float noundef %x) unnamed_addr #3 {
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:80:18: error: release-NEXT: expected string not found in input
// release-NEXT: define internal fastcc { float, float }
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:138:17: note: scanning from here
; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:139:1: note: possible intended match here
define internal fastcc float @_ZN12abi_handling3df317h01a992588fc5860aE(float %x.0.val) unnamed_addr #3 {
^
Input file: /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll
Check file: /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs
-dump-input=help explains the following input dump.
Input was:
<<<<<<
.
.
.
21: @alloc_6b942ae025fc267882224af2dfb26562 = private unnamed_addr constant [120 x i8] c"o[/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:207:5] f7(in_f7) = \C1 \00\80`\01\0A\00", align 1
22: @alloc_c481dc9f80d81e62696305229ddf54c2 = private unnamed_addr constant [117 x i8] c"l[/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:209:5] res_f7 = \C1 \00\80`\01\0A\00", align 1
23:
24: ; std::rt::lang_start::{{closure}}
25: ; Function Attrs: inlinehint uwtable
26: define internal noundef i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h8b0e7bb5ee949527E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %_1) unnamed_addr #0 {
27: start:
28: %_4 = load ptr, ptr %_1, align 8, !nonnull !3, !noundef !3
29: ; call std::sys::backtrace::__rust_begin_short_backtrace
30: tail call fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull %_4)
31: ret i32 0
32: }
33:
34: ; std::sys::backtrace::__rust_begin_short_backtrace
35: ; Function Attrs: noinline uwtable
36: define internal fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull readonly captures(none) %f) unnamed_addr #1 {
37: start:
38: tail call void %f()
39: tail call void asm sideeffect "", "~{memory}"() #7, !srcloc !4
40: ret void
41: }
42:
43: ; <&T as core::fmt::Debug>::fmt
44: ; Function Attrs: uwtable
45: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h3bdae9b704488cd6E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
46: start:
47: %_3 = load ptr, ptr %self, align 8, !nonnull !3, !align !5, !noundef !3
48: ; call core::fmt::float::<impl core::fmt::Debug for f32>::fmt
49: %_0 = tail call noundef zeroext i1 @"_ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f32$GT$3fmt17h72ad986133e4b700E"(ptr noalias noundef nonnull readonly align 4 captures(address, read_provenance) dereferenceable(4) %_3, ptr noalias noundef nonnull align 8 dereferenceable(24) %f)
50: ret i1 %_0
51: }
52:
53: ; <&T as core::fmt::Debug>::fmt
54: ; Function Attrs: uwtable
55: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h85611de7bcb66147E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
56: start:
57: %T.i = alloca [8 x i8], align 8
58: %U.i = alloca [8 x i8], align 8
59: %builder.i = alloca [24 x i8], align 8
60: %_3 = load ptr, ptr %self, align 8, !nonnull !3, !align !5, !noundef !3
61: call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %builder.i), !noalias !6
62: ; call core::fmt::Formatter::debug_tuple
63: call void @_ZN4core3fmt9Formatter11debug_tuple17ha32b6a48c8b713c7E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(address) dereferenceable(24) %builder.i, ptr noalias noundef nonnull align 8 dereferenceable(24) %f, ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) inttoptr (i64 1 to ptr), i64 noundef 0), !noalias !10
64: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %U.i), !noalias !6
65: store ptr %_3, ptr %U.i, align 8, !noalias !6
66: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %T.i), !noalias !6
67: %0 = getelementptr inbounds nuw i8, ptr %_3, i64 4
68: store ptr %0, ptr %T.i, align 8, !noalias !6
69: ; call core::fmt::builders::DebugTuple::field
70: %_6.i = call noundef align 8 dereferenceable(24) ptr @_ZN4core3fmt8builders10DebugTuple5field17h660470c184e6b531E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i, ptr noundef nonnull align 1 %U.i, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @vtable.1)
71: ; call core::fmt::builders::DebugTuple::field
72: %_10.i = call noundef align 8 dereferenceable(24) ptr @_ZN4core3fmt8builders10DebugTuple5field17h660470c184e6b531E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i, ptr noundef nonnull align 1 %T.i, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @vtable.1)
73: ; call core::fmt::builders::DebugTuple::finish
74: %_0.i = call noundef zeroext i1 @_ZN4core3fmt8builders10DebugTuple6finish17h535deb1336268780E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i)
75: call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %T.i), !noalias !6
76: call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %U.i), !noalias !6
77: call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %builder.i), !noalias !6
78: ret i1 %_0.i
79: }
80:
81: ; <&T as core::fmt::Debug>::fmt
82: ; Function Attrs: uwtable
83: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9db4c3d32513474eE"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(16) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
84: start:
85: %_3.0 = load ptr, ptr %self, align 8, !nonnull !3, !align !11, !noundef !3
86: %0 = getelementptr inbounds nuw i8, ptr %self, i64 8
87: %_3.1 = load ptr, ptr %0, align 8, !nonnull !3, !align !12, !noundef !3
88: %1 = getelementptr inbounds nuw i8, ptr %_3.1, i64 24
89: %2 = load ptr, ptr %1, align 8, !invariant.load !3, !nonnull !3
90: %_0 = tail call noundef zeroext i1 %2(ptr noundef nonnull align 1 %_3.0, ptr noalias noundef nonnull align 8 dereferenceable(24) %f)
91: ret i1 %_0
92: }
93:
94: ; core::ops::function::FnOnce::call_once{{vtable.shim}}
95: ; Function Attrs: inlinehint uwtable
96: define internal noundef i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h8e186a9e69699a08E"(ptr noundef readonly captures(none) %_1) unnamed_addr #0 personality ptr @rust_eh_personality {
97: start:
98: %0 = load ptr, ptr %_1, align 8, !nonnull !3, !noundef !3
99: ; call std::sys::backtrace::__rust_begin_short_backtrace
100: tail call fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull readonly %0), !noalias !13
101: ret i32 0
102: }
103:
104: ; abi_handling::df1
105: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
106: define internal fastcc float @_ZN12abi_handling3df117h9c3ecfe66d623cc2E(float %x.0.val, float %x.4.val) unnamed_addr #3 {
107: start:
108: %0 = tail call fastcc float @fwddiffe_ZN12abi_handling2f117hd0e171dfa53a2d60E(float %x.0.val, float %x.4.val)
109: ret float %0
110: }
111:
112: ; abi_handling::f1
113: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
114: define internal fastcc noundef float @_ZN12abi_handling2f117hd0e171dfa53a2d60E(float %x.0.val, float %x.4.val) unnamed_addr #3 {
115: start:
116: %_0 = fadd float %x.0.val, %x.4.val
117: ret float %_0
118: }
119:
120: ; abi_handling::df2
121: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
next:61'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
122: define internal fastcc noundef float @_ZN12abi_handling3df217h8225b3063251a601E(float noundef %x) unnamed_addr #3 {
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:61'1 ? possible intended match
123: start:
next:61'0 ~~~~~~~
124: ; call abi_handling::f2
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~
125: %0 = tail call fastcc float @_ZN12abi_handling2f217ha5269d6a663e4b66E(float %x)
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126: ret float %0
next:61'0 ~~~~~~~~~~~~~~
127: }
next:61'0 ~~
128:
next:61'0 ~
129: ; abi_handling::f2
next:61'0 ~~~~~~~~~~~~~~~~~~
130: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
131: define internal fastcc noundef float @_ZN12abi_handling2f217ha5269d6a663e4b66E(float noundef %x) unnamed_addr #3 {
132: start:
133: %_0.i = fmul float %x, %x
134: ret float %_0.i
135: }
136:
137: ; abi_handling::df3
138: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
next:80'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
139: define internal fastcc float @_ZN12abi_handling3df317h01a992588fc5860aE(float %x.0.val) unnamed_addr #3 {
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:80'1 ? possible intended match
140: start:
next:80'0 ~~~~~~~
141: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f317h76e9fe102509bcb8E(float %x.0.val)
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
142: %oldret = extractvalue { float, float } %0, 0
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143: ret float %oldret
next:80'0 ~~~~~~~~~~~~~~~~~~~
144: }
next:80'0 ~~
145:
next:80'0 ~
146: ; abi_handling::f3
next:80'0 ~~~~~~~~~~~~~~~~~~
147: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
148: define internal fastcc noundef float @_ZN12abi_handling2f317h76e9fe102509bcb8E(float %x.0.val) unnamed_addr #3 {
149: start:
150: %_0 = fmul float %x.0.val, 0x40099999A0000000
151: ret float %_0
152: }
153:
154: ; abi_handling::df4
155: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
156: define internal fastcc { float, float } @_ZN12abi_handling3df417h5cc6e38f26bcfe23E(float noundef %x.0, float noundef %x.1) unnamed_addr #3 {
157: start:
158: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f417h4dd0d54e71689dcaE(float %x.0, float %x.1)
159: ret { float, float } %0
160: }
161:
162: ; abi_handling::f4
163: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
164: define internal fastcc noundef float @_ZN12abi_handling2f417h4dd0d54e71689dcaE(float noundef %x.0, float noundef %x.1) unnamed_addr #3 {
165: start:
166: %_0 = fmul float %x.0, %x.1
167: ret float %_0
168: }
169:
170: ; abi_handling::df5
171: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
172: define internal fastcc { float, float } @_ZN12abi_handling3df517hb63274288df3629dE(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
173: start:
174: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f517hd1e1fe9d327743a4E(float %i.0, float %i.1)
175: ret { float, float } %0
176: }
177:
178: ; abi_handling::f5
179: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
180: define internal fastcc noundef float @_ZN12abi_handling2f517hd1e1fe9d327743a4E(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
181: start:
182: %_0 = fadd float %i.0, %i.1
183: ret float %_0
184: }
185:
186: ; abi_handling::df6
187: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
188: define internal fastcc { float, float } @_ZN12abi_handling3df617hf53c2881f50cee19E(float noundef %i.0, float noundef %i.1, float noundef %bi_0.0, float noundef %bi_0.1) unnamed_addr #3 {
189: start:
190: %0 = tail call fast fastcc { float, float } @fwddiffe_ZN12abi_handling2f617h7249eba95dfb35c5E(float %i.0, float %i.1, float %bi_0.0, float %bi_0.1)
191: ret { float, float } %0
192: }
193:
194: ; abi_handling::f6
195: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
196: define internal fastcc noundef float @_ZN12abi_handling2f617h7249eba95dfb35c5E(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
197: start:
198: %_3 = fmul float %i.1, %i.1
199: %_0 = fadd float %i.0, %_3
200: ret float %_0
201: }
202:
203: ; abi_handling::df7
204: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
205: define internal fastcc { float, float } @_ZN12abi_handling3df717h8aa14563fd386ae5E(float %x.0.0.val, float %x.1.0.val) unnamed_addr #3 {
206: start:
207: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f717h4f3a1a877e2b90fbE(float %x.0.0.val, float %x.1.0.val)
208: ret { float, float } %0
209: }
210:
211: ; abi_handling::f7
212: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
213: define internal fastcc noundef float @_ZN12abi_handling2f717h4f3a1a877e2b90fbE(float %x.0.0.val, float %x.1.0.val) unnamed_addr #3 {
214: start:
215: %_0 = fmul float %x.0.0.val, %x.1.0.val
216: ret float %_0
217: }
218:
219: ; abi_handling::main
220: ; Function Attrs: uwtable
221: define internal void @_ZN12abi_handling4main17hd7ff7d4e219205abE() unnamed_addr #2 {
222: start:
223: %0 = alloca [4 x i8], align 4
224: %args26 = alloca [16 x i8], align 8
225: %_171 = alloca [8 x i8], align 8
226: %_169 = alloca [16 x i8], align 8
227: %tmp25 = alloca [8 x i8], align 4
228: %args24 = alloca [16 x i8], align 8
229: %_159 = alloca [8 x i8], align 8
230: %_157 = alloca [16 x i8], align 8
231: %tmp23 = alloca [4 x i8], align 4
232: %args22 = alloca [16 x i8], align 8
233: %_145 = alloca [8 x i8], align 8
234: %_143 = alloca [16 x i8], align 8
235: %tmp21 = alloca [8 x i8], align 4
236: %args20 = alloca [16 x i8], align 8
237: %_132 = alloca [8 x i8], align 8
238: %_130 = alloca [16 x i8], align 8
239: %tmp19 = alloca [4 x i8], align 4
.
.
.
>>>>>>
------------------------------------------
error in revision `release`: verification with 'FileCheck' failed
status: exit status: 1
command: "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/llvm/build/bin/FileCheck" "--input-file" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll" "/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs" "--check-prefix=CHECK" "--check-prefix" "release" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:61:18: error: release-NEXT: expected string not found in input
// release-NEXT: define internal fastcc float
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:121:17: note: scanning from here
; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:122:1: note: possible intended match here
define internal fastcc noundef float @_ZN12abi_handling3df217h8225b3063251a601E(float noundef %x) unnamed_addr #3 {
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:80:18: error: release-NEXT: expected string not found in input
// release-NEXT: define internal fastcc { float, float }
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:138:17: note: scanning from here
; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
^
/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll:139:1: note: possible intended match here
define internal fastcc float @_ZN12abi_handling3df317h01a992588fc5860aE(float %x.0.val) unnamed_addr #3 {
^
Input file: /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/test/codegen-llvm/autodiff/abi_handling.release/abi_handling.ll
Check file: /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs
-dump-input=help explains the following input dump.
Input was:
<<<<<<
.
.
.
21: @alloc_6b942ae025fc267882224af2dfb26562 = private unnamed_addr constant [120 x i8] c"o[/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:207:5] f7(in_f7) = \C1 \00\80`\01\0A\00", align 1
22: @alloc_c481dc9f80d81e62696305229ddf54c2 = private unnamed_addr constant [117 x i8] c"l[/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/tests/codegen-llvm/autodiff/abi_handling.rs:209:5] res_f7 = \C1 \00\80`\01\0A\00", align 1
23:
24: ; std::rt::lang_start::{{closure}}
25: ; Function Attrs: inlinehint uwtable
26: define internal noundef i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h8b0e7bb5ee949527E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %_1) unnamed_addr #0 {
27: start:
28: %_4 = load ptr, ptr %_1, align 8, !nonnull !3, !noundef !3
29: ; call std::sys::backtrace::__rust_begin_short_backtrace
30: tail call fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull %_4)
31: ret i32 0
32: }
33:
34: ; std::sys::backtrace::__rust_begin_short_backtrace
35: ; Function Attrs: noinline uwtable
36: define internal fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull readonly captures(none) %f) unnamed_addr #1 {
37: start:
38: tail call void %f()
39: tail call void asm sideeffect "", "~{memory}"() #7, !srcloc !4
40: ret void
41: }
42:
43: ; <&T as core::fmt::Debug>::fmt
44: ; Function Attrs: uwtable
45: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h3bdae9b704488cd6E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
46: start:
47: %_3 = load ptr, ptr %self, align 8, !nonnull !3, !align !5, !noundef !3
48: ; call core::fmt::float::<impl core::fmt::Debug for f32>::fmt
49: %_0 = tail call noundef zeroext i1 @"_ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f32$GT$3fmt17h72ad986133e4b700E"(ptr noalias noundef nonnull readonly align 4 captures(address, read_provenance) dereferenceable(4) %_3, ptr noalias noundef nonnull align 8 dereferenceable(24) %f)
50: ret i1 %_0
51: }
52:
53: ; <&T as core::fmt::Debug>::fmt
54: ; Function Attrs: uwtable
55: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h85611de7bcb66147E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
56: start:
57: %T.i = alloca [8 x i8], align 8
58: %U.i = alloca [8 x i8], align 8
59: %builder.i = alloca [24 x i8], align 8
60: %_3 = load ptr, ptr %self, align 8, !nonnull !3, !align !5, !noundef !3
61: call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %builder.i), !noalias !6
62: ; call core::fmt::Formatter::debug_tuple
63: call void @_ZN4core3fmt9Formatter11debug_tuple17ha32b6a48c8b713c7E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(address) dereferenceable(24) %builder.i, ptr noalias noundef nonnull align 8 dereferenceable(24) %f, ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance) inttoptr (i64 1 to ptr), i64 noundef 0), !noalias !10
64: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %U.i), !noalias !6
65: store ptr %_3, ptr %U.i, align 8, !noalias !6
66: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %T.i), !noalias !6
67: %0 = getelementptr inbounds nuw i8, ptr %_3, i64 4
68: store ptr %0, ptr %T.i, align 8, !noalias !6
69: ; call core::fmt::builders::DebugTuple::field
70: %_6.i = call noundef align 8 dereferenceable(24) ptr @_ZN4core3fmt8builders10DebugTuple5field17h660470c184e6b531E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i, ptr noundef nonnull align 1 %U.i, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @vtable.1)
71: ; call core::fmt::builders::DebugTuple::field
72: %_10.i = call noundef align 8 dereferenceable(24) ptr @_ZN4core3fmt8builders10DebugTuple5field17h660470c184e6b531E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i, ptr noundef nonnull align 1 %T.i, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(32) @vtable.1)
73: ; call core::fmt::builders::DebugTuple::finish
74: %_0.i = call noundef zeroext i1 @_ZN4core3fmt8builders10DebugTuple6finish17h535deb1336268780E(ptr noalias noundef nonnull align 8 dereferenceable(24) %builder.i)
75: call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %T.i), !noalias !6
76: call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %U.i), !noalias !6
77: call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %builder.i), !noalias !6
78: ret i1 %_0.i
79: }
80:
81: ; <&T as core::fmt::Debug>::fmt
82: ; Function Attrs: uwtable
83: define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9db4c3d32513474eE"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(16) %self, ptr noalias noundef align 8 dereferenceable(24) %f) unnamed_addr #2 {
84: start:
85: %_3.0 = load ptr, ptr %self, align 8, !nonnull !3, !align !11, !noundef !3
86: %0 = getelementptr inbounds nuw i8, ptr %self, i64 8
87: %_3.1 = load ptr, ptr %0, align 8, !nonnull !3, !align !12, !noundef !3
88: %1 = getelementptr inbounds nuw i8, ptr %_3.1, i64 24
89: %2 = load ptr, ptr %1, align 8, !invariant.load !3, !nonnull !3
90: %_0 = tail call noundef zeroext i1 %2(ptr noundef nonnull align 1 %_3.0, ptr noalias noundef nonnull align 8 dereferenceable(24) %f)
91: ret i1 %_0
92: }
93:
94: ; core::ops::function::FnOnce::call_once{{vtable.shim}}
95: ; Function Attrs: inlinehint uwtable
96: define internal noundef i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h8e186a9e69699a08E"(ptr noundef readonly captures(none) %_1) unnamed_addr #0 personality ptr @rust_eh_personality {
97: start:
98: %0 = load ptr, ptr %_1, align 8, !nonnull !3, !noundef !3
99: ; call std::sys::backtrace::__rust_begin_short_backtrace
100: tail call fastcc void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he1d7c76f57d71128E(ptr noundef nonnull readonly %0), !noalias !13
101: ret i32 0
102: }
103:
104: ; abi_handling::df1
105: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
106: define internal fastcc float @_ZN12abi_handling3df117h9c3ecfe66d623cc2E(float %x.0.val, float %x.4.val) unnamed_addr #3 {
107: start:
108: %0 = tail call fastcc float @fwddiffe_ZN12abi_handling2f117hd0e171dfa53a2d60E(float %x.0.val, float %x.4.val)
109: ret float %0
110: }
111:
112: ; abi_handling::f1
113: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
114: define internal fastcc noundef float @_ZN12abi_handling2f117hd0e171dfa53a2d60E(float %x.0.val, float %x.4.val) unnamed_addr #3 {
115: start:
116: %_0 = fadd float %x.0.val, %x.4.val
117: ret float %_0
118: }
119:
120: ; abi_handling::df2
121: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
next:61'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
122: define internal fastcc noundef float @_ZN12abi_handling3df217h8225b3063251a601E(float noundef %x) unnamed_addr #3 {
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:61'1 ? possible intended match
123: start:
next:61'0 ~~~~~~~
124: ; call abi_handling::f2
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~
125: %0 = tail call fastcc float @_ZN12abi_handling2f217ha5269d6a663e4b66E(float %x)
next:61'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126: ret float %0
next:61'0 ~~~~~~~~~~~~~~
127: }
next:61'0 ~~
128:
next:61'0 ~
129: ; abi_handling::f2
next:61'0 ~~~~~~~~~~~~~~~~~~
130: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
131: define internal fastcc noundef float @_ZN12abi_handling2f217ha5269d6a663e4b66E(float noundef %x) unnamed_addr #3 {
132: start:
133: %_0.i = fmul float %x, %x
134: ret float %_0.i
135: }
136:
137: ; abi_handling::df3
138: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
next:80'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
139: define internal fastcc float @_ZN12abi_handling3df317h01a992588fc5860aE(float %x.0.val) unnamed_addr #3 {
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
next:80'1 ? possible intended match
140: start:
next:80'0 ~~~~~~~
141: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f317h76e9fe102509bcb8E(float %x.0.val)
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
142: %oldret = extractvalue { float, float } %0, 0
next:80'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143: ret float %oldret
next:80'0 ~~~~~~~~~~~~~~~~~~~
144: }
next:80'0 ~~
145:
next:80'0 ~
146: ; abi_handling::f3
next:80'0 ~~~~~~~~~~~~~~~~~~
147: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
148: define internal fastcc noundef float @_ZN12abi_handling2f317h76e9fe102509bcb8E(float %x.0.val) unnamed_addr #3 {
149: start:
150: %_0 = fmul float %x.0.val, 0x40099999A0000000
151: ret float %_0
152: }
153:
154: ; abi_handling::df4
155: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
156: define internal fastcc { float, float } @_ZN12abi_handling3df417h5cc6e38f26bcfe23E(float noundef %x.0, float noundef %x.1) unnamed_addr #3 {
157: start:
158: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f417h4dd0d54e71689dcaE(float %x.0, float %x.1)
159: ret { float, float } %0
160: }
161:
162: ; abi_handling::f4
163: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
164: define internal fastcc noundef float @_ZN12abi_handling2f417h4dd0d54e71689dcaE(float noundef %x.0, float noundef %x.1) unnamed_addr #3 {
165: start:
166: %_0 = fmul float %x.0, %x.1
167: ret float %_0
168: }
169:
170: ; abi_handling::df5
171: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
172: define internal fastcc { float, float } @_ZN12abi_handling3df517hb63274288df3629dE(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
173: start:
174: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f517hd1e1fe9d327743a4E(float %i.0, float %i.1)
175: ret { float, float } %0
176: }
177:
178: ; abi_handling::f5
179: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
180: define internal fastcc noundef float @_ZN12abi_handling2f517hd1e1fe9d327743a4E(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
181: start:
182: %_0 = fadd float %i.0, %i.1
183: ret float %_0
184: }
185:
186: ; abi_handling::df6
187: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
188: define internal fastcc { float, float } @_ZN12abi_handling3df617hf53c2881f50cee19E(float noundef %i.0, float noundef %i.1, float noundef %bi_0.0, float noundef %bi_0.1) unnamed_addr #3 {
189: start:
190: %0 = tail call fast fastcc { float, float } @fwddiffe_ZN12abi_handling2f617h7249eba95dfb35c5E(float %i.0, float %i.1, float %bi_0.0, float %bi_0.1)
191: ret { float, float } %0
192: }
193:
194: ; abi_handling::f6
195: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
196: define internal fastcc noundef float @_ZN12abi_handling2f617h7249eba95dfb35c5E(float noundef %i.0, float noundef %i.1) unnamed_addr #3 {
197: start:
198: %_3 = fmul float %i.1, %i.1
199: %_0 = fadd float %i.0, %_3
200: ret float %_0
201: }
202:
203: ; abi_handling::df7
204: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
205: define internal fastcc { float, float } @_ZN12abi_handling3df717h8aa14563fd386ae5E(float %x.0.0.val, float %x.1.0.val) unnamed_addr #3 {
206: start:
207: %0 = tail call fastcc { float, float } @fwddiffe_ZN12abi_handling2f717h4f3a1a877e2b90fbE(float %x.0.0.val, float %x.1.0.val)
208: ret { float, float } %0
209: }
210:
211: ; abi_handling::f7
212: ; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) uwtable
213: define internal fastcc noundef float @_ZN12abi_handling2f717h4f3a1a877e2b90fbE(float %x.0.0.val, float %x.1.0.val) unnamed_addr #3 {
214: start:
215: %_0 = fmul float %x.0.0.val, %x.1.0.val
216: ret float %_0
217: }
218:
219: ; abi_handling::main
220: ; Function Attrs: uwtable
221: define internal void @_ZN12abi_handling4main17hd7ff7d4e219205abE() unnamed_addr #2 {
222: start:
223: %0 = alloca [4 x i8], align 4
224: %args26 = alloca [16 x i8], align 8
225: %_171 = alloca [8 x i8], align 8
226: %_169 = alloca [16 x i8], align 8
227: %tmp25 = alloca [8 x i8], align 4
228: %args24 = alloca [16 x i8], align 8
229: %_159 = alloca [8 x i8], align 8
230: %_157 = alloca [16 x i8], align 8
231: %tmp23 = alloca [4 x i8], align 4
232: %args22 = alloca [16 x i8], align 8
233: %_145 = alloca [8 x i8], align 8
234: %_143 = alloca [16 x i8], align 8
235: %tmp21 = alloca [8 x i8], align 4
236: %args20 = alloca [16 x i8], align 8
237: %_132 = alloca [8 x i8], align 8
238: %_130 = alloca [16 x i8], align 8
239: %tmp19 = alloca [4 x i8], align 4
.
.
.
>>>>>>
------------------------------------------
---- [codegen] tests/codegen-llvm/autodiff/abi_handling.rs#release stdout end ----
failures:
[codegen] tests/codegen-llvm/autodiff/abi_handling.rs#release
test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 963 filtered out; finished in 1.19s
Some tests failed in compiletest suite=codegen-llvm mode=codegen host=aarch64-apple-darwin target=aarch64-apple-darwin
Build completed unsuccessfully in 0:00:38 |
I'm not sure if this is the best way to solve the problem... |
87537c4 to
58aeab5
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
I confirmed that all of the autodiff-related tests have passed same as #149271 (comment) (I fixed some llvm ir checks though) |
|
@bors r+ |
feat: dlopen Enzyme related issue: rust-lang#145899 related pr: rust-lang#146623 This PR is a continuation of rust-lang#146623 I refactored some code for rust-lang#146623 and added the functions shown in rust-lang#144197 r? `@bjorn3` cc: `@ZuseZ4` Zulip link: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/libload.20.2F.20dlopen.20Enzyme.2Fautodiff/near/553647912
Rollup of 9 pull requests Successful merges: - #148756 (Warn on codegen attributes on required trait methods) - #148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - #149271 (feat: dlopen Enzyme) - #149354 (Bootstrap config: libgccjit libs dir) - #149459 (std: sys: fs: uefi: Implement set_times and set_perm) - #149950 (Simplify how inline asm handles `MaybeUninit`) - #150000 (Port `#[rustc_legacy_const_generics]` to use attribute parser ) - #150014 (Metadata loader cleanups) - #150021 (document that mpmc channels deliver an item to (at most) one receiver) r? `@ghost` `@rustbot` modify labels: rollup
feat: dlopen Enzyme related issue: rust-lang#145899 related pr: rust-lang#146623 This PR is a continuation of rust-lang#146623 I refactored some code for rust-lang#146623 and added the functions shown in rust-lang#144197 r? ``@bjorn3`` cc: ``@ZuseZ4`` Zulip link: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/libload.20.2F.20dlopen.20Enzyme.2Fautodiff/near/553647912
Rollup of 8 pull requests Successful merges: - #148756 (Warn on codegen attributes on required trait methods) - #148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - #149271 (feat: dlopen Enzyme) - #149459 (std: sys: fs: uefi: Implement set_times and set_perm) - #149950 (Simplify how inline asm handles `MaybeUninit`) - #150000 (Port `#[rustc_legacy_const_generics]` to use attribute parser ) - #150014 (Metadata loader cleanups) - #150021 (document that mpmc channels deliver an item to (at most) one receiver) r? `@ghost` `@rustbot` modify labels: rollup
feat: dlopen Enzyme related issue: rust-lang#145899 related pr: rust-lang#146623 This PR is a continuation of rust-lang#146623 I refactored some code for rust-lang#146623 and added the functions shown in rust-lang#144197 r? ```@bjorn3``` cc: ```@ZuseZ4``` Zulip link: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/libload.20.2F.20dlopen.20Enzyme.2Fautodiff/near/553647912
Rollup of 14 pull requests Successful merges: - #148756 (Warn on codegen attributes on required trait methods) - #148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - #149271 (feat: dlopen Enzyme) - #149459 (std: sys: fs: uefi: Implement set_times and set_perm) - #149771 (bootstrap readme: make easy to read when editor wrapping is not enabled) - #149856 (Provide an extended framework for type visit, for use in rust-analyzer) - #149950 (Simplify how inline asm handles `MaybeUninit`) - #150014 (Metadata loader cleanups) - #150021 (document that mpmc channels deliver an item to (at most) one receiver) - #150022 (Generate macro expansion for rust compiler crates docs) - #150029 (Update books) - #150031 (assert impossible branch is impossible) - #150034 (do not add `I-prioritize` when `F-*` labels are present) - #150036 (Use the embeddable filename for coverage artifacts) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 13 pull requests Successful merges: - #148756 (Warn on codegen attributes on required trait methods) - #148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - #149271 (feat: dlopen Enzyme) - #149459 (std: sys: fs: uefi: Implement set_times and set_perm) - #149771 (bootstrap readme: make easy to read when editor wrapping is not enabled) - #149856 (Provide an extended framework for type visit, for use in rust-analyzer) - #149950 (Simplify how inline asm handles `MaybeUninit`) - #150014 (Metadata loader cleanups) - #150021 (document that mpmc channels deliver an item to (at most) one receiver) - #150029 (Update books) - #150031 (assert impossible branch is impossible) - #150034 (do not add `I-prioritize` when `F-*` labels are present) - #150036 (Use the embeddable filename for coverage artifacts) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #149271 - sgasho:enzyme-dlopen, r=bjorn3 feat: dlopen Enzyme related issue: #145899 related pr: #146623 This PR is a continuation of #146623 I refactored some code for #146623 and added the functions shown in #144197 r? ````@bjorn3```` cc: ````@ZuseZ4```` Zulip link: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/libload.20.2F.20dlopen.20Enzyme.2Fautodiff/near/553647912
Rollup of 13 pull requests Successful merges: - rust-lang/rust#148756 (Warn on codegen attributes on required trait methods) - rust-lang/rust#148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - rust-lang/rust#149271 (feat: dlopen Enzyme) - rust-lang/rust#149459 (std: sys: fs: uefi: Implement set_times and set_perm) - rust-lang/rust#149771 (bootstrap readme: make easy to read when editor wrapping is not enabled) - rust-lang/rust#149856 (Provide an extended framework for type visit, for use in rust-analyzer) - rust-lang/rust#149950 (Simplify how inline asm handles `MaybeUninit`) - rust-lang/rust#150014 (Metadata loader cleanups) - rust-lang/rust#150021 (document that mpmc channels deliver an item to (at most) one receiver) - rust-lang/rust#150029 (Update books) - rust-lang/rust#150031 (assert impossible branch is impossible) - rust-lang/rust#150034 (do not add `I-prioritize` when `F-*` labels are present) - rust-lang/rust#150036 (Use the embeddable filename for coverage artifacts) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 13 pull requests Successful merges: - rust-lang/rust#148756 (Warn on codegen attributes on required trait methods) - rust-lang/rust#148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - rust-lang/rust#149271 (feat: dlopen Enzyme) - rust-lang/rust#149459 (std: sys: fs: uefi: Implement set_times and set_perm) - rust-lang/rust#149771 (bootstrap readme: make easy to read when editor wrapping is not enabled) - rust-lang/rust#149856 (Provide an extended framework for type visit, for use in rust-analyzer) - rust-lang/rust#149950 (Simplify how inline asm handles `MaybeUninit`) - rust-lang/rust#150014 (Metadata loader cleanups) - rust-lang/rust#150021 (document that mpmc channels deliver an item to (at most) one receiver) - rust-lang/rust#150029 (Update books) - rust-lang/rust#150031 (assert impossible branch is impossible) - rust-lang/rust#150034 (do not add `I-prioritize` when `F-*` labels are present) - rust-lang/rust#150036 (Use the embeddable filename for coverage artifacts) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 13 pull requests Successful merges: - rust-lang/rust#148756 (Warn on codegen attributes on required trait methods) - rust-lang/rust#148790 (Add new Tier-3 target: riscv64im-unknown-none-elf) - rust-lang/rust#149271 (feat: dlopen Enzyme) - rust-lang/rust#149459 (std: sys: fs: uefi: Implement set_times and set_perm) - rust-lang/rust#149771 (bootstrap readme: make easy to read when editor wrapping is not enabled) - rust-lang/rust#149856 (Provide an extended framework for type visit, for use in rust-analyzer) - rust-lang/rust#149950 (Simplify how inline asm handles `MaybeUninit`) - rust-lang/rust#150014 (Metadata loader cleanups) - rust-lang/rust#150021 (document that mpmc channels deliver an item to (at most) one receiver) - rust-lang/rust#150029 (Update books) - rust-lang/rust#150031 (assert impossible branch is impossible) - rust-lang/rust#150034 (do not add `I-prioritize` when `F-*` labels are present) - rust-lang/rust#150036 (Use the embeddable filename for coverage artifacts) r? `@ghost` `@rustbot` modify labels: rollup


related issue: #145899
related pr: #146623
This PR is a continuation of #146623
I refactored some code for #146623 and added the functions shown in #144197
r? @bjorn3
cc: @ZuseZ4
Zulip link: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/libload.20.2F.20dlopen.20Enzyme.2Fautodiff/near/553647912