Skip to content

Commit debdbed

Browse files
authored
[mlir] Remove dialect specific bufferization passes (Reland) (#93535)
These passes have been depreciated for a long time and replaced by one-shot bufferization. These passes are also unsafe because they do not check for read-after-write conflicts. Relands #93488 which failed on buildbot. Fixes the failure by updating integration tests to use one-shot-bufferize instead.
1 parent 5901d40 commit debdbed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+40
-453
lines changed

mlir/include/mlir/Dialect/Arith/Transforms/Passes.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ namespace arith {
2424
class WideIntEmulationConverter;
2525
class NarrowTypeEmulationConverter;
2626

27-
/// Create a pass to bufferize arith.constant ops.
28-
std::unique_ptr<Pass> createConstantBufferizePass(uint64_t alignment = 0);
29-
3027
/// Adds patterns to emulate wide Arith and Function ops over integer
3128
/// types into supported ones. This is done by splitting original power-of-two
3229
/// i2N integer types into two iN halves.

mlir/include/mlir/Dialect/Arith/Transforms/Passes.td

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,6 @@
1111

1212
include "mlir/Pass/PassBase.td"
1313

14-
def ArithBufferizePass : Pass<"arith-bufferize", "ModuleOp"> {
15-
let summary = "Bufferize Arith dialect ops.";
16-
let description = [{
17-
This pass bufferizes arith dialect ops.
18-
19-
This pass needs to be a module pass because it inserts memref.global
20-
ops into the module, which cannot be done safely from a function pass due to
21-
multi-threading. Most other bufferization passes can run in parallel at
22-
function granularity.
23-
}];
24-
let options = [
25-
Option<"alignment", "alignment", "unsigned", /*default=*/"0",
26-
"Create global memrefs with a specified alignment">,
27-
];
28-
}
29-
3014
def ArithExpandOpsPass : Pass<"arith-expand"> {
3115
let summary = "Legalize Arith ops to be convertible to LLVM.";
3216
let dependentDialects = ["vector::VectorDialect"];

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,6 @@ createPromoteBuffersToStackPass(std::function<bool(Value)> isSmallAlloc);
221221
/// insert_slice ops.
222222
std::unique_ptr<Pass> createEmptyTensorEliminationPass();
223223

224-
/// Create a pass that bufferizes ops from the bufferization dialect.
225-
std::unique_ptr<Pass> createBufferizationBufferizePass();
226-
227224
//===----------------------------------------------------------------------===//
228225
// Registration
229226
//===----------------------------------------------------------------------===//

mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -350,11 +350,6 @@ def FinalizingBufferize : Pass<"finalizing-bufferize", "func::FuncOp"> {
350350
let constructor = "mlir::bufferization::createFinalizingBufferizePass()";
351351
}
352352

353-
def BufferizationBufferize : Pass<"bufferization-bufferize", "func::FuncOp"> {
354-
let summary = "Bufferize the `bufferization` dialect";
355-
let constructor = "mlir::bufferization::createBufferizationBufferizePass()";
356-
}
357-
358353
def DropEquivalentBufferResults : Pass<"drop-equivalent-buffer-results", "ModuleOp"> {
359354
let summary = "Remove MemRef return values that are equivalent to a bbArg";
360355
let description = [{

mlir/include/mlir/Dialect/Linalg/Passes.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ namespace func {
2222
class FuncOp;
2323
} // namespace func
2424

25-
namespace bufferization {
26-
struct OneShotBufferizationOptions;
27-
} // namespace bufferization
28-
2925
#define GEN_PASS_DECL
3026
#include "mlir/Dialect/Linalg/Passes.h.inc" // IWYU pragma: keep
3127

mlir/include/mlir/Dialect/Linalg/Passes.td

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,6 @@ def LinalgInlineScalarOperandsPass : Pass<"linalg-inline-scalar-operands"> {
8989
];
9090
}
9191

92-
def LinalgBufferizePass : Pass<"linalg-bufferize"> {
93-
let summary = "Bufferize the linalg dialect";
94-
let dependentDialects = [
95-
"affine::AffineDialect",
96-
"bufferization::BufferizationDialect",
97-
"linalg::LinalgDialect",
98-
"memref::MemRefDialect",
99-
];
100-
}
101-
10292
def LinalgGeneralizeNamedOpsPass : Pass<"linalg-generalize-named-ops"> {
10393
let summary = "Convert named ops into generic ops";
10494
let dependentDialects = ["linalg::LinalgDialect"];

mlir/include/mlir/Dialect/Shape/Transforms/Passes.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,6 @@ void populateShapeRewritePatterns(RewritePatternSet &patterns);
4747
void populateRemoveShapeConstraintsPatterns(RewritePatternSet &patterns);
4848
std::unique_ptr<OperationPass<func::FuncOp>> createRemoveShapeConstraintsPass();
4949

50-
// Bufferizes shape dialect ops.
51-
//
52-
// Note that most shape dialect ops must be converted to std before
53-
// bufferization happens, as they are intended to be bufferized at the std
54-
// level.
55-
std::unique_ptr<OperationPass<func::FuncOp>> createShapeBufferizePass();
56-
5750
/// Outline the shape computation part by adding shape.func and populate
5851
/// conrresponding mapping infomation into ShapeMappingAnalysis.
5952
std::unique_ptr<OperationPass<ModuleOp>> createOutlineShapeComputationPass();

mlir/include/mlir/Dialect/Shape/Transforms/Passes.td

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,4 @@ def ShapeToShapeLowering : Pass<"shape-to-shape-lowering", "func::FuncOp"> {
103103
let constructor = "mlir::createShapeToShapeLowering()";
104104
}
105105

106-
// TODO: Generalize this to allow any type conversions desired.
107-
def ShapeBufferize : Pass<"shape-bufferize", "func::FuncOp"> {
108-
let summary = "Bufferize the shape dialect.";
109-
let constructor = "mlir::createShapeBufferizePass()";
110-
let dependentDialects = ["bufferization::BufferizationDialect",
111-
"memref::MemRefDialect"];
112-
}
113106
#endif // MLIR_DIALECT_SHAPE_TRANSFORMS_PASSES

mlir/include/mlir/Dialect/Tensor/Transforms/Passes.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ namespace tensor {
2121
/// Creates an instance of the `tensor` subset folding pass.
2222
std::unique_ptr<Pass> createFoldTensorSubsetOpsPass();
2323

24-
/// Creates an instance of the `tensor` dialect bufferization pass.
25-
std::unique_ptr<Pass> createTensorBufferizePass();
26-
2724
//===----------------------------------------------------------------------===//
2825
// Registration
2926
//===----------------------------------------------------------------------===//

mlir/include/mlir/Dialect/Tensor/Transforms/Passes.td

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,4 @@ def FoldTensorSubsetOps : Pass<"fold-tensor-subset-ops"> {
2727
];
2828
}
2929

30-
def TensorBufferize : Pass<"tensor-bufferize", "func::FuncOp"> {
31-
let summary = "Bufferize the `tensor` dialect";
32-
let constructor = "mlir::tensor::createTensorBufferizePass()";
33-
}
34-
3530
#endif // MLIR_DIALECT_TENSOR_TRANSFORMS_PASSES

mlir/include/mlir/Dialect/Vector/Transforms/Passes.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ namespace vector {
1717
#define GEN_PASS_DECL
1818
#include "mlir/Dialect/Vector/Transforms/Passes.h.inc"
1919

20-
/// Creates an instance of the `vector` dialect bufferization pass.
21-
std::unique_ptr<Pass> createVectorBufferizePass();
22-
2320
/// Creates an instance of the `vector.mask` lowering pass.
2421
std::unique_ptr<Pass> createLowerVectorMaskPass();
2522

mlir/include/mlir/Dialect/Vector/Transforms/Passes.td

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@
1111

1212
include "mlir/Pass/PassBase.td"
1313

14-
def VectorBufferize : Pass<"vector-bufferize", "func::FuncOp"> {
15-
let summary = "Bufferize Vector dialect ops";
16-
let constructor = "mlir::vector::createVectorBufferizePass()";
17-
}
18-
1914
def LowerVectorMaskPass : Pass<"lower-vector-mask", "func::FuncOp"> {
2015
let summary = "Lower 'vector.mask' operations";
2116
let constructor = "mlir::vector::createLowerVectorMaskPass()";

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

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

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
add_mlir_dialect_library(MLIRArithTransforms
22
BufferDeallocationOpInterfaceImpl.cpp
33
BufferizableOpInterfaceImpl.cpp
4-
Bufferize.cpp
54
BufferViewFlowOpInterfaceImpl.cpp
65
EmulateUnsupportedFloats.cpp
76
EmulateWideInt.cpp

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

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -320,29 +320,6 @@ struct OneShotBufferizePass
320320
};
321321
} // namespace
322322

323-
namespace {
324-
struct BufferizationBufferizePass
325-
: public bufferization::impl::BufferizationBufferizeBase<
326-
BufferizationBufferizePass> {
327-
void runOnOperation() override {
328-
BufferizationOptions options = getPartialBufferizationOptions();
329-
options.opFilter.allowDialect<BufferizationDialect>();
330-
331-
if (failed(bufferizeOp(getOperation(), options)))
332-
signalPassFailure();
333-
}
334-
335-
void getDependentDialects(DialectRegistry &registry) const override {
336-
registry
337-
.insert<bufferization::BufferizationDialect, memref::MemRefDialect>();
338-
}
339-
};
340-
} // namespace
341-
342-
std::unique_ptr<Pass> mlir::bufferization::createBufferizationBufferizePass() {
343-
return std::make_unique<BufferizationBufferizePass>();
344-
}
345-
346323
std::unique_ptr<Pass> mlir::bufferization::createOneShotBufferizePass() {
347324
return std::make_unique<OneShotBufferizePass>();
348325
}

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

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

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ add_mlir_dialect_library(MLIRLinalgTransforms
22
AllInterfaces.cpp
33
BubbleUpExtractSlice.cpp
44
BufferizableOpInterfaceImpl.cpp
5-
Bufferize.cpp
65
ConstantFold.cpp
76
ConvertToDestinationStyle.cpp
87
ConvertConv2DToImg2Col.cpp

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

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

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
add_mlir_dialect_library(MLIRShapeOpsTransforms
22
BufferizableOpInterfaceImpl.cpp
3-
Bufferize.cpp
43
OutlineShapeComputation.cpp
54
RemoveShapeConstraints.cpp
65
ShapeToShapeLowering.cpp

0 commit comments

Comments
 (0)