Skip to content

[MLIR] -test-scf-pipelining=no-epilogue-peeling triggers Assertion `Denominator && "Division by zero"' failed. #130095

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Lambor24 opened this issue Mar 6, 2025 · 1 comment · Fixed by #131079
Assignees
Labels
crash Prefer [crash-on-valid] or [crash-on-invalid] mlir:scf

Comments

@Lambor24
Copy link

Lambor24 commented Mar 6, 2025

Test on commit: 6311e3f.

steps to reproduce:

mlir-opt test.mlir -test-scf-pipelining=no-epilogue-peeling

test case:

module {
  memref.global "private" constant @__constant_11x56x73xi16 : memref<11x56x73xi16> = dense<-3982> {alignment = 64 : i64}
  memref.global "private" constant @__constant_11x7x56xi16 : memref<11x7x56xi16> = dense<2353> {alignment = 64 : i64}
  func.func @main() {
    %c2 = arith.constant 2 : index
    %c73 = arith.constant 73 : index
    %c7 = arith.constant 7 : index
    %c1 = arith.constant 1 : index
    %c11 = arith.constant 11 : index
    %c0 = arith.constant 0 : index
    %0 = memref.get_global @__constant_11x7x56xi16 : memref<11x7x56xi16>
    %2 = memref.get_global @__constant_11x56x73xi16 : memref<11x56x73xi16>
    %alloc = memref.alloc() {alignment = 64 : i64} : memref<11x7x73xi16>
    scf.parallel (%arg0, %arg1, %arg2) = (%c0, %c0, %c0) to (%c11, %c7, %c73) step (%c1, %c1, %c1) {
      %17 = arith.subi %c0, %c0 : index
      %c1_8 = arith.constant 1 : index
      %18 = arith.subi %c2, %c1_8 : index
      %19 = arith.addi %17, %18 : index
      %20 = arith.divui %19, %c2 : index
      %c6_9 = arith.constant 6 : index
      %c7_10 = arith.constant 7 : index
      %21 = arith.addi %20, %c6_9 : index
      %22 = arith.divui %21, %c7_10 : index
      %23 = arith.muli %c2, %22 : index
      scf.for %arg3 = %c0 to %c0 step %23 {
        %41 = arith.addi %arg3, %23 : index
        %42 = arith.minsi %c0, %41 : index
        scf.for %arg4 = %arg3 to %42 step %c2 {
          %43 = memref.load %0[%arg0, %arg1, %arg4] : memref<11x7x56xi16>
          %44 = memref.load %2[%arg0, %arg4, %arg2] : memref<11x56x73xi16>
          %45 = memref.load %alloc[%arg0, %arg1, %arg2] : memref<11x7x73xi16>
          %46 = arith.muli %43, %44 : i16
          %47 = arith.addi %45, %46 : i16
          memref.store %47, %alloc[%arg0, %arg1, %arg2] : memref<11x7x73xi16>
        }
      }
    }
    return
  }
}

crash trace:

mlir-opt: /home/projects/project/llvm-project/llvm/include/llvm/Support/MathExtras.h:428: T llvm::divideCeilSigned(U, V) [U = long, V = long, T = long]: Assertion `Denominator && "Division by zero"' 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 ./tosa.mlir -test-scf-pipelining=no-epilogue-peeling
 #0 0x00005c128d3e70ed llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:11
 #1 0x00005c128d3e75db PrintStackTraceSignalHandler(void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
 #2 0x00005c128d3e5646 llvm::sys::RunSignalHandlers() /home/projects/project/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x00005c128d3e7dbd SignalHandler(int, siginfo_t*, void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:7
 #4 0x000073a61e5e6520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x000073a61e63a9fc pthread_kill (/usr/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #6 0x000073a61e5e6476 gsignal (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #7 0x000073a61e5cc7f3 abort (/usr/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #8 0x000073a61e5cc71b (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #9 0x000073a61e5dde96 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x00005c128d5bc28e long llvm::divideCeilSigned<long, long, long>(long, long) /home/projects/project/llvm-project/llvm/include/llvm/Support/MathExtras.h:429:3
#11 0x00005c1290b317d8 (anonymous namespace)::LoopPipelinerInternal::initializeLoopInfo(mlir::scf::ForOp, mlir::scf::PipeliningOption const&) /home/projects/project/llvm-project/mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp:122:28
#12 0x00005c1290b3113b mlir::scf::pipelineForLoop(mlir::RewriterBase&, mlir::scf::ForOp, mlir::scf::PipeliningOption const&, bool*) /home/projects/project/llvm-project/mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp:789:7
#13 0x00005c1290ae8d95 mlir::scf::ForLoopPipeliningPattern::returningMatchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&) const /home/projects/project/llvm-project/mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h:36:12
#14 0x00005c1290ae8afd mlir::scf::ForLoopPipeliningPattern::matchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&) const /home/projects/project/llvm-project/mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h:31:12
#15 0x00005c1290aad11b mlir::detail::OpOrInterfaceRewritePatternBase<mlir::scf::ForOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const /home/projects/project/llvm-project/mlir/include/mlir/IR/PatternMatch.h:337:12
#16 0x00005c1297e6556e mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0::operator()() const /home/projects/project/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:212:31
#17 0x00005c1297e653c5 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#18 0x00005c128d40d2b9 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#19 0x00005c1297e66e05 void mlir::MLIRContext::executeAction<mlir::ApplyPatternAction, mlir::Pattern const&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pattern const&) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#20 0x00005c1297e63e5e mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) /home/projects/project/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:233:9
#21 0x00005c1292b0380f (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:615:17
#22 0x00005c1292b02a81 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_2::operator()() const /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:874:30
#23 0x00005c1292b02a55 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_2>(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#24 0x00005c128d40d2b9 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#25 0x00005c1292b02185 void mlir::MLIRContext::executeAction<(anonymous namespace)::GreedyPatternRewriteIteration, long&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, long&) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#26 0x00005c1292b00605 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) && /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:887:3
#27 0x00005c1292b002e7 mlir::applyPatternsGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:919:47
#28 0x00005c128d60ca30 mlir::applyPatternsGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /home/projects/project/llvm-project/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h:174:15
#29 0x00005c1292e0cb7d (anonymous namespace)::TestSCFPipeliningPass::runOnOperation() /home/projects/project/llvm-project/mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp:229:11
#30 0x00005c12929ea1eb 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
#31 0x00005c12929ea185 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
#32 0x00005c128d40d2b9 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#33 0x00005c12929ed095 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:281:3
#34 0x00005c12929e598a 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
#35 0x00005c12929e5f14 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
#36 0x00005c12929eb5a8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:813:36
#37 0x00005c12929eb400 auto 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)::$_0>(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)::$_0&&)::'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>>>&&)::operator()<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>>>&&) const /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:120:56
#38 0x00005c12929eb1a9 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)::$_0>(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)::$_0&&)::'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)::$_0&&) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:46:18
#39 0x00005c12929eb085 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)::$_0>(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)::$_0&&) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:119:9
#40 0x00005c12929e71cb void mlir::parallelForEach<std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:133:1
#41 0x00005c12929e6adb mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:824:7
#42 0x00005c12929e65e7 mlir::detail::OpToOpPassAdaptor::runOnOperation(bool) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:713:5
#43 0x00005c12929ea1d6 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:524:11
#44 0x00005c12929ea185 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
#45 0x00005c128d40d2b9 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#46 0x00005c12929ed095 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:281:3
#47 0x00005c12929e598a 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
#48 0x00005c12929e5f14 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
#49 0x00005c12929e7958 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#50 0x00005c12929e7882 mlir::PassManager::run(mlir::Operation*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#51 0x00005c12929d88da 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
#52 0x00005c12929d849c 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
#53 0x00005c12929d824c 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
#54 0x00005c12929d81e6 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
#55 0x00005c1292b66162 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
#56 0x00005c1292b6574c 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
#57 0x00005c12929d4658 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
#58 0x00005c12929d4a19 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#59 0x00005c12929d4be8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#60 0x00005c128d354823 main /home/projects/project/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:329:33
#61 0x000073a61e5cdd90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#62 0x000073a61e5cde40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#63 0x00005c128d354425 _start (/home/projects/project/llvm-project/build/bin/mlir-opt+0x29c7425)
Aborted (core dumped)
@llvmbot llvmbot added the mlir label Mar 6, 2025
@llvmbot
Copy link
Member

llvmbot commented Mar 6, 2025

@llvm/issue-subscribers-mlir

Author: None (Lambor24)

Test on commit: [6311e3f](https://github.com/llvm/llvm-project/commit/6311e3fcc8539cf0f474b28f82a465e83013a792).

steps to reproduce:

mlir-opt test.mlir -test-scf-pipelining=no-epilogue-peeling

test case:

module {
  memref.global "private" constant @<!-- -->__constant_11x56x73xi16 : memref&lt;11x56x73xi16&gt; = dense&lt;-3982&gt; {alignment = 64 : i64}
  memref.global "private" constant @<!-- -->__constant_11x7x56xi16 : memref&lt;11x7x56xi16&gt; = dense&lt;2353&gt; {alignment = 64 : i64}
  func.func @<!-- -->main() {
    %c2 = arith.constant 2 : index
    %c73 = arith.constant 73 : index
    %c7 = arith.constant 7 : index
    %c1 = arith.constant 1 : index
    %c11 = arith.constant 11 : index
    %c0 = arith.constant 0 : index
    %0 = memref.get_global @<!-- -->__constant_11x7x56xi16 : memref&lt;11x7x56xi16&gt;
    %2 = memref.get_global @<!-- -->__constant_11x56x73xi16 : memref&lt;11x56x73xi16&gt;
    %alloc = memref.alloc() {alignment = 64 : i64} : memref&lt;11x7x73xi16&gt;
    scf.parallel (%arg0, %arg1, %arg2) = (%c0, %c0, %c0) to (%c11, %c7, %c73) step (%c1, %c1, %c1) {
      %17 = arith.subi %c0, %c0 : index
      %c1_8 = arith.constant 1 : index
      %18 = arith.subi %c2, %c1_8 : index
      %19 = arith.addi %17, %18 : index
      %20 = arith.divui %19, %c2 : index
      %c6_9 = arith.constant 6 : index
      %c7_10 = arith.constant 7 : index
      %21 = arith.addi %20, %c6_9 : index
      %22 = arith.divui %21, %c7_10 : index
      %23 = arith.muli %c2, %22 : index
      scf.for %arg3 = %c0 to %c0 step %23 {
        %41 = arith.addi %arg3, %23 : index
        %42 = arith.minsi %c0, %41 : index
        scf.for %arg4 = %arg3 to %42 step %c2 {
          %43 = memref.load %0[%arg0, %arg1, %arg4] : memref&lt;11x7x56xi16&gt;
          %44 = memref.load %2[%arg0, %arg4, %arg2] : memref&lt;11x56x73xi16&gt;
          %45 = memref.load %alloc[%arg0, %arg1, %arg2] : memref&lt;11x7x73xi16&gt;
          %46 = arith.muli %43, %44 : i16
          %47 = arith.addi %45, %46 : i16
          memref.store %47, %alloc[%arg0, %arg1, %arg2] : memref&lt;11x7x73xi16&gt;
        }
      }
    }
    return
  }
}

crash trace:

mlir-opt: /home/projects/project/llvm-project/llvm/include/llvm/Support/MathExtras.h:428: T llvm::divideCeilSigned(U, V) [U = long, V = long, T = long]: Assertion `Denominator &amp;&amp; "Division by zero"' 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 ./tosa.mlir -test-scf-pipelining=no-epilogue-peeling
 #<!-- -->0 0x00005c128d3e70ed llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:11
 #<!-- -->1 0x00005c128d3e75db PrintStackTraceSignalHandler(void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
 #<!-- -->2 0x00005c128d3e5646 llvm::sys::RunSignalHandlers() /home/projects/project/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #<!-- -->3 0x00005c128d3e7dbd SignalHandler(int, siginfo_t*, void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:7
 #<!-- -->4 0x000073a61e5e6520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->5 0x000073a61e63a9fc pthread_kill (/usr/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->6 0x000073a61e5e6476 gsignal (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->7 0x000073a61e5cc7f3 abort (/usr/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->8 0x000073a61e5cc71b (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #<!-- -->9 0x000073a61e5dde96 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#<!-- -->10 0x00005c128d5bc28e long llvm::divideCeilSigned&lt;long, long, long&gt;(long, long) /home/projects/project/llvm-project/llvm/include/llvm/Support/MathExtras.h:429:3
#<!-- -->11 0x00005c1290b317d8 (anonymous namespace)::LoopPipelinerInternal::initializeLoopInfo(mlir::scf::ForOp, mlir::scf::PipeliningOption const&amp;) /home/projects/project/llvm-project/mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp:122:28
#<!-- -->12 0x00005c1290b3113b mlir::scf::pipelineForLoop(mlir::RewriterBase&amp;, mlir::scf::ForOp, mlir::scf::PipeliningOption const&amp;, bool*) /home/projects/project/llvm-project/mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp:789:7
#<!-- -->13 0x00005c1290ae8d95 mlir::scf::ForLoopPipeliningPattern::returningMatchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&amp;) const /home/projects/project/llvm-project/mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h:36:12
#<!-- -->14 0x00005c1290ae8afd mlir::scf::ForLoopPipeliningPattern::matchAndRewrite(mlir::scf::ForOp, mlir::PatternRewriter&amp;) const /home/projects/project/llvm-project/mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h:31:12
#<!-- -->15 0x00005c1290aad11b mlir::detail::OpOrInterfaceRewritePatternBase&lt;mlir::scf::ForOp&gt;::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&amp;) const /home/projects/project/llvm-project/mlir/include/mlir/IR/PatternMatch.h:337:12
#<!-- -->16 0x00005c1297e6556e mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&amp;, llvm::function_ref&lt;bool (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;void (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;llvm::LogicalResult (mlir::Pattern const&amp;)&gt;)::$_0::operator()() const /home/projects/project/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:212:31
#<!-- -->17 0x00005c1297e653c5 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&amp;, llvm::function_ref&lt;bool (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;void (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;llvm::LogicalResult (mlir::Pattern const&amp;)&gt;)::$_0&gt;(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->18 0x00005c128d40d2b9 llvm::function_ref&lt;void ()&gt;::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->19 0x00005c1297e66e05 void mlir::MLIRContext::executeAction&lt;mlir::ApplyPatternAction, mlir::Pattern const&amp;&gt;(llvm::function_ref&lt;void ()&gt;, llvm::ArrayRef&lt;mlir::IRUnit&gt;, mlir::Pattern const&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#<!-- -->20 0x00005c1297e63e5e mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&amp;, llvm::function_ref&lt;bool (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;void (mlir::Pattern const&amp;)&gt;, llvm::function_ref&lt;llvm::LogicalResult (mlir::Pattern const&amp;)&gt;) /home/projects/project/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:233:9
#<!-- -->21 0x00005c1292b0380f (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:615:17
#<!-- -->22 0x00005c1292b02a81 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &amp;&amp;::$_2::operator()() const /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:874:30
#<!-- -->23 0x00005c1292b02a55 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;(anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &amp;&amp;::$_2&gt;(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->24 0x00005c128d40d2b9 llvm::function_ref&lt;void ()&gt;::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->25 0x00005c1292b02185 void mlir::MLIRContext::executeAction&lt;(anonymous namespace)::GreedyPatternRewriteIteration, long&amp;&gt;(llvm::function_ref&lt;void ()&gt;, llvm::ArrayRef&lt;mlir::IRUnit&gt;, long&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#<!-- -->26 0x00005c1292b00605 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &amp;&amp; /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:887:3
#<!-- -->27 0x00005c1292b002e7 mlir::applyPatternsGreedily(mlir::Region&amp;, mlir::FrozenRewritePatternSet const&amp;, mlir::GreedyRewriteConfig, bool*) /home/projects/project/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:919:47
#<!-- -->28 0x00005c128d60ca30 mlir::applyPatternsGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&amp;, mlir::GreedyRewriteConfig, bool*) /home/projects/project/llvm-project/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h:174:15
#<!-- -->29 0x00005c1292e0cb7d (anonymous namespace)::TestSCFPipeliningPass::runOnOperation() /home/projects/project/llvm-project/mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp:229:11
#<!-- -->30 0x00005c12929ea1eb 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
#<!-- -->31 0x00005c12929ea185 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1&gt;(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->32 0x00005c128d40d2b9 llvm::function_ref&lt;void ()&gt;::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->33 0x00005c12929ed095 void mlir::MLIRContext::executeAction&lt;mlir::PassExecutionAction, mlir::Pass&amp;&gt;(llvm::function_ref&lt;void ()&gt;, llvm::ArrayRef&lt;mlir::IRUnit&gt;, mlir::Pass&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#<!-- -->34 0x00005c12929e598a 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
#<!-- -->35 0x00005c12929e5f14 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&amp;, 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
#<!-- -->36 0x00005c12929eb5a8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&amp;) const /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:813:36
#<!-- -->37 0x00005c12929eb400 auto void mlir::parallelForEach&lt;__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&gt;(mlir::MLIRContext*, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&amp;&amp;)::'lambda'(__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;&amp;&amp;)::operator()&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&amp;&gt;(__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;&amp;&amp;) const /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:120:56
#<!-- -->38 0x00005c12929eb1a9 llvm::LogicalResult mlir::failableParallelForEach&lt;__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, void mlir::parallelForEach&lt;__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&gt;(mlir::MLIRContext*, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&amp;&amp;)::'lambda'(__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;&amp;&amp;)&gt;(mlir::MLIRContext*, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&amp;&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:46:18
#<!-- -->39 0x00005c12929eb085 void mlir::parallelForEach&lt;__gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&gt;(mlir::MLIRContext*, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, __gnu_cxx::__normal_iterator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&gt;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&amp;&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:119:9
#<!-- -->40 0x00005c12929e71cb void mlir::parallelForEach&lt;std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&amp;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&gt;(mlir::MLIRContext*, std::vector&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator&lt;mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&gt;&gt;&amp;, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&amp;&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/Threading.h:133:1
#<!-- -->41 0x00005c12929e6adb mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:824:7
#<!-- -->42 0x00005c12929e65e7 mlir::detail::OpToOpPassAdaptor::runOnOperation(bool) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:713:5
#<!-- -->43 0x00005c12929ea1d6 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:524:11
#<!-- -->44 0x00005c12929ea185 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1&gt;(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->45 0x00005c128d40d2b9 llvm::function_ref&lt;void ()&gt;::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->46 0x00005c12929ed095 void mlir::MLIRContext::executeAction&lt;mlir::PassExecutionAction, mlir::Pass&amp;&gt;(llvm::function_ref&lt;void ()&gt;, llvm::ArrayRef&lt;mlir::IRUnit&gt;, mlir::Pass&amp;) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#<!-- -->47 0x00005c12929e598a 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
#<!-- -->48 0x00005c12929e5f14 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&amp;, 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
#<!-- -->49 0x00005c12929e7958 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#<!-- -->50 0x00005c12929e7882 mlir::PassManager::run(mlir::Operation*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#<!-- -->51 0x00005c12929d88da performActions(llvm::raw_ostream&amp;, std::shared_ptr&lt;llvm::SourceMgr&gt; const&amp;, mlir::MLIRContext*, mlir::MlirOptMainConfig const&amp;) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#<!-- -->52 0x00005c12929d849c processBuffer(llvm::raw_ostream&amp;, std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, mlir::MlirOptMainConfig const&amp;, mlir::DialectRegistry&amp;, llvm::ThreadPoolInterface*) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#<!-- -->53 0x00005c12929d824c mlir::MlirOptMain(llvm::raw_ostream&amp;, std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, mlir::DialectRegistry&amp;, mlir::MlirOptMainConfig const&amp;)::$_0::operator()(std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;) const /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#<!-- -->54 0x00005c12929d81e6 llvm::LogicalResult llvm::function_ref&lt;llvm::LogicalResult (std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;)&gt;::callback_fn&lt;mlir::MlirOptMain(llvm::raw_ostream&amp;, std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, mlir::DialectRegistry&amp;, mlir::MlirOptMainConfig const&amp;)::$_0&gt;(long, std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#<!-- -->55 0x00005c1292b66162 llvm::function_ref&lt;llvm::LogicalResult (std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;)&gt;::operator()(std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;) const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#<!-- -->56 0x00005c1292b6574c mlir::splitAndProcessBuffer(std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::function_ref&lt;llvm::LogicalResult (std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, llvm::raw_ostream&amp;)&gt;, llvm::raw_ostream&amp;, llvm::StringRef, llvm::StringRef) /home/projects/project/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#<!-- -->57 0x00005c12929d4658 mlir::MlirOptMain(llvm::raw_ostream&amp;, std::unique_ptr&lt;llvm::MemoryBuffer, std::default_delete&lt;llvm::MemoryBuffer&gt;&gt;, mlir::DialectRegistry&amp;, mlir::MlirOptMainConfig const&amp;) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#<!-- -->58 0x00005c12929d4a19 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&amp;) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#<!-- -->59 0x00005c12929d4be8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&amp;) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#<!-- -->60 0x00005c128d354823 main /home/projects/project/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:329:33
#<!-- -->61 0x000073a61e5cdd90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->62 0x000073a61e5cde40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->63 0x00005c128d354425 _start (/home/projects/project/llvm-project/build/bin/mlir-opt+0x29c7425)
Aborted (core dumped)

@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Mar 6, 2025
@CoTinker CoTinker self-assigned this Mar 12, 2025
@CoTinker CoTinker marked this as a duplicate of #130101 Mar 12, 2025
@CoTinker CoTinker marked this as a duplicate of #131776 Mar 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash Prefer [crash-on-valid] or [crash-on-invalid] mlir:scf
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants