[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