[mlir] Make linalg-bufferize run on FuncOp
authorSean Silva <silvasean@google.com>
Fri, 13 Nov 2020 23:27:29 +0000 (15:27 -0800)
committerSean Silva <silvasean@google.com>
Fri, 13 Nov 2020 23:43:24 +0000 (15:43 -0800)
That way, it runs in parallel across functions.

mlir/include/mlir/Dialect/Linalg/Passes.h
mlir/include/mlir/Dialect/Linalg/Passes.td
mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp

index 50aec73..620abd9 100644 (file)
@@ -48,7 +48,7 @@ std::unique_ptr<OperationPass<FuncOp>> createConvertLinalgToAffineLoopsPass();
 
 /// Create a pass to convert Linalg operations which work on tensors to use
 /// buffers instead.
-std::unique_ptr<OperationPass<ModuleOp>> createLinalgBufferizePass();
+std::unique_ptr<OperationPass<FuncOp>> createLinalgBufferizePass();
 
 /// Populate patterns that convert `ElementwiseMappable` ops to linalg
 /// parallel loops.
index b9f6c61..07bf93a 100644 (file)
@@ -61,7 +61,7 @@ def LinalgLowerToLoops : FunctionPass<"convert-linalg-to-loops"> {
   let dependentDialects = ["linalg::LinalgDialect", "scf::SCFDialect", "AffineDialect"];
 }
 
-def LinalgBufferize : Pass<"linalg-bufferize", "ModuleOp"> {
+def LinalgBufferize : Pass<"linalg-bufferize", "FuncOp"> {
   let summary = "Bufferize the linalg dialect";
   let constructor = "mlir::createLinalgBufferizePass()";
   let dependentDialects = ["linalg::LinalgDialect"];
index 255a0d4..ec2d1d9 100644 (file)
@@ -356,7 +356,7 @@ struct LinalgBufferizePass : public LinalgBufferizeBase<LinalgBufferizePass> {
 };
 } // end anonymous namespace
 
-std::unique_ptr<OperationPass<ModuleOp>> mlir::createLinalgBufferizePass() {
+std::unique_ptr<OperationPass<FuncOp>> mlir::createLinalgBufferizePass() {
   return std::make_unique<LinalgBufferizePass>();
 }