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

Jianbang Yang llvmlistbot at llvm.org
Wed Mar 20 03:58:55 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());
----------------
dynamicheart wrote:

Another question: is `ub.poison` is designed to be a valid IR and able to be compiled to a binary?

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


More information about the Mlir-commits mailing list