Skip to content

Commit 41cb504

Browse files
[mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms
This is for consistency with other dialects. Differential Revision: https://reviews.llvm.org/D120190
1 parent 1a2bb03 commit 41cb504

File tree

9 files changed

+19
-62
lines changed

9 files changed

+19
-62
lines changed

mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h renamed to mlir/include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
//===- LinalgInterfaceImpl.h - Linalg Impl. of BufferizableOpInterface ----===//
1+
//===- BufferizableOpInterfaceImpl.h - Impl. of BufferizableOpInterface ---===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#ifndef MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
10-
#define MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
9+
#ifndef MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H
10+
#define MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H
1111

1212
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
1313

1414
namespace mlir {
1515
class DialectRegistry;
1616

1717
namespace linalg {
18-
namespace comprehensive_bufferize {
19-
namespace linalg_ext {
2018

2119
/// A function that matches anchor OpOperands for InitTensorOp elimination.
2220
/// If an OpOperand is matched, the function should populate the SmallVector
@@ -53,9 +51,7 @@ LogicalResult insertSliceAnchoredInitTensorEliminationStep(
5351

5452
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry);
5553

56-
} // namespace linalg_ext
57-
} // namespace comprehensive_bufferize
5854
} // namespace linalg
5955
} // namespace mlir
6056

61-
#endif // MLIR_DIALECT_LINALG_COMPREHENSIVEBUFFERIZE_LINALGINTERFACEIMPL_H
57+
#endif // MLIR_DIALECT_LINALG_BUFFERIZABLEOPINTERFACEIMPL_H

mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
set(LLVM_OPTIONAL_SOURCES
22
AffineInterfaceImpl.cpp
3-
LinalgInterfaceImpl.cpp
43
ModuleBufferization.cpp
5-
StdInterfaceImpl.cpp
6-
VectorInterfaceImpl.cpp
74
)
85

96
add_mlir_dialect_library(MLIRAffineBufferizableOpInterfaceImpl
@@ -14,17 +11,6 @@ add_mlir_dialect_library(MLIRAffineBufferizableOpInterfaceImpl
1411
MLIRBufferization
1512
)
1613

17-
add_mlir_dialect_library(MLIRLinalgBufferizableOpInterfaceImpl
18-
LinalgInterfaceImpl.cpp
19-
20-
LINK_LIBS PUBLIC
21-
MLIRBufferization
22-
MLIRBufferizationTransforms
23-
MLIRIR
24-
MLIRLinalg
25-
MLIRTensor
26-
)
27-
2814
add_mlir_dialect_library(MLIRModuleBufferization
2915
ModuleBufferization.cpp
3016

mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp renamed to mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
//===- LinalgInterfaceImpl.cpp - Linalg Impl. of BufferizableOpInterface --===//
1+
//===- BufferizableOpInterfaceImpl.cpp - Impl. of BufferizableOpInterface -===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
9+
#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
1010
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
1111
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
1212
#include "mlir/Dialect/Linalg/IR/Linalg.h"
@@ -17,7 +17,6 @@
1717

1818
using namespace mlir;
1919
using namespace linalg;
20-
using namespace comprehensive_bufferize;
2120
using namespace mlir::bufferization;
2221

2322
namespace {
@@ -529,8 +528,7 @@ findValidInsertionPoint(Operation *initTensorOp,
529528
/// OpOperand. "Anchored" means that there is a path on the reverse SSA use-def
530529
/// chain, starting from the OpOperand and always following the aliasing
531530
/// OpOperand, that eventually ends at a single InitTensorOp.
532-
LogicalResult
533-
mlir::linalg::comprehensive_bufferize::linalg_ext::eliminateInitTensors(
531+
LogicalResult mlir::linalg::eliminateInitTensors(
534532
Operation *op, BufferizationState &state, BufferizationAliasInfo &aliasInfo,
535533
AnchorMatchFn anchorMatchFunc, RewriteFn rewriteFunc,
536534
SmallVector<Operation *> &newOps) {
@@ -632,10 +630,9 @@ mlir::linalg::comprehensive_bufferize::linalg_ext::eliminateInitTensors(
632630
///
633631
/// Note that the newly inserted ExtractSliceOp may have to bufferize
634632
/// out-of-place due to RaW conflicts.
635-
LogicalResult mlir::linalg::comprehensive_bufferize::linalg_ext::
636-
insertSliceAnchoredInitTensorEliminationStep(
637-
Operation *op, BufferizationState &state,
638-
BufferizationAliasInfo &aliasInfo, SmallVector<Operation *> &newOps) {
633+
LogicalResult mlir::linalg::insertSliceAnchoredInitTensorEliminationStep(
634+
Operation *op, BufferizationState &state, BufferizationAliasInfo &aliasInfo,
635+
SmallVector<Operation *> &newOps) {
639636
return eliminateInitTensors(
640637
op, state, aliasInfo,
641638
/*anchorMatchFunc=*/
@@ -688,8 +685,8 @@ LogicalResult mlir::linalg::comprehensive_bufferize::linalg_ext::
688685
newOps);
689686
}
690687

691-
void mlir::linalg::comprehensive_bufferize::linalg_ext::
692-
registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry) {
688+
void mlir::linalg::registerBufferizableOpInterfaceExternalModels(
689+
DialectRegistry &registry) {
693690
registry.addOpInterface<linalg::InitTensorOp, InitTensorOpInterface>();
694691
registry.addOpInterface<linalg::TiledLoopOp, TiledLoopOpInterface>();
695692
registry.addOpInterface<linalg::YieldOp, YieldOpInterface>();

mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
add_mlir_dialect_library(MLIRLinalgTransforms
2+
BufferizableOpInterfaceImpl.cpp
23
Bufferize.cpp
34
CodegenStrategy.cpp
45
ComprehensiveBufferizePass.cpp
@@ -43,7 +44,6 @@ add_mlir_dialect_library(MLIRLinalgTransforms
4344
MLIRMemRef
4445
MLIRLinalg
4546
MLIRLinalgAnalysis
46-
MLIRLinalgBufferizableOpInterfaceImpl
4747
MLIRLinalgUtils
4848
MLIRModuleBufferization
4949
MLIRSCF

mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
1414
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
1515
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/AffineInterfaceImpl.h"
16-
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
1716
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.h"
1817
#include "mlir/Dialect/Linalg/Passes.h"
18+
#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
1919
#include "mlir/Dialect/SCF/BufferizableOpInterfaceImpl.h"
2020
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
2121
#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
@@ -52,7 +52,7 @@ struct LinalgComprehensiveModuleBufferize
5252
arith::ArithmeticDialect, StandardOpsDialect, AffineDialect>();
5353
affine_ext::registerBufferizableOpInterfaceExternalModels(registry);
5454
arith::registerBufferizableOpInterfaceExternalModels(registry);
55-
linalg_ext::registerBufferizableOpInterfaceExternalModels(registry);
55+
linalg::registerBufferizableOpInterfaceExternalModels(registry);
5656
scf::registerBufferizableOpInterfaceExternalModels(registry);
5757
std_ext::registerModuleBufferizationExternalModels(registry);
5858
tensor::registerBufferizableOpInterfaceExternalModels(registry);
@@ -98,8 +98,7 @@ void LinalgComprehensiveModuleBufferize::runOnOperation() {
9898
opt.printConflicts = printConflicts;
9999
opt.testAnalysisOnly = testAnalysisOnly;
100100
if (initTensorElimination) {
101-
opt.addPostAnalysisStep(
102-
linalg_ext::insertSliceAnchoredInitTensorEliminationStep);
101+
opt.addPostAnalysisStep(insertSliceAnchoredInitTensorEliminationStep);
103102
}
104103
} else {
105104
opt = *options;

mlir/test/lib/Dialect/Linalg/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ add_mlir_library(MLIRLinalgTestPasses
2020
MLIRBufferizationTransforms
2121
MLIRGPUTransforms
2222
MLIRLinalg
23-
MLIRLinalgBufferizableOpInterfaceImpl
2423
MLIRLinalgTransforms
2524
MLIRLLVMToLLVMIRTranslation
2625
MLIRMemRef

mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
1818
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
1919
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/AffineInterfaceImpl.h"
20-
#include "mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h"
2120
#include "mlir/Dialect/Linalg/IR/Linalg.h"
2221
#include "mlir/Dialect/Linalg/Passes.h"
22+
#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
2323
#include "mlir/Dialect/SCF/BufferizableOpInterfaceImpl.h"
2424
#include "mlir/Dialect/StandardOps/IR/Ops.h"
2525
#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h"
@@ -59,7 +59,7 @@ struct TestComprehensiveFunctionBufferize
5959
arith::ArithmeticDialect, AffineDialect>();
6060
affine_ext::registerBufferizableOpInterfaceExternalModels(registry);
6161
arith::registerBufferizableOpInterfaceExternalModels(registry);
62-
linalg_ext::registerBufferizableOpInterfaceExternalModels(registry);
62+
linalg::registerBufferizableOpInterfaceExternalModels(registry);
6363
scf::registerBufferizableOpInterfaceExternalModels(registry);
6464
tensor::registerBufferizableOpInterfaceExternalModels(registry);
6565
vector::registerBufferizableOpInterfaceExternalModels(registry);

utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6841,25 +6841,6 @@ cc_library(
68416841
],
68426842
)
68436843

6844-
cc_library(
6845-
name = "LinalgBufferizableOpInterfaceImpl",
6846-
srcs = [
6847-
"lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp",
6848-
],
6849-
hdrs = [
6850-
"include/mlir/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.h",
6851-
],
6852-
includes = ["include"],
6853-
deps = [
6854-
":BufferizationDialect",
6855-
":BufferizationTransforms",
6856-
":IR",
6857-
":LinalgOps",
6858-
":LinalgStructuredOpsIncGen",
6859-
":TensorDialect",
6860-
],
6861-
)
6862-
68636844
td_library(
68646845
name = "LinalgDocTdFiles",
68656846
srcs = ["include/mlir/Dialect/Linalg/IR/LinalgDoc.td"],
@@ -7050,6 +7031,7 @@ cc_library(
70507031
hdrs = [
70517032
"include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h",
70527033
"include/mlir/Dialect/Linalg/Passes.h",
7034+
"include/mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h",
70537035
"include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h",
70547036
"include/mlir/Dialect/Linalg/Transforms/HoistPadding.h",
70557037
"include/mlir/Dialect/Linalg/Transforms/Hoisting.h",
@@ -7073,7 +7055,6 @@ cc_library(
70737055
":DialectUtils",
70747056
":IR",
70757057
":InferTypeOpInterface",
7076-
":LinalgBufferizableOpInterfaceImpl",
70777058
":LinalgOps",
70787059
":LinalgPassIncGen",
70797060
":LinalgStructuredOpsIncGen",

utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,6 @@ cc_library(
396396
"//mlir:BufferizationTransforms",
397397
"//mlir:GPUDialect",
398398
"//mlir:IR",
399-
"//mlir:LinalgBufferizableOpInterfaceImpl",
400399
"//mlir:LinalgOps",
401400
"//mlir:LinalgTransforms",
402401
"//mlir:MemRefDialect",

0 commit comments

Comments
 (0)