| Issue |
172027
|
| Summary |
[mlir][arm] Crash in `mlir/test/Target/LLVMIR/arm-neon.mlir` ("Calling a function with a bad signature")
|
| Labels |
backend:ARM,
mlir:llvm,
NEON,
crash
|
| Assignees |
|
| Reporter |
kuhar
|
I keep seeing this test fail over the past couple of weeks:
```
# RUN: at line 1
/home/jakub/llvm/build/bin/mlir-translate -mlir-to-llvmir -split-input-file /home/jakub/llvm/llvm-project/mlir/test/Target/LLVMIR/arm-neon.mlir | /home/jakub/llvm/build/bin/FileCheck /home/jakub/llvm/llvm-project/mlir/test/Target/LLVMIR/arm-neon.mlir
# executed command: /home/jakub/llvm/build/bin/mlir-translate -mlir-to-llvmir -split-input-file /home/jakub/llvm/llvm-project/mlir/test/Target/LLVMIR/arm-neon.mlir
# .---command stderr------------
# | mlir-translate: /home/jakub/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:767: void llvm::CallInst::init(FunctionType *, Value *, ArrayRef<Value *>, ArrayRef<OperandBundleDef>, const Twine &): Assertion `(i >= FTy->getNumParams() || FTy->getParamType(i) == Args[i]->getType()) && "Calling a function with a bad signature!"' failed.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0. Program arguments: /home/jakub/llvm/build/bin/mlir-translate -mlir-to-llvmir -split-input-file /home/jakub/llvm/llvm-project/mlir/test/Target/LLVMIR/arm-neon.mlir
# | #0 0x00005df945a119db llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/jakub/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
# | #1 0x00005df945a0f683 llvm::sys::RunSignalHandlers() /home/jakub/llvm/llvm-project/llvm/lib/Support/Signals.cpp:109:18
# | #2 0x00005df945a12747 SignalHandler(int, siginfo_t*, void*) /home/jakub/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
# | #3 0x00007d417d845330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# | #4 0x00007d417d89eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
# | #5 0x00007d417d89eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
# | #6 0x00007d417d89eb2c pthread_kill ./nptl/pthread_kill.c:89:10
# | #7 0x00007d417d84527e raise ./signal/../sysdeps/posix/raise.c:27:6
# | #8 0x00007d417d8288ff abort ./stdlib/abort.c:81:7
# | #9 0x00007d417d82881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
# | #10 0x00007d417d83b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
# | #11 0x00005df947604f4c llvm::ArrayRef<llvm::Value*>::operator[](unsigned long) const /home/jakub/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:248:7
# | #12 0x00005df947604f4c llvm::CallInst::init(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*>>, llvm::Twine const&) /home/jakub/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:765:5
# | #13 0x00005df946eaea86 llvm::CallInst::Create(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*>>, llvm::Twine const&, llvm::InsertPosition) /home/jakub/llvm/llvm-project/llvm/include/llvm/IR/Instructions.h:1569:5
# | #14 0x00005df946edd1cb llvm::IRBuilderBase::CreateCall(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*>>, llvm::Twine const&, llvm::MDNode*) /home/jakub/llvm/llvm-project/llvm/include/llvm/IR/IRBuilder.h:2525:20
# | #15 0x00005df946f5f750 llvm::IRBuilderBase::CreateCall(llvm::FunctionCallee, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*>>, llvm::Twine const&, llvm::MDNode*) /home/jakub/llvm/llvm-project/llvm/include/llvm/IR/IRBuilder.h:2542:12
# | #16 0x00005df946f5f750 mlir::LLVM::detail::createIntrinsicCall(llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&, mlir::Operation*, unsigned int, unsigned int, llvm::ArrayRef<unsigned int>, llvm::ArrayRef<unsigned int>, llvm::ArrayRef<unsigned int>, llvm::ArrayRef<llvm::StringLiteral>) /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:988:18
# | #17 0x00005df946ea80d0 (anonymous namespace)::ArmNeonDialectLLVMIRTranslationInterface::convertOperation(mlir::Operation*, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) const /home/jakub/llvm/build/tools/mlir/include/mlir/Dialect/ArmNeon/ArmNeonConversions.inc:0:0
# | #18 0x00005df946f601d7 mlir::LLVM::ModuleTranslation::convertOperation(mlir::Operation&, llvm::IRBuilderBase&, bool) /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:1005:7
# | #19 0x00005df946f60753 mlir::LLVM::ModuleTranslation::convertBlockImpl(mlir::Block&, bool, llvm::IRBuilderBase&, bool) /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:1055:9
# | #20 0x00005df946f64ca8 mlir::LLVM::ModuleTranslation::convertOneFunction(mlir::LLVM::LLVMFuncOp) /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:1610:16
# | #21 0x00005df946f6768d mlir::LLVM::ModuleTranslation::convertFunctions() /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:0:0
# | #22 0x00005df946f6a74a mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef, bool) /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp:2441:7
# | #23 0x00005df946f74372 std::__uniq_ptr_impl<llvm::Module, std::default_delete<llvm::Module>>::_M_ptr() const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:199:51
# | #24 0x00005df946f74372 std::unique_ptr<llvm::Module, std::default_delete<llvm::Module>>::get() const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:470:21
# | #25 0x00005df946f74372 std::unique_ptr<llvm::Module, std::default_delete<llvm::Module>>::operator bool() const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:487:16
# | #26 0x00005df946f74372 mlir::registerToLLVMIRTranslation()::$_0::operator()(mlir::Operation*, llvm::raw_ostream&) const /home/jakub/llvm/llvm-project/mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp:31:14
# | #27 0x00005df946f74372 llvm::LogicalResult std::__invoke_impl<llvm::LogicalResult, mlir::registerToLLVMIRTranslation()::$_0&, mlir::Operation*, llvm::raw_ostream&>(std::__invoke_other, mlir::registerToLLVMIRTranslation()::$_0&, mlir::Operation*&&, llvm::raw_ostream&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:61:14
# | #28 0x00005df946f74372 std::enable_if<is_invocable_r_v<llvm::LogicalResult, mlir::registerToLLVMIRTranslation()::$_0&, mlir::Operation*, llvm::raw_ostream&>, llvm::LogicalResult>::type std::__invoke_r<llvm::LogicalResult, mlir::registerToLLVMIRTranslation()::$_0&, mlir::Operation*, llvm::raw_ostream&>(mlir::registerToLLVMIRTranslation()::$_0&, mlir::Operation*&&, llvm::raw_ostream&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:114:9
# | #29 0x00005df946f74372 std::_Function_handler<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&), mlir::registerToLLVMIRTranslation()::$_0>::_M_invoke(std::_Any_data const&, mlir::Operation*&&, llvm::raw_ostream&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:290:9
# | #30 0x00005df946dd346d std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)>::operator()(mlir::Operation*, llvm::raw_ostream&) const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:9
# | #31 0x00005df946dd346d mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0::operator()(std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*) const /home/jakub/llvm/llvm-project/mlir/lib/Tools/mlir-translate/Translation.cpp:152:16
# | #32 0x00005df946dd346d llvm::LogicalResult std::__invoke_impl<llvm::LogicalResult, mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*>(std::__invoke_other, mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*&&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:61:14
# | #33 0x00005df946dd346d std::enable_if<is_invocable_r_v<llvm::LogicalResult, mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*>, llvm::LogicalResult>::type std::__invoke_r<llvm::LogicalResult, mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*>(mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*&&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:114:9
# | #34 0x00005df946dd346d std::_Function_handler<llvm::LogicalResult (std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*), mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::$_0>::_M_invoke(std::_Any_data const&, std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*&&) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:290:9
# | #35 0x00005df946dd1c3c std::function<llvm::LogicalResult (std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*)>::operator()(std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*) const /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:9
# | #36 0x00005df946dd1c3c mlir::Translation::operator()(std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*) const /home/jakub/llvm/llvm-project/mlir/include/mlir/Tools/mlir-translate/Translation.h:81:12
# | #37 0x00005df946dd1c3c mlir::mlirTranslateMain(int, char**, llvm::StringRef)::$_1::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/jakub/llvm/llvm-project/mlir/lib/Tools/mlir-translate/MlirTranslateMain.cpp:187:18
# | #38 0x00005df946dd1c3c llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::mlirTranslateMain(int, char**, llvm::StringRef)::$_1>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/jakub/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
# | #39 0x00005df946de09c8 std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>::~unique_ptr() /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:403:6
# | #40 0x00005df946de09c8 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/jakub/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
# | #41 0x00005df946de09c8 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) const /home/jakub/llvm/llvm-project/mlir/lib/Support/ToolUtilities.cpp:111:12
# | #42 0x00005df946de09c8 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::callback_fn<mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) /home/jakub/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
# | #43 0x00005df946de091c llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) const /home/jakub/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
# | #44 0x00005df946de091c mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(llvm::StringRef) const /home/jakub/llvm/llvm-project/mlir/lib/Support/ToolUtilities.cpp:94:13
# | #45 0x00005df946de0608 void llvm::interleave<llvm::StringRef const*, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::defaul<truncated>Please see the issue for the entire body.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs