| Issue |
207834
|
| Summary |
[mlir] mlir-opt triggers segmentation fault with pass-pipeline=builtin.module(func.func(convert-scf-to-cf), func.func(test-print-liveness))
|
| Labels |
|
| Assignees |
|
| Reporter |
Aran-414
|
git version: a913e893c3f3e820f413ccd3877f19eb4ab028f6
MLIR Program:
```mlir
module {
func.func @m13(%arg0: memref<?xi32>, %arg1: memref<4x?xi32>) {
return
}
func.func @m14() {
return
}
func.func @m16() {
%alloc = memref.alloc() : memref<64xf32>
%c64 = arith.constant 64 : index
%c128 = arith.constant 128 : index
%0 = arith.cmpi ult, %c64, %c128 : index
%1 = scf.if %0 -> (memref<128xf32>) {
%alloc_0 = memref.alloc() : memref<128xf32>
scf.yield %alloc_0 : memref<128xf32>
} else {
%reinterpret_cast = memref.reinterpret_cast %alloc to offset: [0], sizes: [128], strides: [1] : memref<64xf32> to memref<128xf32>
scf.yield %reinterpret_cast : memref<128xf32>
}
return
}
}
```
a.sh:
```bash
#!/bin/bash
for i in {1..100}; do
mlir-opt '-pass-pipeline=builtin.module(func.func(convert-scf-to-cf), func.func(test-print-liveness))' a.mlir 1>error_msg 2>&1
grep -i please error_msg && exit 0
done
```
Reproduce Command: `./a.sh; cat error_msg`
StackTrace:
```
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 0x000056205a03731f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0x256c31f)
#1 0x000056205a033afc llvm::sys::RunSignalHandlers() (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0x2568afc)
#2 0x000056205a033c97 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007f0683dc3420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x0000562063190d45 mlir::OpAsmPrinter::printFunctionalType(mlir::Operation*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb6c5d45)
#5 0x00005620631ab617 (anonymous namespace)::OperationPrinter::printGenericOp(mlir::Operation*, bool) AsmPrinter.cpp:0:0
#6 0x00005620631abc2a (anonymous namespace)::OperationPrinter::printCustomOrGenericOp(mlir::Operation*) AsmPrinter.cpp:0:0
#7 0x00005620631ac1f5 (anonymous namespace)::OperationPrinter::printFullOpWithIndentAndLoc(mlir::Operation*) AsmPrinter.cpp:0:0
#8 0x00005620631ad4a3 mlir::Operation::print(llvm::raw_ostream&, mlir::AsmState&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb6e24a3)
#9 0x00005620631afad7 mlir::Operation::print(llvm::raw_ostream&, mlir::OpPrintingFlags const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb6e4ad7)
#10 0x000056206322ef10 mlir::Diagnostic::appendOp(mlir::Operation&, mlir::OpPrintingFlags const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb763f10)
#11 0x00005620632876f8 mlir::Operation::emitError(llvm::Twine const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb7bc6f8)
#12 0x0000562063287a2d mlir::Operation::emitOpError(llvm::Twine const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb7bca2d)
#13 0x000056206299e008 mlir::OpTrait::SingleBlockImplicitTerminator<mlir::scf::YieldOp>::Impl<mlir::scf::IfOp>::verifyRegionTrait(mlir::Operation*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xaed3008)
#14 0x000056206299e1ad mlir::Op<mlir::scf::IfOp, mlir::OpTrait::NRegions<2u>::Impl, mlir::OpTrait::VariadicResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::OneOperand, mlir::OpTrait::SingleBlock, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::scf::YieldOp>::Impl, mlir::OpTrait::NoRegionArguments, mlir::OpTrait::OpInvariants, mlir::RegionBranchOpInterface::Trait, mlir::PromotableRegionOpInterface::Trait, mlir::InferTypeOpInterface::Trait, mlir::OpTrait::InferTypeOpAdaptor, mlir::OpTrait::HasRecursiveMemoryEffects, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::RecursivelySpeculatableImplTrait>::verifyRegionInvariants(mlir::Operation*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xaed31ad)
#15 0x00005620629998c8 mlir::RegisteredOperationName::Model<mlir::scf::IfOp>::verifyRegionInvariants(mlir::Operation*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xaece8c8)
#16 0x00005620632cbf29 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) Verifier.cpp:0:0
#17 0x00005620632cd69e void llvm::detail::UniqueFunctionBase<void>::CallImpl<llvm::LogicalResult mlir::failableParallelForEach<mlir::Operation**, void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::'lambda'(mlir::Operation*)>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::'lambda'(mlir::Operation*)&&)::'lambda'(mlir::Operation**&&)>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::'lambda'(mlir::Operation*)&&)::'lambda'()>(void*) Verifier.cpp:0:0
#18 0x0000562062e764dc std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<llvm::unique_function<void ()>>>, void>>::_M_invoke(std::_Any_data const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab4dc)
#19 0x0000562062e7658d std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab58d)
#20 0x00007f0683dc04df __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0x114df)
#21 0x0000562062e760b8 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<llvm::unique_function<void ()>>>, void>::_M_complete_async() (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab0b8)
#22 0x0000562062e76a7f void llvm::detail::UniqueFunctionBase<void>::CallImpl<std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(llvm::unique_function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()>(void*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3aba7f)
#23 0x000056206335610c llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb88b10c)
#24 0x0000562063356923 llvm::StdThreadPool::wait(llvm::ThreadPoolTaskGroup&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb88b923)
#25 0x00005620632cd01f (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) Verifier.cpp:0:0
#26 0x00005620632cd7ef mlir::verify(mlir::Operation*, bool) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb8027ef)
#27 0x00005620631a1a87 mlir::AsmState::AsmState(mlir::Operation*, mlir::OpPrintingFlags const&, llvm::DenseMap<mlir::Operation*, std::pair<unsigned int, unsigned int>, llvm::DenseMapInfo<mlir::Operation*, void>, llvm::detail::DenseMapPair<mlir::Operation*, std::pair<unsigned int, unsigned int>>>*, mlir::FallbackAsmResourceMap*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb6d6a87)
#28 0x00005620631afac9 mlir::Operation::print(llvm::raw_ostream&, mlir::OpPrintingFlags const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb6e4ac9)
#29 0x000056206302bfe6 mlir::Liveness::print(llvm::raw_ostream&) const (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb560fe6)
#30 0x000056205a1b64ef (anonymous namespace)::TestLivenessPass::runOnOperation() TestLiveness.cpp:0:0
#31 0x0000562062f114b1 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb4464b1)
#32 0x0000562062f11840 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb446840)
#33 0x0000562062f1211e mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda12'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#34 0x0000562062f1231f void llvm::detail::UniqueFunctionBase<void>::CallImpl<llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda12'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda12'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda12'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)&&)::'lambda'()>(void*) Pass.cpp:0:0
#35 0x0000562062e764dc std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<llvm::unique_function<void ()>>>, void>>::_M_invoke(std::_Any_data const&) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab4dc)
#36 0x0000562062e7658d std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab58d)
#37 0x00007f0683dc04df __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0x114df)
#38 0x0000562062e760b8 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<llvm::unique_function<void ()>>>, void>::_M_complete_async() (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3ab0b8)
#39 0x0000562062e76a7f void llvm::detail::UniqueFunctionBase<void>::CallImpl<std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(llvm::unique_function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()>(void*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb3aba7f)
#40 0x000056206335610c llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/data2/dependency/dev/llvm-project/build/bin/mlir-opt+0xb88b10c)
#41 0x0000562063357407 void* llvm::thread::ThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::'lambda'()>>(void*) ThreadPool.cpp:0:0
#42 0x00007f0683db7609 start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8609)
#43 0x00007f068398a353 __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f353)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs