Skip to content

Commit 28b2f79

Browse files
[mlir][bufferize][NFC] Consolidate transform header files
Differential Revision: https://reviews.llvm.org/D137830
1 parent 1e2c20f commit 28b2f79

File tree

8 files changed

+34
-36
lines changed

8 files changed

+34
-36
lines changed

mlir/include/mlir/Dialect/Bufferization/Transforms/TensorCopyInsertion.h

Lines changed: 0 additions & 26 deletions
This file was deleted.

mlir/include/mlir/Dialect/Bufferization/Transforms/EmptyTensorElimination.h renamed to mlir/include/mlir/Dialect/Bufferization/Transforms/Transforms.h

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
//===- EmptyTensorElimination.h - tensor.empty op elimination -------------===//
1+
//===- Transforms.h - Bufferization and related transforms ------*- C++ -*-===//
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_BUFFERIZATION_TRANSFORMS_EMPTYTENSORELIMINATION_H
10-
#define MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_EMPTYTENSORELIMINATION_H
9+
#ifndef MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_TRANSFORMS_H
10+
#define MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_TRANSFORMS_H
1111

1212
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
13+
#include "mlir/IR/Operation.h"
1314

1415
namespace mlir {
1516
namespace bufferization {
17+
class AnalysisState;
18+
struct OneShotBufferizationOptions;
1619

1720
/// A function that matches anchor OpOperands for tensor::EmptyOp elimination.
1821
/// If an OpOperand is matched, the function should populate the SmallVector
@@ -42,7 +45,22 @@ LogicalResult eliminateEmptyTensors(RewriterBase &rewriter, Operation *op,
4245
LogicalResult insertSliceAnchoredEmptyTensorEliminationStep(
4346
RewriterBase &rewriter, Operation *op, bufferization::AnalysisState &state);
4447

48+
/// Resolve RaW and other conflicts by inserting bufferization.alloc_tensor ops.
49+
/// After applying this transform, the IR can be bufferized without inserting
50+
/// additional buffer allocations.
51+
LogicalResult insertTensorCopies(Operation *op,
52+
const OneShotBufferizationOptions &options);
53+
54+
/// Resolve RaW and other conflicts by inserting bufferization.alloc_tensor ops.
55+
/// After applying this transform, the IR can be bufferized without inserting
56+
/// additional buffer allocations.
57+
LogicalResult insertTensorCopies(Operation *op, const AnalysisState &state);
58+
59+
/// Populate patterns to lower tensor.empty ops to bufferization.alloc_tensor
60+
/// ops.
61+
void populateEmptyTensorToAllocTensorPattern(RewritePatternSet &patterns);
62+
4563
} // namespace bufferization
4664
} // namespace mlir
4765

48-
#endif // MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_EMPTYTENSORELIMINATION_H
66+
#endif // MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_TRANSFORMS_H

mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "mlir/Dialect/Bufferization/Transforms/Bufferize.h"
1414
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
1515
#include "mlir/Dialect/Bufferization/Transforms/OneShotModuleBufferize.h"
16-
#include "mlir/Dialect/Bufferization/Transforms/TensorCopyInsertion.h"
16+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
1717
#include "mlir/Dialect/Func/IR/FuncOps.h"
1818
#include "mlir/Dialect/MemRef/IR/MemRef.h"
1919
#include "mlir/IR/Operation.h"

mlir/lib/Dialect/Bufferization/Transforms/EmptyTensorElimination.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
1212
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
13-
#include "mlir/Dialect/Bufferization/Transforms/EmptyTensorElimination.h"
1413
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
14+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
1515
#include "mlir/Dialect/Tensor/IR/Tensor.h"
1616
#include "mlir/IR/Dominance.h"
1717
#include "mlir/Pass/Pass.h"

mlir/lib/Dialect/Bufferization/Transforms/EmptyTensorToAllocTensor.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "mlir/Dialect/Bufferization/Transforms/Passes.h"
1010

1111
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
12+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
1213
#include "mlir/Dialect/Tensor/IR/Tensor.h"
1314
#include "mlir/Pass/Pass.h"
1415
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
@@ -50,10 +51,15 @@ struct EmptyTensorToAllocTensor
5051
};
5152
} // namespace
5253

54+
void bufferization::populateEmptyTensorToAllocTensorPattern(
55+
RewritePatternSet &patterns) {
56+
patterns.insert<EmptyTensorLoweringPattern>(patterns.getContext());
57+
}
58+
5359
void EmptyTensorToAllocTensor::runOnOperation() {
5460
Operation *op = getOperation();
5561
RewritePatternSet patterns(op->getContext());
56-
patterns.insert<EmptyTensorLoweringPattern>(op->getContext());
62+
populateEmptyTensorToAllocTensorPattern(patterns);
5763
if (failed(applyPatternsAndFoldGreedily(op, std::move(patterns))))
5864
signalPassFailure();
5965
}

mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
4747
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
4848
#include "mlir/Dialect/Bufferization/Transforms/Bufferize.h"
49-
#include "mlir/Dialect/Bufferization/Transforms/TensorCopyInsertion.h"
49+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
5050
#include "mlir/Dialect/Func/IR/FuncOps.h"
5151
#include "mlir/Dialect/MemRef/IR/MemRef.h"
5252
#include "mlir/IR/AsmState.h"

mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
#include "mlir/Dialect/Bufferization/Transforms/Bufferize.h"
6565
#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"
6666
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
67-
#include "mlir/Dialect/Bufferization/Transforms/TensorCopyInsertion.h"
67+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
6868
#include "mlir/Dialect/Func/IR/FuncOps.h"
6969
#include "mlir/Dialect/MemRef/IR/MemRef.h"
7070
#include "mlir/IR/Operation.h"

mlir/lib/Dialect/Bufferization/Transforms/TensorCopyInsertion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "mlir/Dialect/Bufferization/Transforms/Bufferize.h"
1414
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
1515
#include "mlir/Dialect/Bufferization/Transforms/OneShotModuleBufferize.h"
16-
#include "mlir/Dialect/Bufferization/Transforms/TensorCopyInsertion.h"
16+
#include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
1717
#include "mlir/Dialect/Func/IR/FuncOps.h"
1818

1919
namespace mlir {

0 commit comments

Comments
 (0)