[Mlir-commits] [mlir] 2fcdaba - [mlir][DialectUtils] Fix div by zero crash (#153380)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Aug 13 04:39:01 PDT 2025
Author: Matthias Springer
Date: 2025-08-13T13:38:57+02:00
New Revision: 2fcdabaf39c0af87677155f76d9c284d3cb7fbde
URL: https://github.com/llvm/llvm-project/commit/2fcdabaf39c0af87677155f76d9c284d3cb7fbde
DIFF: https://github.com/llvm/llvm-project/commit/2fcdabaf39c0af87677155f76d9c284d3cb7fbde.diff
LOG: [mlir][DialectUtils] Fix div by zero crash (#153380)
Added:
Modified:
mlir/lib/Dialect/Utils/StaticValueUtils.cpp
mlir/test/Dialect/SCF/canonicalize.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/Utils/StaticValueUtils.cpp b/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
index e6ef0282101d2..34385d76f133a 100644
--- a/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+++ b/mlir/lib/Dialect/Utils/StaticValueUtils.cpp
@@ -276,7 +276,7 @@ std::optional<int64_t> constantTripCount(OpFoldResult lb, OpFoldResult ub,
if (!ubConstant)
return std::nullopt;
std::optional<int64_t> stepConstant = getConstantIntValue(step);
- if (!stepConstant)
+ if (!stepConstant || *stepConstant == 0)
return std::nullopt;
return llvm::divideCeilSigned(*ubConstant - *lbConstant, *stepConstant);
diff --git a/mlir/test/Dialect/SCF/canonicalize.mlir b/mlir/test/Dialect/SCF/canonicalize.mlir
index 308cf150aa98e..7804cc7026d67 100644
--- a/mlir/test/Dialect/SCF/canonicalize.mlir
+++ b/mlir/test/Dialect/SCF/canonicalize.mlir
@@ -1912,3 +1912,16 @@ func.func @index_switch_fold_no_res() {
// CHECK-LABEL: func.func @index_switch_fold_no_res()
// CHECK-NEXT: "test.op"() : () -> ()
+
+// -----
+
+// CHECK-LABEL: func @scf_for_all_step_size_0()
+// CHECK: scf.forall (%{{.*}}) = (0) to (1) step (0)
+func.func @scf_for_all_step_size_0() {
+ %x = arith.constant 0 : index
+ scf.forall (%i, %j) = (0, 4) to (1, 5) step (%x, 8) {
+ vector.print %x : index
+ scf.forall.in_parallel {}
+ }
+ return
+}
More information about the Mlir-commits
mailing list