History log of /llvm-project/mlir/lib/Dialect/Tensor/Transforms/EmptyOpPatterns.cpp (Results 1 – 6 of 6)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# c077a4f3 17-Jul-2024 MaheshRavishankar <1663364+MaheshRavishankar@users.noreply.github.com>

[mlir][Tensor] Add pattern to fold concats of empty. (#98994)

A concatenation of empty tensors can be replaced by a single empty
tensor of the concatenated shape. Add this pattern to
`populateFold

[mlir][Tensor] Add pattern to fold concats of empty. (#98994)

A concatenation of empty tensors can be replaced by a single empty
tensor of the concatenated shape. Add this pattern to
`populateFoldTensorEmptyPatterns`.

show more ...


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7
# b5861494 22-May-2024 Adam Siemieniuk <adam.siemieniuk@intel.com>

[mlir][tensor] Fold pack and unpack of empty input tensor (#92247)

Extends `tensor.empty` folding patterns with pack and unpack consumers
to fold away the operations when their source is empty.


Revision tags: 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, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6
# 40052b08 09-Jun-2023 Matthias Springer <me@m-sp.org>

[mlir][tensor] Add option to fold only tensor.empty with a single use

This is useful for transformations such as bufferization, which is looking for tensor.extract_slice/insert_slice pairs.

Also fi

[mlir][tensor] Add option to fold only tensor.empty with a single use

This is useful for transformations such as bufferization, which is looking for tensor.extract_slice/insert_slice pairs.

Also fix the documentation of the corresponding tranform op.

Differential Revision: https://reviews.llvm.org/D152455

show more ...


Revision tags: llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4
# 758329dc 10-Mar-2023 Matthias Springer <me@m-sp.org>

[mlir][NFC] reifyResultShapes: Add extra error checking

This change adds a new helper function `mlir::reifyResultShapes` that calls the corresponding interface method and also checks the result prod

[mlir][NFC] reifyResultShapes: Add extra error checking

This change adds a new helper function `mlir::reifyResultShapes` that calls the corresponding interface method and also checks the result produced by the implementation when running in debug mode. Bugs due to incorrect interface implementations can be difficult to debug.

This helper function also reduces the amount of code needed at call sites: the cast to `ReifyRankedShapedTypeOpInterface` is done in the helper function.

Differential Revision: https://reviews.llvm.org/D145777

show more ...


# 2a5b13e7 03-Mar-2023 Matthias Springer <me@m-sp.org>

[mlir][Interfaces] ReifyRankedShapedTypeOpInterface returns OpFoldResults

`reifyResultShapes` now returns `OpFoldResult`s instead of `Value`s. This is often more efficient because many transformatio

[mlir][Interfaces] ReifyRankedShapedTypeOpInterface returns OpFoldResults

`reifyResultShapes` now returns `OpFoldResult`s instead of `Value`s. This is often more efficient because many transformations immediately attempt to extract a constant from the reified values.

Differential Revision: https://reviews.llvm.org/D145250

show more ...


Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7
# f6fb0a4f 07-Dec-2022 Alexander Belyaev <pifon@google.com>

[mlir] Make patterns for folding tensor.empty optional.

At the moment, they are a part of EmptyOp::getCanonicalizationPatterns. When
extract_slice(tensor.empty) is rewritten as a new tensor.empty, i

[mlir] Make patterns for folding tensor.empty optional.

At the moment, they are a part of EmptyOp::getCanonicalizationPatterns. When
extract_slice(tensor.empty) is rewritten as a new tensor.empty, it could
happen that we end up with two tensor.empty ops, since the original
tensor.empty can have two users. After bufferization such cases result in two
allocations.

Differential Revision: https://reviews.llvm.org/D139308

show more ...