Files
clang-p2996/mlir/examples/transform-opt/README.md
Oleksandr "Alex" Zinenko 619ee20b39 [mlir] add an example of using transform dialect standalone (#82623)
Transform dialect interpreter is designed to be usable outside of the
pass pipeline, as the main program transformation driver, e.g., for
languages with explicit schedules. Provide an example of such usage with
a couple of tests.
2024-02-28 09:48:15 +01:00

41 lines
1.7 KiB
Markdown

# Standalone Transform Dialect Interpreter
This is an example of using the Transform dialect interpreter functionality standalone, that is, outside of the regular pass pipeline. The example is a
binary capable of processing MLIR source files similar to `mlir-opt` and other
optimizer drivers, with the entire transformation process driven by a Transform
dialect script. This script can be embedded into the source file or provided in
a separate MLIR source file.
Either the input module or the transform module must contain a top-level symbol
named `__transform_main`, which is used as the entry point to the transformation
script.
```sh
mlir-transform-opt payload_with_embedded_transform.mlir
mlir-transform-opt payload.mlir -transform=transform.mlir
```
The name of the entry point can be overridden using command-line options.
```sh
mlir-transform-opt payload-mlir -transform-entry-point=another_entry_point
```
Transform scripts can reference symbols defined in other source files, called
libraries, which can be supplied to the binary through command-line options.
Libraries will be embedded into the main transformation module by the tool and
the interpreter will process everything as a single module. A debug option is
available to see the contents of the transform module before it goes into the interpreter.
```sh
mlir-transform-opt payload.mlir -transform=transform.mlir \
-transform-library=external_definitions_1.mlir \
-transform-library=external_definitions_2.mlir \
-dump-library-module
```
Check out the [Transform dialect
tutorial](https://mlir.llvm.org/docs/Tutorials/transform/) as well as
[documentation](https://mlir.llvm.org/docs/Dialects/Transform/) to learn more
about the dialect.