llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.35k stars 11.7k forks source link

llvm-spirv: ./lib/SPIRV/OCLToSPIRV.cpp:1226: void SPIRV::OCLToSPIRVBase::visitCallDot(llvm::CallInst*, llvm::StringRef, llvm::StringRef): Assertion `MangledName.starts_with("_Z3dotDv")' failed. #97946

Open thenumbernine opened 3 months ago

thenumbernine commented 3 months ago
>> llvm-spirv  "cache/294a316d4f793c40/bc/solver.bc" -o "cache/294a316d4f793c40/spv/solver.spv"
llvm-spirv: ./lib/SPIRV/OCLToSPIRV.cpp:1226: void SPIRV::OCLToSPIRVBase::visitCallDot(llvm::CallInst*, llvm::StringRef, llvm::StringRef): Assertion `MangledName.starts_with("_Z3dotDv")' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.  Program arguments: llvm-spirv cache/294a316d4f793c40/bc/solver.bc -o cache/294a316d4f793c40/spv/solver.spv
 #0 0x00007fb97a9a63bf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x00007fb97a9a44f9 llvm::sys::RunSignalHandlers() build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Signals.cpp:106:18
 #2 0x00007fb97a9a6b00 SignalHandler build-llvm/tools/clang/stage2-bins/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x00007fb979445320 (/lib/x86_64-linux-gnu/libc.so.6+0x45320)
 #4 0x00007fb97949eb1c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007fb97949eb1c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007fb97949eb1c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007fb97944526e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007fb9794288ff abort ./stdlib/abort.c:81:7
 #9 0x00007fb97942881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007fb97943b507 (/lib/x86_64-linux-gnu/libc.so.6+0x3b507)
#11 0x00007fb9814dffeb (/lib/x86_64-linux-gnu/libLLVMSPIRVLib.so.18.1+0xdffeb)
#12 0x00007fb9814d9cdc SPIRV::OCLToSPIRVBase::visitCallInst(llvm::CallInst&) /usr/src/spirv-llvm-translator-18-18.1.0-1build2/lib/SPIRV/OCLToSPIRV.cpp:340:5
#13 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::delegateCallInst(llvm::CallInst&) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:304:5
#14 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visitCall(llvm::CallInst&) /usr/lib/llvm-18/include/llvm/IR/Instruction.def:209:1
#15 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit(llvm::Instruction&) /usr/lib/llvm-18/include/llvm/IR/Instruction.def:209:1
#16 0x00007fb9814d4df5 void llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit<llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, false>>(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, false>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, false>) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:89:42
#17 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit(llvm::BasicBlock&) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:104:10
#18 0x00007fb9814d4df5 void llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void, false>, false, false>>(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void, false>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void, false>, false, false>) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:89:42
#19 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit(llvm::Function&) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:100:10
#20 0x00007fb9814d4df5 void llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void, false>, false, false>>(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void, false>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void, false>, false, false>) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:89:42
#21 0x00007fb9814d4df5 llvm::InstVisitor<SPIRV::OCLToSPIRVBase, void>::visit(llvm::Module&) /usr/lib/llvm-18/include/llvm/IR/InstVisitor.h:96:10
#22 0x00007fb9814d4df5 SPIRV::OCLToSPIRVBase::runOCLToSPIRV(llvm::Module&) /usr/src/spirv-llvm-translator-18-18.1.0-1build2/lib/SPIRV/OCLToSPIRV.cpp:179:8
#23 0x00007fb9815c46bd SPIRV::OCLToSPIRVPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/src/spirv-llvm-translator-18-18.1.0-1build2/lib/SPIRV/OCLToSPIRV.cpp:115:27
#24 0x00007fb9815c46bd llvm::detail::PassModel<llvm::Module, SPIRV::OCLToSPIRVPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /usr/lib/llvm-18/include/llvm/IR/PassManagerInternal.h:89:41
#25 0x00007fb97ab2e261 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) build-llvm/tools/clang/stage2-bins/llvm/include/llvm/IR/PassManager.h:547:10
#26 0x00007fb9815ab1c6 llvm::SmallPtrSetImplBase::isSmall() const /usr/lib/llvm-18/include/llvm/ADT/SmallPtrSet.h:195:33
#27 0x00007fb9815ab1c6 llvm::SmallPtrSetImplBase::~SmallPtrSetImplBase() /usr/lib/llvm-18/include/llvm/ADT/SmallPtrSet.h:83:17
#28 0x00007fb9815ab1c6 llvm::SmallPtrSetImpl<llvm::AnalysisKey*>::~SmallPtrSetImpl() /usr/lib/llvm-18/include/llvm/ADT/SmallPtrSet.h:345:7
#29 0x00007fb9815ab1c6 llvm::SmallPtrSet<llvm::AnalysisKey*, 2u>::~SmallPtrSet() /usr/lib/llvm-18/include/llvm/ADT/SmallPtrSet.h:451:7
#30 0x00007fb9815ab1c6 llvm::PreservedAnalyses::~PreservedAnalyses() /usr/lib/llvm-18/include/llvm/IR/PassManager.h:172:7
#31 0x00007fb9815ab1c6 runSpirvWriterPasses /usr/src/spirv-llvm-translator-18-18.1.0-1build2/lib/SPIRV/SPIRVWriter.cpp:6611:14
#32 0x00005dbe5015f2c2 convertLLVMToSPIRV /usr/src/spirv-llvm-translator-18-18.1.0-1build2/tools/llvm-spirv/llvm-spirv.cpp:366:3
#33 0x00005dbe5015f2c2 main /usr/src/spirv-llvm-translator-18-18.1.0-1build2/tools/llvm-spirv/llvm-spirv.cpp:807:30
#34 0x00007fb97942a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#35 0x00007fb97942a28b call_init ./csu/../csu/libc-start.c:128:20
#36 0x00007fb97942a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#37 0x00005dbe5015f935 (/usr/bin/llvm-spirv-18+0x29935)
EugeneZelenko commented 3 months ago

Could you please provide reproducer?

thenumbernine commented 3 months ago

solver.zip Here is the source cl-cpp file and here is the build commands:

>> clang -O0 -c -cl-std=clc++ -v --target=spirv64-unknown-unknown -emit-llvm -o "cache/294a316d4f793c40/bc/solver.bc" "cache/294a316d4f793c40/src/solver.clcpp"
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: spirv64-unknown-unknown
Thread model: posix
InstalledDir: /usr/bin
 (in-process)
 "/usr/lib/llvm-18/bin/clang" -cc1 -triple spirv64-unknown-unknown -Wspir-compat -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name solver.clcpp -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -debugger-tuning=gdb -fdebug-compilation-dir=/home/chris/Projects/lua/hydro-cl -v -fcoverage-compilation-dir=/home/chris/Projects/lua/hydro-cl -resource-dir /usr/lib/llvm-18/lib/clang/18 -O0 -ferror-limit 19 -cl-std=clc++ -finclude-default-header -fdeclare-opencl-builtins -fgnuc-version=4.2.1 -fno-threadsafe-statics -fskip-odr-check-in-gmf -fcolor-diagnostics -o cache/294a316d4f793c40/bc/solver.bc -x clcpp cache/294a316d4f793c40/src/solver.clcpp
clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target x86_64-pc-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/llvm-18/lib/clang/18/include
 /usr/include
End of search list.
 *** target up-to-date: cache/294a316d4f793c40/bc/solver.bc (2024-07-07 21:15:34.882996 vs 2024-07-07 21:15:34.655983)
>> llvm-spirv  "cache/294a316d4f793c40/bc/solver.bc" -o "cache/294a316d4f793c40/spv/solver.spv"
llvm-spirv: ./lib/SPIRV/OCLToSPIRV.cpp:1226: void SPIRV::OCLToSPIRVBase::visitCallDot(llvm::CallInst*, llvm::StringRef, llvm::StringRef): Assertion `MangledName.starts_with("_Z3dotDv")' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.