Kazu Hirata 4f4e2abb1a
[mlir] Migrate away from PointerUnion::{is,get} (NFC) (#122591)
Note that PointerUnion::{is,get} have been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

I'm not touching PointerUnion::dyn_cast for now because it's a bit
complicated; we could blindly migrate it to dyn_cast_if_present, but
we should probably use dyn_cast when the operand is known to be
non-null.
2025-01-11 13:16:43 -08:00
..

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.

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.

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.

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 as well as documentation to learn more about the dialect.