-
Notifications
You must be signed in to change notification settings - Fork 133
Open
Description
/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt reduced.ll --load-pass-plugin=/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so -passes='enzyme' -S
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @lstm_predict(ptr %0) personality ptr null {
br label %2
2: ; preds = %6, %1
%3 = tail call i8 @llvm.scmp.i8.i32(i32 0, i32 0)
switch i8 %3, label %4 [
i8 1, label %5
i8 0, label %6
]
4: ; preds = %2
unreachable
5: ; preds = %2
br label %6
6: ; preds = %5, %2
%7 = phi i32 [ 0, %5 ], [ 0, %2 ]
%8 = phi i1 [ false, %5 ], [ true, %2 ]
%9 = call ptr @calloc(i64 0)
tail call void @free(ptr %9)
br label %2
}
define fastcc void @_ZN2ad23d_lstm_unsafe_objective17hfdae8b2443372ae4E() {
tail call void (...) @__enzyme_autodiff_ZN2ad23d_lstm_unsafe_objective17hfdae8b2443372ae4E(ptr @lstm_predict, metadata !"enzyme_const", ptr null)
ret void
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.scmp.i8.i32(i32, i32) #0
declare void @free(ptr nocapture)
declare ptr @calloc(i64)
declare void @__enzyme_autodiff_ZN2ad23d_lstm_unsafe_objective17hfdae8b2443372ae4E(...)
; uselistorder directives
uselistorder ptr null, { 0, 2, 3, 1 }
attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
opt: /home/manuel/prog/rust-middle/src/tools/enzyme/enzyme/Enzyme/GradientUtils.cpp:3588: auto GradientUtils::prepRematerializedLoopEntry(LoopContext &)::(anonymous class)::operator()(BasicBlock *) const: Assertion `found != origToNewForward.end()' 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/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt reduced.ll --load-pass-plugin=/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so -passes=enzyme -S
1. Running pass "EnzymeNewPM" on module "reduced.ll"
#0 0x000071d67824fd08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.20.1-rust-1.87.0-nightly+0xe4fd08)
#1 0x000071d67824d8de llvm::sys::RunSignalHandlers() (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.20.1-rust-1.87.0-nightly+0xe4d8de)
#2 0x000071d6782503b8 SignalHandler(int) Signals.cpp:0:0
#3 0x000071d676c45320 (/lib/x86_64-linux-gnu/libc.so.6+0x45320)
#4 0x000071d676c9eb1c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000071d676c9eb1c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000071d676c9eb1c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000071d676c4526e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000071d676c288ff abort ./stdlib/abort.c:81:7
#9 0x000071d676c2881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000071d676c3b507 (/lib/x86_64-linux-gnu/libc.so.6+0x3b507)
#11 0x000071d6768e73b1 (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x4e73b1)
#12 0x000071d6768e4d7b GradientUtils::prepRematerializedLoopEntry(LoopContext&) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x4e4d7b)
#13 0x000071d6768e7c63 GradientUtils::getReverseOrLatchMerge(llvm::BasicBlock*, llvm::BasicBlock*) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x4e7c63)
#14 0x000071d67680187a createInvertedTerminator(DiffeGradientUtils*, llvm::ArrayRef<DIFFE_TYPE>, llvm::BasicBlock*, llvm::AllocaInst*, llvm::AllocaInst*, unsigned int, DIFFE_TYPE) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x40187a)
#15 0x000071d67680a3ec EnzymeLogic::CreatePrimalAndGradient(RequestContext, ReverseCacheKey const&&, TypeAnalysis&, AugmentedReturn const*, bool) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x40a3ec)
#16 0x000071d6767ceed1 (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
#17 0x000071d6767c6708 (anonymous namespace)::EnzymeBase::HandleAutoDiffArguments(llvm::CallInst*, DerivativeMode, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) Enzyme.cpp:0:0
#18 0x000071d6767c1b74 (anonymous namespace)::EnzymeBase::lowerEnzymeCalls(llvm::Function&, std::set<llvm::Function*, std::less<llvm::Function*>, std::allocator<llvm::Function*>>&) Enzyme.cpp:0:0
#19 0x000071d6767bcae5 (anonymous namespace)::EnzymeBase::run(llvm::Module&) Enzyme.cpp:0:0
#20 0x000071d6767dfd24 llvm::detail::PassModel<llvm::Module, EnzymeNewPM, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/enzyme/build/Enzyme/LLVMEnzyme-20.so+0x3dfd24)
#21 0x000071d67844cb07 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/../lib/libLLVM.so.20.1-rust-1.87.0-nightly+0x104cb07)
#22 0x00005f8fd82a6283 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/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x26283)
#23 0x00005f8fd8299522 optMain (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x19522)
#24 0x000071d676c2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#25 0x000071d676c2a28b call_init ./csu/../csu/libc-start.c:128:20
#26 0x000071d676c2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#27 0x00005f8fd8293255 _start (/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/opt+0x13255)
[1] 537340 IOT instruction (core dumped) reduced.ll -passes='enzyme' -S
Metadata
Metadata
Assignees
Labels
No labels