[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 ®istry);
} // 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 ®istry) {
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