[Mlir-commits] [mlir] [mlir][bufferization] Ownership-based deallocation: Allow manual (de)allocs (PR #68648)
Renato Golin
llvmlistbot at llvm.org
Wed Jan 3 03:27:48 PST 2024
================
@@ -856,13 +857,32 @@ FailureOr<Operation *> BufferDeallocation::handleInterface(CallOpInterface op) {
FailureOr<Operation *>
BufferDeallocation::handleInterface(MemoryEffectOpInterface op) {
auto *block = op->getBlock();
+ OpBuilder builder = OpBuilder::atBlockBegin(block);
- for (auto operand : llvm::make_filter_range(op->getOperands(), isMemref))
- if (op.getEffectOnValue<MemoryEffects::Free>(operand).has_value())
- return op->emitError(
- "memory free side-effect on MemRef value not supported!");
+ for (auto operand : llvm::make_filter_range(op->getOperands(), isMemref)) {
+ if (op.getEffectOnValue<MemoryEffects::Free>(operand).has_value()) {
+ if (!op->hasAttr(BufferizationDialect::kManualDeallocation))
+ return op->emitError(
+ "memory free side-effect on MemRef value not supported!");
----------------
rengolin wrote:
This is one of the things that confused me in #72289.
https://github.com/llvm/llvm-project/pull/68648
More information about the Mlir-commits
mailing list