-
Notifications
You must be signed in to change notification settings - Fork 145
Open
Description
use std::autodiff::*;
#[no_mangle]
pub extern "C" fn rust_dgmm_objective(
) {
let mut bmain_term = vec![0.; 10];
let mut main_term = vec![0.; 10];
unsafe { dgmm_objective(
&mut main_term,
&mut bmain_term,
)};
}
#[autodiff_reverse(
dgmm_objective,
Duplicated
)]
pub fn gmm_objective(
main_term: &mut [f64],
) {
let mut slse = 0.;
for ik in 0..10usize {
main_term[ik] = main_term[ik] ;
}
slse = slse;
}~/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt safe.ll.txt -load-pass-plugin=/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so -passes="enzyme" -enzyme-strict-aliasing=1 -o rel3.ll -debug-pass-manager -S
Running pass: EnzymeNewPM on [module]
opt: /home/manuel/prog/rust2/src/llvm-project/llvm/lib/IR/Instruction.cpp:157: void llvm::Instruction::insertBefore(BasicBlock &, InstListType::iterator): Assertion `!isa<PHINode>(this) && "Inserting PHI after debug-records!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt safe.ll.txt -load-pass-plugin=/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so -passes=enzyme -enzyme-strict-aliasing=1 -o rel3.ll -debug-pass-manager -S
1. Running pass "EnzymeNewPM" on module "safe.ll.txt"
#0 0x000072bf460a3d48 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.21.1-rust-1.92.0-nightly+0x4ea3d48)
#1 0x000072bf460a1475 llvm::sys::RunSignalHandlers() (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.21.1-rust-1.92.0-nightly+0x4ea1475)
#2 0x000072bf460a4b01 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x000072bf40a45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000072bf40a9eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000072bf40a9eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000072bf40a9eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000072bf40a4527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000072bf40a288ff abort ./stdlib/abort.c:81:7
#9 0x000072bf40a2881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000072bf40a3b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x000072bf4623809c (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.21.1-rust-1.92.0-nightly+0x503809c)
#12 0x000072bf46237cd5 llvm::Instruction::insertInto(llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, false>) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.21.1-rust-1.92.0-nightly+0x5037cd5)
#13 0x000072bf46230cc1 llvm::IRBuilderDefaultInserter::InsertHelper(llvm::Instruction*, llvm::Twine const&, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, false>) const IRBuilder.cpp:0:0
#14 0x000072bf4042d2b1 llvm::IRBuilderBase::CreatePHI(llvm::Type*, unsigned int, llvm::Twine const&) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x22d2b1)
#15 0x000072bf4042f7f6 CacheUtility::getDynamicLoopLimit(llvm::Loop*, bool) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x22f7f6)
#16 0x000072bf40435e33 CacheUtility::getContext(llvm::BasicBlock*, LoopContext&, bool) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x235e33)
#17 0x000072bf408ac555 GradientUtils::forceAugmentedReturns() (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x6ac555)
#18 0x000072bf40796492 EnzymeLogic::CreatePrimalAndGradient(RequestContext, ReverseCacheKey const&&, TypeAnalysis&, AugmentedReturn const*, bool) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x596492)
#19 0x000072bf4075b3a8 (anonymous namespace)::EnzymeBase::HandleAutoDiff(llvm::Instruction*, unsigned int, llvm::Value*, llvm::Type*, llvm::SmallVectorImpl<llvm::Value*>&, std::map<int, llvm::Type*, std::less<int>, std::allocator<std::pair<int const, llvm::Type*>>> const&, std::vector<DIFFE_TYPE, std::allocator<DIFFE_TYPE>> const&, llvm::Function*, DerivativeMode, (anonymous namespace)::EnzymeBase::Options&, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) Enzyme.cpp:0:0
#20 0x000072bf407529cb (anonymous namespace)::EnzymeBase::HandleAutoDiffArguments(llvm::CallInst*, DerivativeMode, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) Enzyme.cpp:0:0
#21 0x000072bf4074d1d9 (anonymous namespace)::EnzymeBase::lowerEnzymeCalls(llvm::Function&, std::set<llvm::Function*, std::less<llvm::Function*>, std::allocator<llvm::Function*>>&) Enzyme.cpp:0:0
#22 0x000072bf40747d14 (anonymous namespace)::EnzymeBase::run(llvm::Module&) Enzyme.cpp:0:0
#23 0x000072bf4076dc66 llvm::detail::PassModel<llvm::Module, EnzymeNewPM, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/stage1/lib/libEnzyme-21.so+0x56dc66)
#24 0x000072bf462b9357 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.21.1-rust-1.92.0-nightly+0x50b9357)
#25 0x00005ee261e755a3 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x2f5a3)
#26 0x00005ee261e66df8 optMain (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x20df8)
#27 0x000072bf40a2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#28 0x000072bf40a2a28b call_init ./csu/../csu/libc-start.c:128:20
#29 0x000072bf40a2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#30 0x00005ee261e60995 _start (/home/manuel/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x1a995)
[1] 1834650 IOT instruction (core dumped) ~/prog/rust2/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt safe.ll.txt llvm-extract'ed version
mwe.ll.txt
Metadata
Metadata
Assignees
Labels
No labels