Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4
# 4d80eff8 23-Oct-2023 Matthias Springer <me@m-sp.org>

[mlir][bufferization] Ownership-based deallocation: Allow manual (de)allocs (#68648)

Add a new attribute `bufferization.manual_deallocation` that can be
attached to allocation and deallocation ops.

[mlir][bufferization] Ownership-based deallocation: Allow manual (de)allocs (#68648)

Add a new attribute `bufferization.manual_deallocation` that can be
attached to allocation and deallocation ops. Buffers that are allocated
with this attribute are assigned an ownership of "false". Such buffers
can be deallocated manually (e.g., with `memref.dealloc`) if the
deallocation op also has the attribute set. Previously, the
ownership-based buffer deallocation pass used to reject IR with existing
deallocation ops. This is no longer the case if such ops have this new
attribute.

This change is useful for the sparse compiler, which currently
deallocates the sparse tensor buffers by itself.

show more ...


Revision tags: llvmorg-17.0.3, llvmorg-17.0.2
# 6a651c7f 28-Sep-2023 Martin Erhart <merhart@google.com>

Revert "[mlir][bufferization] Don't clone on unknown ownership and verify function boundary ABI (#66626)"

This reverts commit aa9eb47da2e501d3505de733240eb89c9a0ea2cf.
It introduced a double free in

Revert "[mlir][bufferization] Don't clone on unknown ownership and verify function boundary ABI (#66626)"

This reverts commit aa9eb47da2e501d3505de733240eb89c9a0ea2cf.
It introduced a double free in a test case. Reverting to have some time
for fixing this and relanding later.

show more ...


# aa9eb47d 28-Sep-2023 Martin Erhart <merhart@google.com>

[mlir][bufferization] Don't clone on unknown ownership and verify function boundary ABI (#66626)

Inserting clones requires a lot of assumptions to hold on the input IR, e.g., all writes to a buffer

[mlir][bufferization] Don't clone on unknown ownership and verify function boundary ABI (#66626)

Inserting clones requires a lot of assumptions to hold on the input IR, e.g., all writes to a buffer need to dominate all reads. This is not guaranteed by one-shot bufferization and isn't easy to verify, thus it could quickly lead to incorrect results that are hard to debug. This commit changes the mechanism of how an ownership indicator is materialized when there is not already a unique ownership present. Additionally, we don't create copies of returned memrefs anymore when we don't have ownership. Instead, we insert assert operations to make sure we have ownership at runtime, or otherwise report to the user that correctness could not be guaranteed.

show more ...


Revision tags: llvmorg-17.0.1, llvmorg-17.0.0
# 08b7a71b 15-Sep-2023 Martin Erhart <merhart@google.com>

[mlir][bufferization] Define a pipeline for buffer deallocation (#66352)

Since ownership based buffer deallocation requires a few passes to be run in a somewhat fixed sequence, it makes sense to hav

[mlir][bufferization] Define a pipeline for buffer deallocation (#66352)

Since ownership based buffer deallocation requires a few passes to be run in a somewhat fixed sequence, it makes sense to have a pipeline for convenience (and to reduce the number of transform ops to represent default deallocation).

show more ...


# 01334d1a 14-Sep-2023 Martin Erhart <merhart@google.com>

[mlir][bufferization] Add an ownership based buffer deallocation pass (#66337)

Add a new Buffer Deallocation pass with the intend to replace the old
one. For now it is added as a separate pass alon

[mlir][bufferization] Add an ownership based buffer deallocation pass (#66337)

Add a new Buffer Deallocation pass with the intend to replace the old
one. For now it is added as a separate pass alongside in order to allow
downstream users to migrate over gradually. This new pass has the goal
of inserting fewer clone operations and supporting additional use-cases.
Please refer to the Buffer Deallocation section in the updated
Bufferization.md file for more information on how this new pass works.

show more ...