History log of /llvm-project/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp (Results 51 – 75 of 91)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init
# dbbd9070 16-Jan-2023 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] Fix use after free error from D141028.

The `candidateSliceOp` was replaces and used in a subsequent
call. Instead just replace its uses. The op is dead and will be
removed wi

[mlir][TilingInterface] Fix use after free error from D141028.

The `candidateSliceOp` was replaces and used in a subsequent
call. Instead just replace its uses. The op is dead and will be
removed with CSE.

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

show more ...


Revision tags: llvmorg-15.0.7
# 9db7d4ed 05-Jan-2023 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] Add an option to tile and fuse to yield replacement for the fused producer.

This patch adds an option to the method that fuses a producer with a
tiled consumer, to also yield

[mlir][TilingInterface] Add an option to tile and fuse to yield replacement for the fused producer.

This patch adds an option to the method that fuses a producer with a
tiled consumer, to also yield from the tiled loops a value that can be
used to replace the original producer. This is only valid if it can be
assertained that the slice of the producer computed within each
iteration of the tiled loop nest does not compute slices of the
producer redundantly. The analysis to derive this is very involved. So
this is left to the caller to assertain. A test is added that mimics
the `scf::tileConsumerAndFuseProducersGreedilyUsingSCFForOp`, but also
yields the values of all fused producers. This can be used as a
reference for how a caller could use this functionality.

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

show more ...


# ce349ff1 06-Dec-2022 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] NFC: Separate out a utility method to perform one step of tile + fuse.

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


# 94f2a6dd 06-Dec-2022 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] NFC: Consolidate yield handling.

Add a new utility method to yield the tiled value as well as
preserving destination passing style.

Differential Revision: https://reviews.ll

[mlir][TilingInterface] NFC: Consolidate yield handling.

Add a new utility method to yield the tiled value as well as
preserving destination passing style.

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

show more ...


# faac8989 05-Jan-2023 Alex Zinenko <zinenko@google.com>

[mlir] fix out-of-bounds in reduction tiling

A transformation tiling a reduction dimension of a Linalg op needs a
tile size for said dimension. When an insufficient number of dimensions
was provided

[mlir] fix out-of-bounds in reduction tiling

A transformation tiling a reduction dimension of a Linalg op needs a
tile size for said dimension. When an insufficient number of dimensions
was provided, it would segfault due to out-of-bounds access to a vector.

Also fix incorrect error reporting in the structured transform op
exercising this functionality.

Reviewed By: springerm, ThomasRaoux

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

show more ...


# cbb09813 17-Dec-2022 Fangrui Song <i@maskray.me>

[mlir] llvm::Optional::value => operator*/operator->

std::optional::value() has undesired exception checking semantics and is
unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS

[mlir] llvm::Optional::value => operator*/operator->

std::optional::value() has undesired exception checking semantics and is
unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS). The
call sites block std::optional migration.

show more ...


# 22426110 14-Dec-2022 Ramkumar Ramachandra <r@artagnon.com>

mlir/tblgen: use std::optional in generation

This is part of an effort to migrate from llvm::Optional to
std::optional. This patch changes the way mlir-tblgen generates .inc
files, and modifies test

mlir/tblgen: use std::optional in generation

This is part of an effort to migrate from llvm::Optional to
std::optional. This patch changes the way mlir-tblgen generates .inc
files, and modifies tests and documentation appropriately. It is a "no
compromises" patch, and doesn't leave the user with an unpleasant mix of
llvm::Optional and std::optional.

A non-trivial change has been made to ControlFlowInterfaces to split one
constructor into two, relating to a build failure on Windows.

See also: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716

Signed-off-by: Ramkumar Ramachandra <r@artagnon.com>

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

show more ...


# b1d3afc9 02-Dec-2022 Hanhan Wang <hanchung@google.com>

[mlir] Factor more common utils to IndexingUtils

Reviewed By: mravishankar

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


Revision tags: llvmorg-15.0.6, llvmorg-15.0.5
# fbfca43e 14-Nov-2022 Mehdi Amini <joker.eph@gmail.com>

Apply clang-tidy fixes for llvm-qualified-auto in TileUsingInterface.cpp (NFC)


# 52ffc728 04-Nov-2022 Hanhan Wang <hanchung@google.com>

[mlir][tiling] Relax tiling to accept generating multiple operations.

Some operations need to generate multiple operations when implementing
the tiling interface. Here is a sound example in IREE, se

[mlir][tiling] Relax tiling to accept generating multiple operations.

Some operations need to generate multiple operations when implementing
the tiling interface. Here is a sound example in IREE, see
https://github.com/iree-org/iree/pull/10905 for more details.

Reviewed By: mravishankar

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

show more ...


# 3310fe55 02-Nov-2022 Thomas Raoux <thomasraoux@google.com>

[mlir][linalg] Add reduction tiling transformation

Add a transformation to tile reduction ops into a parallel operation
followed by a merge operation. This is equivalent to the existing
reduction sp

[mlir][linalg] Add reduction tiling transformation

Add a transformation to tile reduction ops into a parallel operation
followed by a merge operation. This is equivalent to the existing
reduction spliting transformation but using loops instead of using
higher dimensions linalg.

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

show more ...


Revision tags: llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init
# d4c4e491 14-Jul-2022 Nicolas Vasilache <nicolas.vasilache@gmail.com>

[mlir][Linalg] Drop usage of tileWithLinalgTilingOptions in the structured.tile transform

This is on a path to deprecation.
Context: https://discourse.llvm.org/t/psa-retire-tileandfuselinalgops-meth

[mlir][Linalg] Drop usage of tileWithLinalgTilingOptions in the structured.tile transform

This is on a path to deprecation.
Context: https://discourse.llvm.org/t/psa-retire-tileandfuselinalgops-method/63850

As the interface-based transformation is more generic, some additional folding of AffineMin/MaxOp and some extra canonicalizations are needed.
This can be further evolved.

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

show more ...


# 71cf48a6 28-Oct-2022 Hanhan Wang <hanchung@google.com>

[mlir][scf] Enhance sizes computation in tileUsingSCFForOp.

The boundary is always 1 if the tile size is 1.

Reviewed By: mravishankar

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


# b4db15a9 28-Oct-2022 Alexander Belyaev <pifon@google.com>

[mlir] Rename getInputs->getDpsInputs and getOutputs->getDpsInits in DPS interface.

https://discourse.llvm.org/t/rfc-interface-for-destination-style-ops/64056

Differential Revision: https://reviews

[mlir] Rename getInputs->getDpsInputs and getOutputs->getDpsInits in DPS interface.

https://discourse.llvm.org/t/rfc-interface-for-destination-style-ops/64056

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

show more ...


# b169643f 24-Oct-2022 Matthias Springer <springerm@google.com>

[mlir][interfaces] Remove getDestinationOperands from TilingInterface

`getDestinationOperands` was almost a duplicate of `DestinationStyleOpInterface::getOutputOperands`. Now that the interface has

[mlir][interfaces] Remove getDestinationOperands from TilingInterface

`getDestinationOperands` was almost a duplicate of `DestinationStyleOpInterface::getOutputOperands`. Now that the interface has been moved to mlir/Interfaces, it is no longer needed.

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

show more ...


# 6d4baa74 06-Oct-2022 Mehdi Amini <joker.eph@gmail.com>

Apply clang-tidy fixes for performance-unnecessary-value-param in TileUsingInterface.cpp (NFC)


# 2a6f0fb3 06-Oct-2022 Mehdi Amini <joker.eph@gmail.com>

Apply clang-tidy fixes for performance-for-range-copy in TileUsingInterface.cpp (NFC)


# 79150279 10-Oct-2022 Nicolas Vasilache <nicolas.vasilache@gmail.com>

[mlir][Linalg] Retire LinalgStrategyTileAndFusePass and filter-based pattern.

Context: https://discourse.llvm.org/t/psa-retire-linalg-filter-based-patterns/63785

In the process, also retire `tileCo

[mlir][Linalg] Retire LinalgStrategyTileAndFusePass and filter-based pattern.

Context: https://discourse.llvm.org/t/psa-retire-linalg-filter-based-patterns/63785

In the process, also retire `tileConsumerAndFuseProducers` that is now replaced by `tileConsumerAndFuseProducerGreedilyUsingSCFForOp`.

Context: https://discourse.llvm.org/t/psa-retire-tileandfuselinalgops-method/63850

When performing this replacement, a change of behavior appeared: the older `tileConsumerAndFuseProducers` would split the parallel
and non-parallel dimensions automatically and perform a first level of tile-and-fuse on parallel dimensions only and then introduce a
second level of tiling-only on the reduction dimensions. The newer `tileConsumerAndFuseProducerGreedilyUsingSCFForOp` on the other hand
does not perform this breakdown. As a consequence, the transform specification is evolved to produce the same output.

Additionally, replace some uses of `unsigned` by `int64_t` where possible without pulling in larger interface changes (left for a future PR).

Context: https://www.youtube.com/watch?v=Puio5dly9N8

Lastly, tests that were performing tile and fuse and distribute on tensors are retired: the generated IR mixing scf.for, tensors and
distributed processor ids was racy at best ..

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

show more ...


# 67bcf982 30-Sep-2022 Adrian Kuegel <akuegel@google.com>

[mlir][SCF] Apply ClangTidyPerformance finding (NFC)


# abc362a1 29-Sep-2022 Jakub Kuderski <kubak@google.com>

[mlir][arith] Change dialect name from Arithmetic to Arith

Suggested by @lattner in https://discourse.llvm.org/t/rfc-define-precise-arith-semantics/65507/22.

Tested with:
`ninja check-mlir check-ml

[mlir][arith] Change dialect name from Arithmetic to Arith

Suggested by @lattner in https://discourse.llvm.org/t/rfc-define-precise-arith-semantics/65507/22.

Tested with:
`ninja check-mlir check-mlir-integration check-mlir-mlir-spirv-cpu-runner check-mlir-mlir-vulkan-runner check-mlir-examples`

and `bazel build --config=generic_clang @llvm-project//mlir:all`.

Reviewed By: lattner, Mogball, rriddle, jpienaar, mehdi_amini

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

show more ...


# 97f91982 07-Sep-2022 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] NFC Refactor of tile and fuse using `TilingInterface`.

This patch refactors the tiling and tile + fuse implementation using
`TilingInterface`. Primarily, it exposes the funct

[mlir][TilingInterface] NFC Refactor of tile and fuse using `TilingInterface`.

This patch refactors the tiling and tile + fuse implementation using
`TilingInterface`. Primarily, it exposes the functionality as simple
utility functions instead of as a Pattern to allow calling it from a
pattern as it is done in the test today or from within the transform
dialect (in the future). This is a step towards deprecating similar
methods in Linalg dialect.

- The utility methods do not erase the root operations.
- The return value provides the values to use for replacements.

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

show more ...


# 7ee34550 22-Sep-2022 Mahesh Ravishankar <ravishankarm@google.com>

[mlir][TilingInterface] Fix `iter_args` handling in tile (and fuse).

The current approach for handling `iter_args` was to replace all uses
of the value that is used as `init` value with the correspo

[mlir][TilingInterface] Fix `iter_args` handling in tile (and fuse).

The current approach for handling `iter_args` was to replace all uses
of the value that is used as `init` value with the corresponding
region block argument within the `scf.for`. This is not always
correct. Instead a more deliberate approach needs to be taken to
handle these. If the slice being fused represents a slice of the
destination operand of the untiled op, then
- Make the destination of the fused producer the `init` value of the
loop nest
- For the tiled and fused producer op created, replace the slice of
the destination operand with a slice of the corresponding region
iter arg of the innermost loop of the generated loop nest

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

show more ...


# b285d708 29-Aug-2022 Mehdi Amini <joker.eph@gmail.com>

Apply clang-tidy fixes for performance-for-range-copy in TileUsingInterface.cpp (NFC)


# 54794284 31-Aug-2022 Matthias Springer <springerm@google.com>

[mlir][interfaces] Drop `dest`/`tileDestOperands` from TilingInterface

`getTiledImplementation`/`generateResultTileValue` only computes the tiled operation, but does not insert the result into any t

[mlir][interfaces] Drop `dest`/`tileDestOperands` from TilingInterface

`getTiledImplementation`/`generateResultTileValue` only computes the tiled operation, but does not insert the result into any tensor.

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

show more ...


# 954de25a 19-Jul-2022 lorenzo chelini <l.chelini@icloud.com>

[MLIR] TilingInterface: Avoid map when tile divides iteration domain

Reviewed By: ftynse

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


1234