Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
eb6c4197 |
| 20-Dec-2024 |
Matthias Springer <me@m-sp.org> |
[mlir][CF] Split `cf-to-llvm` from `func-to-llvm` (#120580)
Do not run `cf-to-llvm` as part of `func-to-llvm`. This commit fixes
https://github.com/llvm/llvm-project/issues/70982.
This commit ch
[mlir][CF] Split `cf-to-llvm` from `func-to-llvm` (#120580)
Do not run `cf-to-llvm` as part of `func-to-llvm`. This commit fixes
https://github.com/llvm/llvm-project/issues/70982.
This commit changes the way how `func.func` ops are lowered to LLVM.
Previously, the signature of the entire region (i.e., entry block and
all other blocks in the `func.func` op) was converted as part of the
`func.func` lowering pattern.
Now, only the entry block is converted. The remaining block signatures
are converted together with `cf.br` and `cf.cond_br` as part of
`cf-to-llvm`. All unstructured control flow is not converted as part of
a single pass (`cf-to-llvm`). `func-to-llvm` no longer deals with
unstructured control flow.
Also add more test cases for control flow dialect ops.
Note: This PR is in preparation of #120431, which adds an additional
GPU-specific lowering for `cf.assert`. This was a problem because
`cf.assert` used to be converted as part of `func-to-llvm`.
Note for LLVM integration: If you see failures, add
`-convert-cf-to-llvm` to your pass pipeline.
show more ...
|
#
53d080c5 |
| 20-Dec-2024 |
Matthias Springer <me@m-sp.org> |
[mlir][Arith] Remove `arith-to-llvm` from `func-to-llvm` (#120548)
Do not run `arith-to-llvm` as part of `func-to-llvm`. This commit partly
fixes #70982.
Also simplify the pass pipeline for two
[mlir][Arith] Remove `arith-to-llvm` from `func-to-llvm` (#120548)
Do not run `arith-to-llvm` as part of `func-to-llvm`. This commit partly
fixes #70982.
Also simplify the pass pipeline for two math dialect integration tests.
Note for LLVM integration: If you see failures, add `arith-to-llvm` to your pass pipeline.
show more ...
|
Revision tags: 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, 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 |
|
#
f6643263 |
| 30-Oct-2023 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove the opaque pointers flag from tools
This has been the default for a while and the flags are slowly going away. NFCI.
|
#
6a0f6dd8 |
| 30-Oct-2023 |
Christian Ulmann <christian.ulmann@nextsilicon.com> |
Revert "[MLIR][FuncToLLVM] Remove typed pointer support (#70574)"
This reverts commit 130b149ba92265d09fc7a08c116506f68982cc9b due to it breaking nvidia build bots. Apparently, there are other users
Revert "[MLIR][FuncToLLVM] Remove typed pointer support (#70574)"
This reverts commit 130b149ba92265d09fc7a08c116506f68982cc9b due to it breaking nvidia build bots. Apparently, there are other users of the conversion options that were changed in the reverted commit.
show more ...
|
#
130b149b |
| 30-Oct-2023 |
Christian Ulmann <christian.ulmann@nextsilicon.com> |
[MLIR][FuncToLLVM] Remove typed pointer support (#70574)
This commit removes the support for lowering Func to LLVM dialect with
typed pointers. Typed pointers have been deprecated for a while now a
[MLIR][FuncToLLVM] Remove typed pointer support (#70574)
This commit removes the support for lowering Func to LLVM dialect with
typed pointers. Typed pointers have been deprecated for a while now and
it's planned to soon remove them from the LLVM dialect.
Related PSA:
https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502
show more ...
|
Revision tags: 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 |
|
#
df852599 |
| 18-Jul-2023 |
Krzysztof Drewniak <Krzysztof.Drewniak@amd.com> |
[mlir] Split up VectorToLLVM pass
Currently, the VectorToLLVM patterns are built into a library along with the corresponding pass, which also pulls in all the platform-specific vector dialects (like
[mlir] Split up VectorToLLVM pass
Currently, the VectorToLLVM patterns are built into a library along with the corresponding pass, which also pulls in all the platform-specific vector dialects (like AMXDialect) to apply all the vector to LLVM conversions.
This causes dependency bloat when writing libraries - for example the GPU to LLVM passes, which use the vector to LLVM patterns, don't need the X86Vector dialect to be present at all.
This commit partitions the library into VectorToLLVM and VectorToLLVMPass, where the latter pulls in all the other vector transformations.
Reviewed By: nicolasvasilache, mehdi_amini
Differential Revision: https://reviews.llvm.org/D158287
show more ...
|
#
52556c8e |
| 26-Jul-2023 |
Nicolas Vasilache <nicolasvasilache@users.noreply.github.com> |
[mlir][Linalg] NFC - Retire LinalgToLLVM pass
|
Revision tags: llvmorg-16.0.6, 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 |
|
#
83b59792 |
| 24-Feb-2023 |
Markus Böck <markus.boeck02@gmail.com> |
[mlir][LLVM] Enable opaque-pointers in e2e lowering test pass
Part of https://discourse.llvm.org/t/rfc-switching-the-llvm-dialect-and-dialect-lowerings-to-opaque-pointers/68179
Given this is only a
[mlir][LLVM] Enable opaque-pointers in e2e lowering test pass
Part of https://discourse.llvm.org/t/rfc-switching-the-llvm-dialect-and-dialect-lowerings-to-opaque-pointers/68179
Given this is only a test pass I believe it should be fine to switch it to opaque-pointers entirely while migrating.
Differential Revision: https://reviews.llvm.org/D144726
show more ...
|
Revision tags: llvmorg-16.0.0-rc3 |
|
#
cd4ca2d7 |
| 10-Feb-2023 |
Markus Böck <markus.boeck02@gmail.com> |
[mlir] Port Conversion Passes to LLVM to use TableGen generated constructors and options
See https://github.com/llvm/llvm-project/issues/57475 for more context.
Using auto-generated constructors an
[mlir] Port Conversion Passes to LLVM to use TableGen generated constructors and options
See https://github.com/llvm/llvm-project/issues/57475 for more context.
Using auto-generated constructors and options has significant advantages: * It forces a uniform style and expectation for consuming a pass * It allows to very easily add, remove or change options to a pass by simply making the changes in TableGen * Its less code
This patch in particular ports all the conversion passes which lower to LLVM to use the auto generated constructors and options. For the most part, care was taken so that auto generated constructor functions have the same name as they previously did. Only following slight breaking changes (which I consider as worth the churn) have been made: * `mlir::cf::createConvertControlFlowToLLVMPass` has been moved to the `mlir` namespace. This is consistent with basically all conversion passes * `createGpuToLLVMConversionPass` now takes a proper options struct array for its pass options. The pass options are now also autogenerated. * `LowerVectorToLLVMOptions` has been replaced by the autogenerated `ConvertVectorToLLVMPassOptions` which is automatically kept up to date by TableGen * I had to move one function in the GPU to LLVM lowering as it is used as default value for an option. * All passes that previously returned `unique_ptr<OperationPass<...>>` now simply return `unique_ptr<Pass>`
Differential Revision: https://reviews.llvm.org/D143773
show more ...
|
Revision tags: llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init |
|
#
cb4ccd38 |
| 24-Jan-2023 |
Quentin Colombet <quentin.colombet@gmail.com> |
[mlir][Conversion] Rename the MemRefToLLVM pass
Since the recent MemRef refactoring that centralizes the lowering of complex MemRef operations outside of the conversion framework, the MemRefToLLVM p
[mlir][Conversion] Rename the MemRefToLLVM pass
Since the recent MemRef refactoring that centralizes the lowering of complex MemRef operations outside of the conversion framework, the MemRefToLLVM pass doesn't directly convert these complex operations.
Instead, to fully convert the whole MemRef dialect space, MemRefToLLVM needs to run after `expand-strided-metadata`.
Make this more obvious by changing the name of the pass and the option associated with it from `convert-memref-to-llvm` to `finalize-memref-to-llvm`. The word "finalize" conveys that this pass needs to run after something else and that something else is documented in its tablegen description.
This is a follow-up patch related to the conversation at: https://discourse.llvm.org/t/psa-you-need-to-run-expand-strided-metadata-before-memref-to-llvm-now/66956/14
Differential Revision: https://reviews.llvm.org/D142463
show more ...
|
Revision tags: llvmorg-15.0.7 |
|
#
2d0ca6b6 |
| 12-Dec-2022 |
Quentin Colombet <quentin.colombet@gmail.com> |
[mlir][test] Add expand-strided-metadata to lower-to-llvm
This patch adds the `ExpandStridedMetadataPass` to the LowerToLLVM named pipeline. This is required now that "complex" memref operations, li
[mlir][test] Add expand-strided-metadata to lower-to-llvm
This patch adds the `ExpandStridedMetadataPass` to the LowerToLLVM named pipeline. This is required now that "complex" memref operations, like subviews, need to be expanded before being lowered.
Differential Revision: https://reviews.llvm.org/D139841
show more ...
|
#
9983d213 |
| 12-Dec-2022 |
Quentin Colombet <quentin.colombet@gmail.com> |
[mlir][NFC] Make test-lower-to-llvm a named pipeline
This patch changes the `test-lower-to-llvm` pass into a named pipeline. The functionality is unchanged but thanks to this change, we don't have t
[mlir][NFC] Make test-lower-to-llvm a named pipeline
This patch changes the `test-lower-to-llvm` pass into a named pipeline. The functionality is unchanged but thanks to this change, we don't have to pull the dependencies of all the passes that this pass calls. In other words, `TestLowerToLLVMPass::getDependDialects` was supposed to transitively declare all the dialects that were used in the union of all the invoked passes.
NFC
Differential Revision: https://reviews.llvm.org/D139840
show more ...
|
Revision tags: llvmorg-15.0.6 |
|
#
6e92d3fe |
| 25-Nov-2022 |
Nicolas Vasilache <nicolas.vasilache@gmail.com> |
[mlir][Test] Add a test pass to act as a sink towards LLVM conversion
This allows writing simple e2e tests where we can check for the proper materialization of specific LLVM IR (e.g. `llvm.intr.fmul
[mlir][Test] Add a test pass to act as a sink towards LLVM conversion
This allows writing simple e2e tests where we can check for the proper materialization of specific LLVM IR (e.g. `llvm.intr.fmuladd`).
Differential Revision: https://reviews.llvm.org/D138776
show more ...
|