Issue |
131292
|
Summary |
[MLIR] `-remove-dead-values` triggers Assertion `results.size() == 1 && "expected a single result type"' failed.
|
Labels |
mlir
|
Assignees |
|
Reporter |
Lambor24
|
Test on commit: [6b7daf2](https://github.com/llvm/llvm-project/commit/6b7daf224933d60a7ef8acc399da8388b90bf318).
steps to reproduce:
```
mlir-opt test.mlir -remove-dead-values
```
test case:
```
module {
llvm.func private @printMemrefF32(%arg0: i64, %arg1: !llvm.ptr) attributes {llvm.emit_c_interface, sym_visibility = "private"} {
llvm.return
}
}
```
crash trace:
```
mlir-opt: /home/projects/project/llvm-project/mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp:235: LLVMFunctionType mlir::LLVM::LLVMFunctionType::clone(TypeRange, TypeRange) const: Assertion `results.size() == 1 && "expected a single result type"' 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/projects/project/llvm-project/build/bin/mlir-opt /home/test.mlir -remove-dead-values
#0 0x00005d5a1609baad llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:11
#1 0x00005d5a1609bf9b PrintStackTraceSignalHandler(void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
#2 0x00005d5a1609a006 llvm::sys::RunSignalHandlers() /home/projects/project/llvm-project/llvm/lib/Support/Signals.cpp:105:5
#3 0x00005d5a1609c77d SignalHandler(int, siginfo_t*, void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:7
#4 0x00007c55ad97c520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x00007c55ad9d09fc pthread_kill (/usr/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#6 0x00007c55ad97c476 gsignal (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#7 0x00007c55ad9627f3 abort (/usr/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#8 0x00007c55ad96271b (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#9 0x00007c55ad973e96 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x00005d5a1867f6fc mlir::LLVM::LLVMFunctionType::clone(mlir::TypeRange, mlir::TypeRange) const /home/projects/project/llvm-project/mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp:236:14
#11 0x00005d5a1843c182 mlir::detail::FunctionOpInterfaceTrait<mlir::LLVM::LLVMFuncOp>::cloneTypeWith(mlir::TypeRange, mlir::TypeRange) /home/projects/project/llvm-project/build/tools/mlir/include/mlir/Interfaces/FunctionInterfaces.h.inc:653:67
#12 0x00005d5a1843c056 mlir::detail::FunctionOpInterfaceInterfaceTraits::Model<mlir::LLVM::LLVMFuncOp>::cloneTypeWith(mlir::detail::FunctionOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::TypeRange, mlir::TypeRange) /home/projects/project/llvm-project/build/tools/mlir/include/mlir/Interfaces/FunctionInterfaces.h.inc:1149:56
#13 0x00005d5a20cf2514 mlir::FunctionOpInterface::cloneTypeWith(mlir::TypeRange, mlir::TypeRange) /home/projects/project/llvm-project/build/tools/mlir/include/mlir/Interfaces/FunctionInterfaces.cpp.inc:29:14
#14 0x00005d5a1b7abcc1 mlir::FunctionOpInterface::getTypeWithoutArgs(llvm::BitVector const&) /home/projects/project/llvm-project/build/tools/mlir/include/mlir/Interfaces/FunctionInterfaces.h.inc:309:22
#15 0x00005d5a1b7aba81 mlir::FunctionOpInterface::eraseArguments(llvm::BitVector const&) /home/projects/project/llvm-project/build/tools/mlir/include/mlir/Interfaces/FunctionInterfaces.h.inc:259:38
#16 0x00005d5a1b7a1dd5 (anonymous namespace)::cleanUpDeadVals((anonymous namespace)::RDVFinalCleanupList&) /home/projects/project/llvm-project/mlir/lib/Transforms/RemoveDeadValues.cpp:700:5
#17 0x00005d5a1b7a1ad3 (anonymous namespace)::RemoveDeadValues::runOnOperation() /home/projects/project/llvm-project/mlir/lib/Transforms/RemoveDeadValues.cpp:779:1
#18 0x00005d5a1b71ad6b mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#19 0x00005d5a1b71ad05 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#20 0x00005d5a160c1e09 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#21 0x00005d5a1b71e965 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:289:3
#22 0x00005d5a1b7165da mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#23 0x00005d5a1b716b64 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#24 0x00005d5a1b7185c8 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#25 0x00005d5a1b7184f2 mlir::PassManager::run(mlir::Operation*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#26 0x00005d5a1b70954a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#27 0x00005d5a1b70910c processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#28 0x00005d5a1b708ebc mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#29 0x00005d5a1b708e56 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#30 0x00005d5a1b898bb2 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/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#31 0x00005d5a1b89819c 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) /home/projects/project/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#32 0x00005d5a1b7052c8 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#33 0x00005d5a1b705689 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#34 0x00005d5a1b705858 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#35 0x00005d5a1600ca1c main /home/projects/project/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:331:33
#36 0x00007c55ad963d90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#37 0x00007c55ad963e40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#38 0x00005d5a1600c615 _start (/home/projects/project/llvm-project/build/bin/mlir-opt+0x29ee615)
Aborted (core dumped)
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs