[Mlir-commits] [mlir] [mlir][tensor] fix out-of-bound index in tensor.dim (PR #85901)

Mehdi Amini llvmlistbot at llvm.org
Wed Mar 20 03:03:59 PDT 2024


================
@@ -738,11 +741,11 @@ OpFoldResult DimOp::fold(FoldAdaptor adaptor) {
   if (!tensorType)
     return {};
 
-  // Out of bound indices produce undefined behavior but are still valid IR.
-  // Don't choke on them.
+  // Fold dim to posion if the index is out of bound. Poison represents
+  // undefined behavior.
   int64_t indexVal = index.getInt();
   if (indexVal < 0 || indexVal >= tensorType.getRank())
-    return {};
+    return ub::PoisonAttr::get(getContext());
----------------
joker-eph wrote:

This is really a design question here: this new addition can be a problem for some user, it's not clear to me if we can actually use poison everywhere in MLIR right now.

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


More information about the Mlir-commits mailing list