[Mlir-commits] [mlir] Declare RuntimeVerifiableOpInterface for memref ops that have an imlementation (PR #145230)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sun Jun 22 05:07:41 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir

Author: Artemiy Bulavin (abulavin)

<details>
<summary>Changes</summary>

Previously running `-generate-runtime-verification` on an IR containing memref.reinterpret_cast would crash because its implementation of the `RuntimeVerifiableOpInterface` was removed in https://github.com/llvm/llvm-project/pull/132547 but it's associated entry in `declarePromisedInterface` was never removed.

This causes an error when you try and run `-generate-runtime-verification` on an IR containing `memref.reinterpret_cast that looks like`

```
LLVM ERROR: checking for an interface (`mlir::RuntimeVerifiableOpInterface`) that was promised by dialect 'memref' but never implemented. This is generally an indication that the dialect extension implementing the interface was never registered.
```
as reported in https://github.com/llvm/llvm-project/issues/144028.

In this PR I also added all the ops that do have implementations of this interface in `mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp` to the `declarePromisedInterface` for consistency.

Fixes https://github.com/llvm/llvm-project/issues/144028

---
Full diff: https://github.com/llvm/llvm-project/pull/145230.diff


1 Files Affected:

- (modified) mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp (+3-2) 


``````````diff
diff --git a/mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp b/mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
index 6d0ac8a650776..2f55f5c0a7433 100644
--- a/mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
+++ b/mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp
@@ -52,8 +52,9 @@ void mlir::memref::MemRefDialect::initialize() {
   declarePromisedInterface<ConvertToLLVMPatternInterface, MemRefDialect>();
   declarePromisedInterfaces<bufferization::AllocationOpInterface, AllocOp,
                             AllocaOp, ReallocOp>();
-  declarePromisedInterfaces<RuntimeVerifiableOpInterface, CastOp, ExpandShapeOp,
-                            LoadOp, ReinterpretCastOp, StoreOp, SubViewOp>();
+  declarePromisedInterfaces<RuntimeVerifiableOpInterface, AssumeAlignmentOp,
+                            AtomicRMWOp, CastOp, CopyOp, DimOp, ExpandShapeOp,
+                            GenericAtomicRMWOp, LoadOp, StoreOp, SubViewOp>();
   declarePromisedInterfaces<ValueBoundsOpInterface, AllocOp, AllocaOp, CastOp,
                             DimOp, GetGlobalOp, RankOp, SubViewOp>();
   declarePromisedInterface<DestructurableTypeInterface, MemRefType>();

``````````

</details>


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


More information about the Mlir-commits mailing list