Issue |
160717
|
Summary |
mlir-translate crashes on mlir/test/Dialect/LLVMIR/module-roundtrip.mlir
|
Labels |
mlir
|
Assignees |
|
Reporter |
k-arrows
|
Reproducible on godbolt:
https://godbolt.org/z/1xWTYsaMT
Backtrace:
```console
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: /opt/compiler-explorer/mlir-trunk/bin/mlir-translate -o /app/example.out.mlir -mlir-to-llvmir <source>
#0 0x0000000001accbe8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x1accbe8)
#1 0x0000000001aca064 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007f7e3ce42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00000000017a52d0 llvm::Value::getContext() const (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x17a52d0)
#4 0x000000000177a154 llvm::ValueAsMetadata::get(llvm::Value*) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x177a154)
#5 0x0000000000d0ccd2 convertOperationImpl(mlir::Operation&, llvm::IRBuilderBase&, mlir::LLVM::ModuleTranslation&) LLVMToLLVMIRTranslation.cpp:0:0
#6 0x0000000000d17db6 mlir::LLVM::ModuleTranslation::convertOperation(mlir::Operation&, llvm::IRBuilderBase&, bool) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0xd17db6)
#7 0x0000000000d2c34a mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef, bool) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0xd2c34a)
#8 0x0000000000486bad std::_Function_handler<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&), mlir::registerToLLVMIRTranslation()::'lambda'(mlir::Operation*, llvm::raw_ostream&)>::_M_invoke(std::_Any_data const&, mlir::Operation*&&, llvm::raw_ostream&) ConvertToLLVMIR.cpp:0:0
#9 0x000000000045520d mlir::TranslateFromMLIRRegistration::TranslateFromMLIRRegistration(llvm::StringRef, llvm::StringRef, std::function<llvm::LogicalResult (mlir::Operation*, llvm::raw_ostream&)> const&, std::function<void (mlir::DialectRegistry&)> const&)::'lambda'(std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*)::operator()(std::shared_ptr<llvm::SourceMgr> const&, llvm::raw_ostream&, mlir::MLIRContext*) const Translation.cpp:0:0
#10 0x0000000000451ea7 mlir::mlirTranslateMain(int, char**, llvm::StringRef)::'lambda0'(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 (.isra.0) MlirTranslateMain.cpp:0:0
#11 0x0000000000452216 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)::'lambda0'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirTranslateMain.cpp:0:0
#12 0x00000000004616f9 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)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::MemoryBufferRef const&, llvm::raw_ostream&) ToolUtilities.cpp:0:0
#13 0x000000000046196e 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) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x46196e)
#14 0x0000000000462024 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) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x462024)
#15 0x0000000000452de6 mlir::mlirTranslateMain(int, char**, llvm::StringRef) (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x452de6)
#16 0x0000000000419cc4 main (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x419cc4)
#17 0x00007f7e3ce29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#18 0x00007f7e3ce29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#19 0x0000000000450775 _start (/opt/compiler-explorer/mlir-trunk/bin/mlir-translate+0x450775)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
The above reproducer comes from the following:
https://github.com/llvm/llvm-project/blob/main/mlir/test/Dialect/LLVMIR/module-roundtrip.mlir
I observed the following assertion failure with the above reproducer:
```txt
mlir-translate: /path_to_project/llvm-project/llvm/lib/IR/Metadata.cpp:503: static llvm::ValueAsMetadata *llvm::ValueAsMetadata::get(llvm::Value *): Assertion `V && "Unexpected null Value"' failed.
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs