Skip to content

Commit 1fe6866

Browse files
[fixup] Fix an assertion
`computeStrides` does not acccess the first element of `sizes`
1 parent 6fff592 commit 1fe6866

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

mlir/include/mlir/Dialect/Utils/IndexingUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ArrayAttr;
4040
/// Assuming `sizes` is `[s0, .. sn]`, return the vector<int64_t>
4141
/// `[s1 * ... * sn, s2 * ... * sn, ..., sn, 1]`.
4242
///
43-
/// `sizes` elements are asserted to be non-negative.
43+
/// `sizes` elements `s1` to `sn` are asserted to be non-negative.
4444
///
4545
/// Return an empty vector if `sizes` is empty.
4646
SmallVector<int64_t> computeSuffixProduct(ArrayRef<int64_t> sizes);

mlir/lib/Dialect/Utils/IndexingUtils.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ SmallVector<ExprType> delinearizeImpl(ExprType linearIndex,
6969
//===----------------------------------------------------------------------===//
7070

7171
SmallVector<int64_t> mlir::computeSuffixProduct(ArrayRef<int64_t> sizes) {
72-
assert(llvm::all_of(sizes, [](int64_t s) { return s >= 0; }) &&
72+
assert((sizes.size() == 0 ||
73+
llvm::all_of(sizes.drop_front(), [](int64_t s) { return s >= 0; })) &&
7374
"sizes must be nonnegative");
7475
int64_t unit = 1;
7576
return ::computeSuffixProductImpl(sizes, unit);

0 commit comments

Comments
 (0)