[Mlir-commits] [mlir] 41cb504 - [mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms
Matthias Springer
llvmlistbot at llvm.org
Mon Feb 21 00:18:00 PST 2022
Author: Matthias Springer
Date: 2022-02-21T17:14:24+09:00
New Revision: 41cb504b7c4b18ac15830107431a0c1eec73a6b2
URL: https://github.com/llvm/llvm-project/commit/41cb504b7c4b18ac15830107431a0c1eec73a6b2
DIFF: https://github.com/llvm/llvm-project/commit/41cb504b7c4b18ac15830107431a0c1eec73a6b2.diff
LOG: [mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms
This is for consistency with other dialects.
Differential Revision: https://reviews.llvm.org/D120190
Added:
mlir/include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h
mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
Modified:
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt
mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
mlir/test/lib/Dialect/Linalg/CMakeLists.txt
mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Removed:
mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
################################################################################
diff --git a/mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h b/mlir/include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h
similarity index 84%
rename from mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h
rename to mlir/include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h
index 010fd565faa92..13d6f189721be 100644
--- a/mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h
+++ b/mlir/include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h
@@ -1,4 +1,4 @@
-//===- LinalgInterfaceImpl.h - Linalg Impl. of BufferizableOpInterface ----===//
+//===- BufferizableOpInterfaceImpl.h - Impl. of BufferizableOpInterface ---===//
//
// 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 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
-#define MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
+#ifndef MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H
+#define MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
@@ -15,8 +15,6 @@ namespace mlir {
class DialectRegistry;
namespace linalg {
-namespace comprehensive_bufferize {
-namespace linalg_ext {
/// A function that matches anchor OpOperands for InitTensorOp elimination.
/// If an OpOperand is matched, the function should populate the SmallVector
@@ -53,9 +51,7 @@ LogicalResult insertSliceAnchoredInitTensorEliminationStep(
void registerBufferizableOpInterfaceExternalModels(DialectRegistry ®istry);
-} // namespace linalg_ext
-} // namespace comprehensive_bufferize
} // namespace linalg
} // namespace mlir
-#endif // MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
+#endif // MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H
diff --git a/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt b/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt
index c72e99caf6dba..74104ec1d5ebe 100644
--- a/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt
@@ -1,9 +1,6 @@
set(LLVM_OPTIONAL_SOURCES
AffineInterfaceImpl.cpp
- LinalgInterfaceImpl.cpp
ModuleBufferization.cpp
- StdInterfaceImpl.cpp
- VectorInterfaceImpl.cpp
)
add_mlir_dialect_library(MLIRAffineBufferizableOpInterfaceImpl
@@ -14,17 +11,6 @@ add_mlir_dialect_library(MLIRAffineBufferizableOpInterfaceImpl
MLIRBufferization
)
-add_mlir_dialect_library(MLIRLinalgBufferizableOpInterfaceImpl
- LinalgInterfaceImpl.cpp
-
- LINK_LIBS PUBLIC
- MLIRBufferization
- MLIRBufferizationTransforms
- MLIRIR
- MLIRLinalg
- MLIRTensor
-)
-
add_mlir_dialect_library(MLIRModuleBufferization
ModuleBufferization.cpp
diff --git a/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp b/mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
similarity index 97%
rename from mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
rename to mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
index 7a6a04fb03873..f08be273248fe 100644
--- a/mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
@@ -1,4 +1,4 @@
-//===- LinalgInterfaceImpl.cpp - Linalg Impl. of BufferizableOpInterface --===//
+//===- BufferizableOpInterfaceImpl.cpp - Impl. of BufferizableOpInterface -===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
+#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
@@ -17,7 +17,6 @@
using namespace mlir;
using namespace linalg;
-using namespace comprehensive_bufferize;
using namespace mlir::bufferization;
namespace {
@@ -529,8 +528,7 @@ findValidInsertionPoint(Operation *initTensorOp,
/// OpOperand. "Anchored" means that there is a path on the reverse SSA use-def
/// chain, starting from the OpOperand and always following the aliasing
/// OpOperand, that eventually ends at a single InitTensorOp.
-LogicalResult
-mlir::linalg::comprehensive_bufferize::linalg_ext::eliminateInitTensors(
+LogicalResult mlir::linalg::eliminateInitTensors(
Operation *op, BufferizationState &state, BufferizationAliasInfo &aliasInfo,
AnchorMatchFn anchorMatchFunc, RewriteFn rewriteFunc,
SmallVector<Operation *> &newOps) {
@@ -632,10 +630,9 @@ mlir::linalg::comprehensive_bufferize::linalg_ext::eliminateInitTensors(
///
/// Note that the newly inserted ExtractSliceOp may have to bufferize
/// out-of-place due to RaW conflicts.
-LogicalResult mlir::linalg::comprehensive_bufferize::linalg_ext::
- insertSliceAnchoredInitTensorEliminationStep(
- Operation *op, BufferizationState &state,
- BufferizationAliasInfo &aliasInfo, SmallVector<Operation *> &newOps) {
+LogicalResult mlir::linalg::insertSliceAnchoredInitTensorEliminationStep(
+ Operation *op, BufferizationState &state, BufferizationAliasInfo &aliasInfo,
+ SmallVector<Operation *> &newOps) {
return eliminateInitTensors(
op, state, aliasInfo,
/*anchorMatchFunc=*/
@@ -688,8 +685,8 @@ LogicalResult mlir::linalg::comprehensive_bufferize::linalg_ext::
newOps);
}
-void mlir::linalg::comprehensive_bufferize::linalg_ext::
- registerBufferizableOpInterfaceExternalModels(DialectRegistry ®istry) {
+void mlir::linalg::registerBufferizableOpInterfaceExternalModels(
+ DialectRegistry ®istry) {
registry.addOpInterface<linalg::InitTensorOp, InitTensorOpInterface>();
registry.addOpInterface<linalg::TiledLoopOp, TiledLoopOpInterface>();
registry.addOpInterface<linalg::YieldOp, YieldOpInterface>();
diff --git a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
index 57bef39d65338..f758546bb9afc 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
@@ -1,4 +1,5 @@
add_mlir_dialect_library(MLIRLinalgTransforms
+ BufferizableOpInterfaceImpl.cpp
Bufferize.cpp
CodegenStrategy.cpp
ComprehensiveBufferizePass.cpp
@@ -43,7 +44,6 @@ add_mlir_dialect_library(MLIRLinalgTransforms
MLIRMemRef
MLIRLinalg
MLIRLinalgAnalysis
- MLIRLinalgBufferizableOpInterfaceImpl
MLIRLinalgUtils
MLIRModuleBufferization
MLIRSCF
diff --git a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
index b4ac512463cb5..ed5067c0db220 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
@@ -13,9 +13,9 @@
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/AffineInterfaceImpl.h"
-#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.h"
#include "mlir/Dialect/Linalg/Passes.h"
+#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/SCF/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
@@ -52,7 +52,7 @@ struct LinalgComprehensiveModuleBufferize
arith::ArithmeticDialect, StandardOpsDialect, AffineDialect>();
affine_ext::registerBufferizableOpInterfaceExternalModels(registry);
arith::registerBufferizableOpInterfaceExternalModels(registry);
- linalg_ext::registerBufferizableOpInterfaceExternalModels(registry);
+ linalg::registerBufferizableOpInterfaceExternalModels(registry);
scf::registerBufferizableOpInterfaceExternalModels(registry);
std_ext::registerModuleBufferizationExternalModels(registry);
tensor::registerBufferizableOpInterfaceExternalModels(registry);
@@ -98,8 +98,7 @@ void LinalgComprehensiveModuleBufferize::runOnOperation() {
opt.printConflicts = printConflicts;
opt.testAnalysisOnly = testAnalysisOnly;
if (initTensorElimination) {
- opt.addPostAnalysisStep(
- linalg_ext::insertSliceAnchoredInitTensorEliminationStep);
+ opt.addPostAnalysisStep(insertSliceAnchoredInitTensorEliminationStep);
}
} else {
opt = *options;
diff --git a/mlir/test/lib/Dialect/Linalg/CMakeLists.txt b/mlir/test/lib/Dialect/Linalg/CMakeLists.txt
index 92a3f74177eed..51996a7df576b 100644
--- a/mlir/test/lib/Dialect/Linalg/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Linalg/CMakeLists.txt
@@ -20,7 +20,6 @@ add_mlir_library(MLIRLinalgTestPasses
MLIRBufferizationTransforms
MLIRGPUTransforms
MLIRLinalg
- MLIRLinalgBufferizableOpInterfaceImpl
MLIRLinalgTransforms
MLIRLLVMToLLVMIRTranslation
MLIRMemRef
diff --git a/mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp b/mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
index 9eb68343eaadf..f4e9b871398fe 100644
--- a/mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
+++ b/mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
@@ -17,9 +17,9 @@
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/AffineInterfaceImpl.h"
-#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/Dialect/Linalg/Passes.h"
+#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/SCF/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/StandardOps/IR/Ops.h"
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
@@ -59,7 +59,7 @@ struct TestComprehensiveFunctionBufferize
arith::ArithmeticDialect, AffineDialect>();
affine_ext::registerBufferizableOpInterfaceExternalModels(registry);
arith::registerBufferizableOpInterfaceExternalModels(registry);
- linalg_ext::registerBufferizableOpInterfaceExternalModels(registry);
+ linalg::registerBufferizableOpInterfaceExternalModels(registry);
scf::registerBufferizableOpInterfaceExternalModels(registry);
tensor::registerBufferizableOpInterfaceExternalModels(registry);
vector::registerBufferizableOpInterfaceExternalModels(registry);
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index 4fb2c01892f3f..bb61bb6a9c7b8 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -6841,25 +6841,6 @@ cc_library(
],
)
-cc_library(
- name = "LinalgBufferizableOpInterfaceImpl",
- srcs = [
- "lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp",
- ],
- hdrs = [
- "include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h",
- ],
- includes = ["include"],
- deps = [
- ":BufferizationDialect",
- ":BufferizationTransforms",
- ":IR",
- ":LinalgOps",
- ":LinalgStructuredOpsIncGen",
- ":TensorDialect",
- ],
-)
-
td_library(
name = "LinalgDocTdFiles",
srcs = ["include/mlir/Dialect/Linalg/IR/LinalgDoc.td"],
@@ -7050,6 +7031,7 @@ cc_library(
hdrs = [
"include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h",
"include/mlir/Dialect/Linalg/Passes.h",
+ "include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h",
"include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h",
"include/mlir/Dialect/Linalg/Transforms/HoistPadding.h",
"include/mlir/Dialect/Linalg/Transforms/Hoisting.h",
@@ -7073,7 +7055,6 @@ cc_library(
":DialectUtils",
":IR",
":InferTypeOpInterface",
- ":LinalgBufferizableOpInterfaceImpl",
":LinalgOps",
":LinalgPassIncGen",
":LinalgStructuredOpsIncGen",
diff --git a/utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
index 86aaabedd14f2..a48d35fd71434 100644
--- a/utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
@@ -396,7 +396,6 @@ cc_library(
"//mlir:BufferizationTransforms",
"//mlir:GPUDialect",
"//mlir:IR",
- "//mlir:LinalgBufferizableOpInterfaceImpl",
"//mlir:LinalgOps",
"//mlir:LinalgTransforms",
"//mlir:MemRefDialect",
More information about the Mlir-commits
mailing list