diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td index 3bbb8b02c644e..b979f9df620d2 100644 --- a/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td +++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td @@ -450,6 +450,10 @@ def OneShotBufferizePass : Pass<"one-shot-bufferize", "ModuleOp"> { Option<"bufferAlignment", "buffer-alignment", "uint64_t", /*default=*/"64", "Sets the alignment of newly allocated buffers.">, + Option<"enforceAliasingInvariants", "enforce-aliasing-invariants", "bool", + /*default=*/"true", + "Enforce aliasing Op/Operand/OpResult invariants with buffer" + " copies.">, ]; let statistics = [ diff --git a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp index c0e3fca428376..f4891a317476d 100644 --- a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp +++ b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp @@ -81,6 +81,7 @@ struct OneShotBufferizePass opt.allowUnknownOps = allowUnknownOps; opt.analysisFuzzerSeed = analysisFuzzerSeed; opt.analysisHeuristic = parseHeuristicOption(analysisHeuristic); + opt.enforceAliasingInvariants = enforceAliasingInvariants; opt.copyBeforeWrite = copyBeforeWrite; opt.dumpAliasSets = dumpAliasSets; opt.setFunctionBoundaryTypeConversion(