Changeset View
Changeset View
Standalone View
Standalone View
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | void LinalgComprehensiveModuleBufferize::runOnOperation() { | ||||
options.testAnalysisOnly = testAnalysisOnly; | options.testAnalysisOnly = testAnalysisOnly; | ||||
// Enable InitTensorOp elimination. | // Enable InitTensorOp elimination. | ||||
options.addPostAnalysisStep< | options.addPostAnalysisStep< | ||||
linalg_ext::InsertSliceAnchoredInitTensorEliminationStep>(); | linalg_ext::InsertSliceAnchoredInitTensorEliminationStep>(); | ||||
// TODO: Find a way to enable this step automatically when bufferizing tensor | // TODO: Find a way to enable this step automatically when bufferizing tensor | ||||
// dialect ops. | // dialect ops. | ||||
options.addPostAnalysisStep<tensor_ext::InplaceInsertSliceOpAnalysis>(); | options.addPostAnalysisStep<tensor_ext::InplaceInsertSliceOpAnalysis>(); | ||||
if (!allowReturnMemref) | |||||
options.addPostAnalysisStep<scf_ext::AssertDestinationPassingStyle>(); | options.addPostAnalysisStep<scf_ext::AssertDestinationPassingStyle>(); | ||||
ModuleOp moduleOp = getOperation(); | ModuleOp moduleOp = getOperation(); | ||||
applyEnablingTransformations(moduleOp); | applyEnablingTransformations(moduleOp); | ||||
if (failed(runComprehensiveBufferize(moduleOp, options))) { | if (failed(runComprehensiveBufferize(moduleOp, options))) { | ||||
signalPassFailure(); | signalPassFailure(); | ||||
return; | return; | ||||
} | } | ||||
Show All 14 Lines |