summaryrefslogtreecommitdiff
path: root/mlir/docs/Tutorials/transform
AgeCommit message (Collapse)Author
2025-09-12Fix MLIR Transform Tutorial Doc (#155285)Brandon Kirincich
Fixes a small issue I noticed while reading through the tutorial.
2025-07-28[mlir][Vector] Remove `vector.extractelement` and `vector.insertelement` ops ↵Diego Caballero
(#149603) This PR removes `vector.extractelement` and `vector.insertelement` ops from the code base in favor of the `vector.extract` and `vector.insert` counterparts. See RFC: https://discourse.llvm.org/t/rfc-psa-remove-vector-extractelement-and-vector-insertelement-ops-in-favor-of-vector-extract-and-vector-insert-ops
2025-07-26[mlir][doc] Fix transform dialect tutorial ch3 (#150456)lonely eagle
Fixed some bugs in documentation. Add CallOpInterfaceHandle to the arguments of ChangeCallTargetOp, after doing so the section described in the documentation works correctly, Otherwise the following code reports an error. ``` // Cast to our new type. %casted = transform.cast %call : !transform.any_op to !transform.my.call_op_interface // Using our new operation. transform.my.change_call_target %casted, "microkernel" : !transform.my.call_op_interface ```
2025-07-18[mlir][transform] Fix ch2 and additional documentation (#148407)lonely eagle
Fixed error code in example.In addition to this, the content in the documentation has been improved by adding links to the code repository.
2025-07-14[mlir][transform] Fix transform dialect tutorial chapter 1 (#147983)lonely eagle
In the transform dialect tutorial chapter 1, there were some errors that prevented the example from running. This PR fixes them. --------- Co-authored-by: Renato Golin <rengolin@systemcall.eu>
2025-07-07[MLIR][Linalg] Remove elemwise_unary and elemwise_binary (#147082)Renato Golin
RFC: https://discourse.llvm.org/t/rfc-deprecate-linalg-elemwise-unary-and-elemwise-binary/87144 Remove the two operations and fix the tests by: * Cleaning simple operation tests of the old ops * Changing `linalg.elemwise_{u|bi}nary` with `linalg.{exp|add}` on transform tests * Changing some of the tests with `linalg.elementwise` instead, to broaden test coverage * Surgically removing the `elemwise_*` part in the Python tests * Update MLIR transform examples (text and tests) with `linalg.elementwise` instead Nothing else changed.
2025-05-13[mlir][NFC] Fix the MLIR example format to conform to SSA form.yanming
2025-04-14[mlir] Remove deprecated cast member functions (#135556)Jakub Kuderski
These have been deprecated for over two years now in favor of free functions. See the relevant discourse thread: https://discourse.llvm.org/t/preferred-casting-style-going-forward/68443 and the deprecation notice: https://mlir.llvm.org/deprecation/.
2024-04-22[mlir] fix latex formulas in the tutorialOleksandr "Alex" Zinenko
2024-04-05Fix a few broken links (#87098)mlevesquedion
References to headings need to be preceded with a slash. Also, references to headings on the same page do not need to contain the name of the document (omitting the document name means if the name changes the links will still be valid). I double checked the links by building [the website](https://github.com/llvm/mlir-www): ```shell ./mlir-www-helper.sh --install-docs ../llvm-project website cd website && hugo serve ```
2024-03-20[mlir] split transform interfaces into a separate library (#85221)Oleksandr "Alex" Zinenko
Transform interfaces are implemented, direction or via extensions, in libraries belonging to multiple other dialects. Those dialects don't need to depend on the non-interface part of the transform dialect, which includes the growing number of ops and transitive dependency footprint. Split out the interfaces into a separate library. This in turn requires flipping the dependency from the interface on the dialect that has crept in because both co-existed in one library. The interface shouldn't depend on the transform dialect either. As a consequence of splitting, the capability of the interpreter to automatically walk the payload IR to identify payload ops of a certain kind based on the type used for the entry point symbol argument is disabled. This is a good move by itself as it simplifies the interpreter logic. This functionality can be trivially replaced by a `transform.structured.match` operation.
2024-02-21[mlir][docs] Fix broken docs (#82308)Kohei Yamaguchi
- Fixed OpenACC's spec link format - Add missed `OpenACCPasses.md` into Passes.md - Add missed `MyExtensionCh4.md` into Ch4.md of tutorial of transform
2024-02-09[mlir] update transform dialect tutorials (#81199)Oleksandr "Alex" Zinenko
Use the "main" transform-interpreter pass instead of the test pass. This, along with the previously introduced debug extension, now allow tutorials to no longer depend on test passes and extensions.
2024-01-12[mlir] introduce debug transform dialect extension (#77595)Oleksandr "Alex" Zinenko
Introduce a new extension for simple print-debugging of the transform dialect scripts. The initial version of this extension consists of two ops that are printing the payload objects associated with transform dialect values. Similar ops were already available in the test extenion and several downstream projects, and were extensively used for testing.
2024-01-09[mlir] add a chapter on matchers to the transform dialect tutorial (#76725)Oleksandr "Alex" Zinenko
These operations has been available for a while, but were not described in the tutorial. Add a new chapter on using and defining match operations.
2024-01-04[mlir][TD] Fix the order of return handles (#76929)Andrzej Warzyński
Replace (in tests and docs): %forall, %tiled = transform.structured.tile_using_forall with (updated order of return handles): %tiled, %forall = transform.structured.tile_using_forall Similar change is applied to (in the TD tutorial): transform.structured.fuse_into_containing_op This update makes sure that the tests/documentation are consistent with the Op specifications. Follow-up for #67320 which updated the order of the return handles for `tile_using_forall`.
2024-01-04[mlir][docs] Update TD tutorial - Ch0 (#76858)Andrzej Warzyński
Updates `generic` as `linalg.generic` (for consistency and to avoid ambiguity) and a few other fixes.
2024-01-03[mlir][docs] Capitalize "Transform" in "transform dialect" (#76840)Andrzej Warzyński
A mix of "Transform dialect" and "transform dialect" is used ATM. This patch capitalizes the outstanding instances of "transform".
2023-10-02[mlir] run buffer deallocation in transform tutorial (#67978)Oleksandr "Alex" Zinenko
Buffer deallocation pipeline previously was incorrect when applied to functions. It has since been fixed. Make sure it is exercised in the tutorial to avoid leaking allocations.
2023-09-26[mlir] cleanup of structured.tile* transform ops (#67320)Oleksandr "Alex" Zinenko
Rename and restructure tiling-related transform ops from the structured extension to be more homogeneous. In particular, all ops now follow a consistent naming scheme: - `transform.structured.tile_using_for`; - `transform.structured.tile_using_forall`; - `transform.structured.tile_reduction_using_for`; - `transform.structured.tile_reduction_using_forall`. This drops the "_op" naming artifact from `tile_to_forall_op` that shouldn't have been included in the first place, consistently specifies the name of the control flow op to be produced for loops (instead of `tile_reduction_using_scf` since `scf.forall` also belongs to `scf`), and opts for the `using` connector to avoid ambiguity. The loops produced by tiling are now systematically placed as *trailing* results of the transform op. While this required changing 3 out of 4 ops (except for `tile_using_for`), this is the only choice that makes sense when producing multiple `scf.for` ops that can be associated with a variadic number of handles. This choice is also most consistent with *other* transform ops from the structured extension, in particular with fusion ops, that produce the structured op as the leading result and the loop as the trailing result.
2023-09-25[mlir] add transform tutorial chapter for Halide conv mapping (#66386)Oleksandr "Alex" Zinenko
This chapter demonstrates how one can replicate Halide DSL transformations using transform dialect operations transforming payload expressed using Linalg. This was a part of the live tutorial presented at EuroLLVM 2023.
2023-07-10[mlir][transform][tutorial] Fix typo in inline code snippet. (NFC)Ingo Müller
Reviewed By: ingomueller-net Differential Revision: https://reviews.llvm.org/D154828
2023-07-10[mlir][transform][tutorial] Make snippets of Ch1 run.Ingo Müller
The snippets had several problems including mismatching argument names, stray or missing symbols, and missing updates to changes in transform ops. I also rewrapped those comments in the snippets that I touchted that exceeded 80 characters. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D154817
2023-07-07[mlir][doc][transform] Fix link to documentation in tutorial. (NFC)Ingo Müller
Reviewed By: ingomueller-net Differential Revision: https://reviews.llvm.org/D154724
2023-06-28[mlir][doc] Fix broken docsKohei Yamaguchi
- Fix include paths for Transform Dialect Tutorial - Add math dialect's pass into Pass.md - Remove a include path of Quant dialect from Pass.md Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D153944
2023-06-24[mlir] Replace HTML escaped characterKai Sasaki
2023-06-20[mlir][transform] Add TransformRewriterMatthias Springer
All `apply` functions now have a `TransformRewriter &` parameter. This rewriter should be used to modify the IR. It has a `TrackingListener` attached and updates the internal handle-payload mappings based on rewrites. Implementations no longer need to create their own `TrackingListener` and `IRRewriter`. Error checking is integrated into `applyTransform`. Tracking listener errors are reported only for ops with the `ReportTrackingListenerFailuresOpTrait` trait attached, allowing for a gradual migration. Furthermore, errors can be silenced with an op attribute. Additional API will be added to `TransformRewriter` in subsequent revisions. This revision just adds an "empty" `TransformRewriter` class and updates all `apply` implementations. Differential Revision: https://reviews.llvm.org/D152427
2023-05-31[mlir] fix documentation includesAlex Zinenko
2023-05-30[mlir] add initial chapters of the transform dialect tutorialAlex Zinenko
The transform dialect has been around for a while and is sufficiently stable at this point. Add the first three chapters of the tutorial describing its usage and extension. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D151491