9 #ifndef MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_TRANSFORMS_H
10 #define MLIR_DIALECT_BUFFERIZATION_TRANSFORMS_TRANSFORMS_H
16 namespace bufferization {
18 struct BufferizationStatistics;
19 class OneShotAnalysisState;
20 struct OneShotBufferizationOptions;
43 OneShotAnalysisState &state);
53 const OneShotBufferizationOptions &
options,
54 BufferizationStatistics *statistics =
nullptr);
static llvm::ManagedStatic< PassManagerOptions > options
void hoistBuffersFromLoops(Operation *op)
Within the given operation, hoist buffers from loops where possible.
void populateEmptyTensorToAllocTensorPattern(RewritePatternSet &patterns)
Populate patterns to lower tensor.empty ops to bufferization.alloc_tensor ops.
LogicalResult insertTensorCopies(Operation *op, const OneShotBufferizationOptions &options, BufferizationStatistics *statistics=nullptr)
Resolve RaW and other conflicts by inserting bufferization.alloc_tensor ops.
LogicalResult eliminateEmptyTensors(RewriterBase &rewriter, Operation *op)
Try to eliminate "tensor.empty" ops inside op.
Include the generated interface declarations.