[Mlir-commits] [mlir] 179e174 - [mlir][bufferization][NFC] More documentation for `runOneShotBufferize` (#90445)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Apr 29 04:23:42 PDT 2024
Author: Matthias Springer
Date: 2024-04-29T13:23:37+02:00
New Revision: 179e174945b6c0da462c534504720c9544aebf84
URL: https://github.com/llvm/llvm-project/commit/179e174945b6c0da462c534504720c9544aebf84
DIFF: https://github.com/llvm/llvm-project/commit/179e174945b6c0da462c534504720c9544aebf84.diff
LOG: [mlir][bufferization][NFC] More documentation for `runOneShotBufferize` (#90445)
Added:
Modified:
mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp b/mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
index 531016130d1d8e..2d329a1f3d8892 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
+++ b/mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
@@ -1382,14 +1382,27 @@ LogicalResult
bufferization::runOneShotBufferize(Operation *op,
const OneShotBufferizationOptions &options,
BufferizationStatistics *statistics) {
+ // copy-before-write deactivates the analysis. It cannot be used together with
+ // test-analysis-only.
assert(!(options.copyBeforeWrite && options.testAnalysisOnly) &&
"invalid combination of bufferization flags");
- if (!options.copyBeforeWrite) {
- // If a buffer is copied before every write, no analysis is needed.
+
+ if (options.copyBeforeWrite) {
+ // Copy buffer before each write. No analysis is needed.
+ } else {
+ // Run One-Shot Analysis and insert buffer copies (on the tensor level)
+ // only where needed. This is the default and much more efficient than
+ // copy-before-write.
if (failed(insertTensorCopies(op, options, statistics)))
return failure();
+
+ // If test-analysis-only is set, the IR was annotated with RaW conflict
+ // markers (attributes) during One-Shot Analysis.
+ if (options.testAnalysisOnly)
+ return success();
}
- if (options.testAnalysisOnly)
- return success();
+
+ // Bufferize the op and its nested ops. If options.copyBeforeWrite is set,
+ // a new buffer copy is allocated every time a buffer is written to.
return bufferizeOp(op, options, statistics);
}
More information about the Mlir-commits
mailing list