[Mlir-commits] [mlir] [mlir][Mem2Reg] Standardise memory slot interface implementation file names (nfc) (PR #232637)

Andrzej WarzyƄski llvmlistbot at llvm.org
Fri Oct 16 00:55:34 PDT 2026


https://github.com/banach-space created https://github.com/llvm/llvm-project/pull/232637

Renames the files implementing the interfaces defined in
`MemorySlotInterfaces.td` to consistently use
`MemorySlotInterfacesImpl.{h,cpp}`.

The previous names (e.g. `MemRefMemorySlot.h` and
`MemorySlotOpInterfaceImpl.h`) were inconsistent with the TableGen
definition, particularly its use of the plural `Interfaces`.

Also:
* Adds and updates comments to clarify that the implementations in
  `mlir/lib/Dialect/MemRef/Transforms/` use external models, unlike
  those in `mlir/lib/Dialect/MemRef/IR/`.
* Moves all Mem2Reg tests to `mlir/test/Transforms/Mem2Reg/`. As
  demonstrated by #217793, these tests depend on multiple dialects,
  making `mlir/test/Transforms/` a more appropriate location than
  `mlir/test/Dialect/`.


>From 3f266ead51d228b5e07f4329f7792e9e6b9cbb39 Mon Sep 17 00:00:00 2001
From: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: Sat, 10 Oct 2026 14:40:53 +0100
Subject: [PATCH] [mlir][Mem2Reg] Standardise memory slot interface
 implementation file names (nfc)

Renames the files implementing the interfaces defined in
`MemorySlotInterfaces.td` to consistently use
`MemorySlotInterfacesImpl.{h,cpp}`.

The previous names (e.g. `MemRefMemorySlot.h` and
`MemorySlotOpInterfaceImpl.h`) were inconsistent with the TableGen
definition, particularly its use of the plural `Interfaces`.

Also:
* Adds and updates comments to clarify that the implementations in
  `mlir/lib/Dialect/MemRef/Transforms/` use external models, unlike
  those in `mlir/lib/Dialect/MemRef/IR/`.
* Moves all Mem2Reg tests to `mlir/test/Transforms/Mem2Reg/`. As
  demonstrated by #217793, these tests depend on multiple dialects,
  making `mlir/test/Transforms/` a more appropriate location than
  `mlir/test/Dialect/`.
---
 ...emorySlot.h => MemorySlotInterfacesImpl.h} |  9 ++-
 ...rfaceImpl.h => MemorySlotInterfacesImpl.h} |  0
 ...rfaceImpl.h => MemorySlotInterfacesImpl.h} |  1 -
 mlir/lib/Dialect/MemRef/IR/CMakeLists.txt     |  2 +-
 ...ySlot.cpp => MemorySlotInterfacesImpl.cpp} | 80 +++++++++++--------
 .../Dialect/MemRef/Transforms/CMakeLists.txt  |  2 +-
 ...eImpl.cpp => MemorySlotInterfacesImpl.cpp} |  6 +-
 .../Dialect/Vector/Transforms/CMakeLists.txt  |  2 +-
 ...eImpl.cpp => MemorySlotInterfacesImpl.cpp} |  6 +-
 mlir/lib/RegisterAllDialects.cpp              |  6 +-
 .../Mem2Reg/affine.mlir}                      |  0
 .../Mem2Reg/llvm.mlir}                        |  0
 .../Transforms/{ => Mem2Reg}/mem2reg.mlir     |  0
 .../Mem2Reg/memref.mlir}                      |  0
 .../Mem2Reg/scf.mlir}                         |  0
 .../Mem2Reg/vector-dyn-subview.mlir}          |  0
 .../Mem2Reg/vector.mlir}                      |  0
 17 files changed, 64 insertions(+), 50 deletions(-)
 rename mlir/include/mlir/Dialect/MemRef/IR/{MemRefMemorySlot.h => MemorySlotInterfacesImpl.h} (63%)
 rename mlir/include/mlir/Dialect/MemRef/Transforms/{MemorySlotOpInterfaceImpl.h => MemorySlotInterfacesImpl.h} (100%)
 rename mlir/include/mlir/Dialect/Vector/Transforms/{MemorySlotOpInterfaceImpl.h => MemorySlotInterfacesImpl.h} (99%)
 rename mlir/lib/Dialect/MemRef/IR/{MemRefMemorySlot.cpp => MemorySlotInterfacesImpl.cpp} (90%)
 rename mlir/lib/Dialect/MemRef/Transforms/{MemorySlotOpInterfaceImpl.cpp => MemorySlotInterfacesImpl.cpp} (98%)
 rename mlir/lib/Dialect/Vector/Transforms/{MemorySlotOpInterfaceImpl.cpp => MemorySlotInterfacesImpl.cpp} (97%)
 rename mlir/test/{Dialect/Affine/mem2reg.mlir => Transforms/Mem2Reg/affine.mlir} (100%)
 rename mlir/test/{Dialect/LLVMIR/mem2reg.mlir => Transforms/Mem2Reg/llvm.mlir} (100%)
 rename mlir/test/Transforms/{ => Mem2Reg}/mem2reg.mlir (100%)
 rename mlir/test/{Dialect/MemRef/mem2reg.mlir => Transforms/Mem2Reg/memref.mlir} (100%)
 rename mlir/test/{Dialect/SCF/mem2reg.mlir => Transforms/Mem2Reg/scf.mlir} (100%)
 rename mlir/test/{Dialect/Vector/mem2reg-dynamic-subview.mlir => Transforms/Mem2Reg/vector-dyn-subview.mlir} (100%)
 rename mlir/test/{Dialect/Vector/mem2reg.mlir => Transforms/Mem2Reg/vector.mlir} (100%)

diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefMemorySlot.h b/mlir/include/mlir/Dialect/MemRef/IR/MemorySlotInterfacesImpl.h
similarity index 63%
rename from mlir/include/mlir/Dialect/MemRef/IR/MemRefMemorySlot.h
rename to mlir/include/mlir/Dialect/MemRef/IR/MemorySlotInterfacesImpl.h
index 1bba85e2f2bd4e..b5329826907894 100644
--- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefMemorySlot.h
+++ b/mlir/include/mlir/Dialect/MemRef/IR/MemorySlotInterfacesImpl.h
@@ -1,4 +1,5 @@
-//===- MemRefMemorySlot.h - Implementation of Memory Slot Interfaces ------===//
+//===- MemorySlotInterfacesImpl.h
+//------------------------------------------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -6,8 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef MLIR_DIALECT_MEMREF_IR_MEMREFMEMORYSLOT_H
-#define MLIR_DIALECT_MEMREF_IR_MEMREFMEMORYSLOT_H
+#ifndef MLIR_DIALECT_MEMREF_IR_MEMORYSLOTOPINTERFACESIMPL_H
+#define MLIR_DIALECT_MEMREF_IR_MEMORYSLOTOPINTERFACESIMPL_H
 
 namespace mlir {
 class DialectRegistry;
@@ -17,4 +18,4 @@ void registerDestructurableTypeExternalModels(DialectRegistry &registry);
 } // namespace memref
 } // namespace mlir
 
-#endif // MLIR_DIALECT_MEMREF_IR_MEMREFMEMORYSLOT_H
+#endif // MLIR_DIALECT_MEMREF_IR_MEMORYSLOTOPINTERFACESIMPL_H
diff --git a/mlir/include/mlir/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.h b/mlir/include/mlir/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.h
similarity index 100%
rename from mlir/include/mlir/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.h
rename to mlir/include/mlir/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.h
diff --git a/mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h b/mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.h
similarity index 99%
rename from mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h
rename to mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.h
index 7c1746efe07101..4a4095d8240222 100644
--- a/mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h
+++ b/mlir/include/mlir/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.h
@@ -10,7 +10,6 @@
 #define MLIR_DIALECT_VECTOR_TRANSFORMS_MEMORYSLOTOPINTERFACEIMPL_H
 
 namespace mlir {
-
 class DialectRegistry;
 
 namespace vector {
diff --git a/mlir/lib/Dialect/MemRef/IR/CMakeLists.txt b/mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
index 56d98dd431c8e1..99fe36510bea83 100644
--- a/mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
@@ -1,7 +1,7 @@
 add_mlir_dialect_library(MLIRMemRefDialect
   MemRefDialect.cpp
   MemoryAccessOpInterfaces.cpp
-  MemRefMemorySlot.cpp
+  MemorySlotInterfacesImpl.cpp
   MemRefOps.cpp
   ValueBoundsOpInterfaceImpl.cpp
 
diff --git a/mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp b/mlir/lib/Dialect/MemRef/IR/MemorySlotInterfacesImpl.cpp
similarity index 90%
rename from mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
rename to mlir/lib/Dialect/MemRef/IR/MemorySlotInterfacesImpl.cpp
index a25d5678604d01..27c21ecfb8f79e 100644
--- a/mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
+++ b/mlir/lib/Dialect/MemRef/IR/MemorySlotInterfacesImpl.cpp
@@ -1,4 +1,4 @@
-//===- MemRefMemorySlot.cpp - Memory Slot Interfaces ------------*- C++ -*-===//
+//===- MemorySlotInterfacesImpl.cpp - Memory Slot Interfaces ----*- C++ -*-===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -6,12 +6,17 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file implements Mem2Reg-related interfaces for MemRef dialect
-// operations.
+// Implementation of Memory Slot Interfaces for MemRef Ops.
+//
+// This file also implements DestructurableTypeInterface for MemRefType that is
+// required for some of the interfaces implemented here. This particular
+// interface is added as an external model - otherwise we would need to add it
+// to the MemRef builtin type and make the builtin dialect depend on
+// `DestructurableTypeInterface`.
 //
 //===----------------------------------------------------------------------===//
 
-#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h"
+#include "mlir/Dialect/MemRef/IR/MemorySlotInterfacesImpl.h"
 #include "mlir/Dialect/Arith/IR/Arith.h"
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
 #include "mlir/Dialect/UB/IR/UBOps.h"
@@ -60,10 +65,30 @@ static void walkIndicesAsAttr(MLIRContext *ctx, ArrayRef<int64_t> shape,
   } while (succeeded(nextIndex(shape, shapeIter)));
 }
 
+/// Returns the index of a memref in attribute form, given its indices. Returns
+/// a null pointer if whether the indices form a valid index for the provided
+/// MemRefType cannot be computed. The indices must come from a valid memref
+/// StoreOp or LoadOp.
+static Attribute getAttributeIndexFromIndexOperands(MLIRContext *ctx,
+                                                    ValueRange indices,
+                                                    MemRefType memrefType) {
+  SmallVector<Attribute> index;
+  for (auto [coord, dimSize] : llvm::zip(indices, memrefType.getShape())) {
+    IntegerAttr coordAttr;
+    if (!matchPattern(coord, m_Constant<IntegerAttr>(&coordAttr)))
+      return {};
+    // MemRefType shape dimensions are always positive (checked by verifier).
+    std::optional<uint64_t> coordInt = coordAttr.getValue().tryZExtValue();
+    if (!coordInt || coordInt.value() >= static_cast<uint64_t>(dimSize))
+      return {};
+    index.push_back(coordAttr);
+  }
+  return ArrayAttr::get(ctx, index);
+}
+
 //===----------------------------------------------------------------------===//
-//  Interfaces for AllocaOp
+// AllocaOp: PromotableAllocationOpInterface
 //===----------------------------------------------------------------------===//
-
 /// Returns the scalable vector width a `vscale`-sized memref maps to: the
 /// factor C when `size` is a known multiple of `vscale`.
 static std::optional<int64_t> matchVScaleMultiple(Value size) {
@@ -150,6 +175,9 @@ memref::AllocaOp::handlePromotionComplete(const MemorySlot &slot,
   return std::nullopt;
 }
 
+//===----------------------------------------------------------------------===//
+// AllocaOp: DestructurableAllocationOpInterface
+//===----------------------------------------------------------------------===//
 void memref::AllocaOp::handleBlockArgument(const MemorySlot &slot,
                                            BlockArgument argument,
                                            OpBuilder &builder) {}
@@ -200,9 +228,8 @@ memref::AllocaOp::handleDestructuringComplete(
 }
 
 //===----------------------------------------------------------------------===//
-//  Interfaces for LoadOp/StoreOp
+//  LoadOp: PromotableMemOpInterface
 //===----------------------------------------------------------------------===//
-
 bool memref::LoadOp::loadsFrom(const MemorySlot &slot) {
   return getMemRef() == slot.ptr;
 }
@@ -236,27 +263,9 @@ DeletionKind memref::LoadOp::removeBlockingUses(
   return DeletionKind::Delete;
 }
 
-/// Returns the index of a memref in attribute form, given its indices. Returns
-/// a null pointer if whether the indices form a valid index for the provided
-/// MemRefType cannot be computed. The indices must come from a valid memref
-/// StoreOp or LoadOp.
-static Attribute getAttributeIndexFromIndexOperands(MLIRContext *ctx,
-                                                    ValueRange indices,
-                                                    MemRefType memrefType) {
-  SmallVector<Attribute> index;
-  for (auto [coord, dimSize] : llvm::zip(indices, memrefType.getShape())) {
-    IntegerAttr coordAttr;
-    if (!matchPattern(coord, m_Constant<IntegerAttr>(&coordAttr)))
-      return {};
-    // MemRefType shape dimensions are always positive (checked by verifier).
-    std::optional<uint64_t> coordInt = coordAttr.getValue().tryZExtValue();
-    if (!coordInt || coordInt.value() >= static_cast<uint64_t>(dimSize))
-      return {};
-    index.push_back(coordAttr);
-  }
-  return ArrayAttr::get(ctx, index);
-}
-
+//===----------------------------------------------------------------------===//
+//  LoadOp: DestructurableAccessorOpInterface
+//===----------------------------------------------------------------------===//
 bool memref::LoadOp::canRewire(const DestructurableMemorySlot &slot,
                                SmallPtrSetImpl<Attribute> &usedIndices,
                                SmallVectorImpl<MemorySlot> &mustBeSafelyUsed,
@@ -295,6 +304,9 @@ Value memref::StoreOp::getStored(const MemorySlot &slot, OpBuilder &builder,
   return getValue();
 }
 
+//===----------------------------------------------------------------------===//
+//  StoreOp: PromotableMemOpInterface
+//===----------------------------------------------------------------------===//
 bool memref::StoreOp::canUsesBeRemoved(
     const MemorySlot &slot, const SmallPtrSetImpl<OpOperand *> &blockingUses,
     SmallVectorImpl<OpOperand *> &newBlockingUses,
@@ -313,6 +325,9 @@ DeletionKind memref::StoreOp::removeBlockingUses(
   return DeletionKind::Delete;
 }
 
+//===----------------------------------------------------------------------===//
+//  StoreOp: DestructurableAccessorOpInterface
+//===----------------------------------------------------------------------===//
 bool memref::StoreOp::canRewire(const DestructurableMemorySlot &slot,
                                 SmallPtrSetImpl<Attribute> &usedIndices,
                                 SmallVectorImpl<MemorySlot> &mustBeSafelyUsed,
@@ -340,11 +355,10 @@ DeletionKind memref::StoreOp::rewire(const DestructurableMemorySlot &slot,
 }
 
 //===----------------------------------------------------------------------===//
-//  Interfaces for destructurable types
+//  MemRefType: DestructurableTypeInterface
 //===----------------------------------------------------------------------===//
 
 namespace {
-
 struct MemRefDestructurableTypeExternalModel
     : public DestructurableTypeInterface::ExternalModel<
           MemRefDestructurableTypeExternalModel, MemRefType> {
@@ -387,13 +401,11 @@ struct MemRefDestructurableTypeExternalModel
     return memrefType.getElementType();
   }
 };
-
 } // namespace
 
 //===----------------------------------------------------------------------===//
-//  Register external models
+//  Register MemRefDestructurableTypeExternalModel
 //===----------------------------------------------------------------------===//
-
 void mlir::memref::registerDestructurableTypeExternalModels(
     DialectRegistry &registry) {
   registry.addExtension(+[](MLIRContext *ctx, BuiltinDialect *dialect) {
diff --git a/mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt b/mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
index 179d648c46a1be..ca5ea2a8f732c7 100644
--- a/mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
@@ -12,7 +12,7 @@ add_mlir_dialect_library(MLIRMemRefTransforms
   FlattenMemRefs.cpp
   FoldMemRefAliasOps.cpp
   IndependenceTransforms.cpp
-  MemorySlotOpInterfaceImpl.cpp
+  MemorySlotInterfacesImpl.cpp
   MultiBuffer.cpp
   NormalizeMemRefs.cpp
   ReifyResultShapes.cpp
diff --git a/mlir/lib/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.cpp b/mlir/lib/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.cpp
similarity index 98%
rename from mlir/lib/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.cpp
rename to mlir/lib/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.cpp
index c562c67433f470..6f75496fdb6e66 100644
--- a/mlir/lib/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.cpp
@@ -1,4 +1,4 @@
-//===- MemorySlotOpInterfaceImpl.cpp - Mem2Reg for MemRef ops -------------===//
+//===- MemorySlotInterfacesImpl.cpp - Mem2Reg for MemRef ops -------------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -6,6 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 //
+// External-model-based implementation of Memory Slot Interfaces for MemRef Ops.
+//
 // This file implements memory slot interface models used by Mem2Reg to promote
 // a memref to a single vector SSA value. `PromotableAliaserInterface` exposes
 // `memref.subview` aliases, and `PromotableOpInterface` removes the subviews
@@ -40,7 +42,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "mlir/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.h"
+#include "mlir/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.h"
 
 #include "mlir/Dialect/Arith/Utils/Utils.h"
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
diff --git a/mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
index dfe873f1a1b8d7..9e7cb6afa81297 100644
--- a/mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
@@ -15,7 +15,7 @@ add_mlir_dialect_library(MLIRVectorTransforms
   LowerVectorToFromElementsToShuffleTree.cpp
   LowerVectorTransfer.cpp
   LowerVectorTranspose.cpp
-  MemorySlotOpInterfaceImpl.cpp
+  MemorySlotInterfacesImpl.cpp
   SubsetOpInterfaceImpl.cpp
   VectorDistribute.cpp
   VectorDropLeadUnitDim.cpp
diff --git a/mlir/lib/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.cpp b/mlir/lib/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.cpp
similarity index 97%
rename from mlir/lib/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.cpp
rename to mlir/lib/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.cpp
index c8c17f2039b025..33abbf2644f0fc 100644
--- a/mlir/lib/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.cpp
@@ -1,4 +1,4 @@
-//===- MemorySlotOpInterfaceImpl.cpp - Mem2Reg for Vector ops -------------===//
+//===- MemorySlotInterfacesImpl.cpp - Mem2Reg for Vector ops --------------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -27,11 +27,11 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h"
+#include "mlir/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.h"
 
 #include "mlir/Dialect/Arith/IR/Arith.h"
 #include "mlir/Dialect/Arith/Utils/Utils.h"
-#include "mlir/Dialect/MemRef/Transforms/MemorySlotOpInterfaceImpl.h"
+#include "mlir/Dialect/MemRef/Transforms/MemorySlotInterfacesImpl.h"
 #include "mlir/Dialect/Utils/StaticValueUtils.h"
 #include "mlir/Dialect/Vector/IR/VectorOps.h"
 #include "mlir/IR/BuiltinTypes.h"
diff --git a/mlir/lib/RegisterAllDialects.cpp b/mlir/lib/RegisterAllDialects.cpp
index 11005ab706cd39..c9dad27c2218fd 100644
--- a/mlir/lib/RegisterAllDialects.cpp
+++ b/mlir/lib/RegisterAllDialects.cpp
@@ -57,9 +57,9 @@
 #include "mlir/Dialect/MPI/IR/MPI.h"
 #include "mlir/Dialect/Math/IR/Math.h"
 #include "mlir/Dialect/MemRef/IR/MemRefDialect.h"
-#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h"
+#include "mlir/Dialect/MemRef/IR/MemorySlotInterfacesImpl.h"
 #include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h"
-#include "mlir/Dialect/MemRef/Transforms//MemorySlotOpInterfaceImpl.h"
+#include "mlir/Dialect/MemRef/Transforms//MemorySlotInterfacesImpl.h"
 #include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h"
 #include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h"
 #include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h"
@@ -100,7 +100,7 @@
 #include "mlir/Dialect/Vector/IR/VectorOps.h"
 #include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Vector/Transforms/IndexedAccessOpInterfaceImpl.h"
-#include "mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h"
+#include "mlir/Dialect/Vector/Transforms/MemorySlotInterfacesImpl.h"
 #include "mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h"
 #include "mlir/Dialect/WasmSSA/IR/WasmSSA.h"
 #include "mlir/Dialect/X86/X86Dialect.h"
diff --git a/mlir/test/Dialect/Affine/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/affine.mlir
similarity index 100%
rename from mlir/test/Dialect/Affine/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/affine.mlir
diff --git a/mlir/test/Dialect/LLVMIR/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/llvm.mlir
similarity index 100%
rename from mlir/test/Dialect/LLVMIR/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/llvm.mlir
diff --git a/mlir/test/Transforms/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/mem2reg.mlir
similarity index 100%
rename from mlir/test/Transforms/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/mem2reg.mlir
diff --git a/mlir/test/Dialect/MemRef/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/memref.mlir
similarity index 100%
rename from mlir/test/Dialect/MemRef/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/memref.mlir
diff --git a/mlir/test/Dialect/SCF/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/scf.mlir
similarity index 100%
rename from mlir/test/Dialect/SCF/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/scf.mlir
diff --git a/mlir/test/Dialect/Vector/mem2reg-dynamic-subview.mlir b/mlir/test/Transforms/Mem2Reg/vector-dyn-subview.mlir
similarity index 100%
rename from mlir/test/Dialect/Vector/mem2reg-dynamic-subview.mlir
rename to mlir/test/Transforms/Mem2Reg/vector-dyn-subview.mlir
diff --git a/mlir/test/Dialect/Vector/mem2reg.mlir b/mlir/test/Transforms/Mem2Reg/vector.mlir
similarity index 100%
rename from mlir/test/Dialect/Vector/mem2reg.mlir
rename to mlir/test/Transforms/Mem2Reg/vector.mlir



More information about the Mlir-commits mailing list