[Mlir-commits] [mlir] [mlir][gpu] Fix memref.dim folding with negative index (PR #205338)

Mehdi Amini llvmlistbot at llvm.org
Tue Jun 23 07:43:20 PDT 2026


================
@@ -2323,17 +2323,18 @@ struct SimplifyDimOfAllocOp : public OpRewritePattern<memref::DimOp> {
     if (!index)
       return failure();
 
+    int64_t indexVal = index.value();
     auto memrefType = llvm::dyn_cast<MemRefType>(dimOp.getSource().getType());
-    if (!memrefType || index.value() >= memrefType.getRank() ||
-        !memrefType.isDynamicDim(index.value()))
+    if (!memrefType || indexVal < 0 || indexVal >= memrefType.getRank() ||
+        !memrefType.isDynamicDim(indexVal))
       return failure();
 
     auto alloc = dimOp.getSource().getDefiningOp<AllocOp>();
     if (!alloc)
       return failure();
 
     Value substituteOp = *(alloc.getDynamicSizes().begin() +
-                           memrefType.getDynamicDimIndex(index.value()));
+                           memrefType.getDynamicDimIndex(indexVal));
----------------
joker-eph wrote:

Which line triggered the crash? 

https://github.com/llvm/llvm-project/pull/205338


More information about the Mlir-commits mailing list