MLIR Release Notes
This document tries to provide some context about MLIR important changes in the context of LLVM releases. It is updated on a best effort basis.
At the moment the MLIR community does not qualify the LLVM release branch specifically, it is a snapshot of the MLIR development at the time of the release.
LLVM 18 ¶
Properties: beyond attributes ¶
See LLVM 17 notes below. The Dialect option let usePropertiesForAttributes = 1;
is
now the default. You can set it to 0 to revert to the previous behavior. This will be
removed in LLVM 19.
LLVM 17 ¶
See also the deprecations and refactoring doc.
Bytecode ¶
MLIR now support a bytecode serialization with versionning compatibility allowing 2 ways compatibility scheme, and lazy-loading capabilities.
Properties: beyond attributes ¶
This is a new mechanism to implement storage for operations without having to
use attributes. You can opt-in to use Properties for ODS inherent attributes
using let usePropertiesForAttributes = 1;
in your dialect definition (the flag
will be default in the next release). See
slides and
recording of the open meeting presentation for
details.
Action: Tracing and Debugging MLIR-based Compilers ¶
Action is a new mechanism to encapsulate any transformation of any granularity in a way that can be intercepted by the framework for debugging or tracing purposes, including skipping a transformation programmatically (think about “compiler fuel” or “debug counters” in LLVM). As such, “executing a pass” is an Action, so is “try to apply one canonicalization pattern”, or “tile this loop”.
slides and recording of the open meeting presentation for details.
Transform Dialect ¶
See this EuroLLVM talk and the online tutorial.
Others ¶
- There is now support for “ distinct attributes”.
- “Resources” (a way to store data outside the MLIR context) and “configuration” can now be serialized alongside the IR.