[Mlir-commits] [mlir] 26f3f24 - [MLIR][NFC] Declare RuntimeVerifiableOpInterface for memref ops that have an implementation (#145230)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sun Jun 22 23:02:52 PDT 2025


Author: Artemiy Bulavin
Date: 2025-06-23T14:02:49+08:00
New Revision: 26f3f24a4f0a67eb23d255aba7a73a12bee1db11

URL: https://github.com/llvm/llvm-project/commit/26f3f24a4f0a67eb23d255aba7a73a12bee1db11
DIFF: https://github.com/llvm/llvm-project/commit/26f3f24a4f0a67eb23d255aba7a73a12bee1db11.diff

LOG: [MLIR][NFC] Declare RuntimeVerifiableOpInterface for memref ops that have an implementation  (#145230)

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 its 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

Added: 
    

Modified: 
    mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp

Removed: 
    


################################################################################
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>();


        


More information about the Mlir-commits mailing list