2023-07-25 11:14:16 -07:00
# 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.
2023-07-25 17:31:53 -07:00
[TOC]
2023-07-25 11:14:16 -07:00
2025-01-24 14:08:38 +01:00
## LLVM 20
All the MLIR runners other than `mlir-cpu-runner` have been removed, as their functionality has been merged into it, and it has been renamed to `mlir-runner` .
2023-08-28 15:49:59 -07:00
## 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.
2023-07-25 11:14:16 -07:00
## LLVM 17
See also the [deprecations and refactoring ](https://mlir.llvm.org/deprecation/ ) doc.
### Bytecode
MLIR now support a [bytecode serialization ](https://mlir.llvm.org/docs/BytecodeFormat/ )
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 ](https://mlir.llvm.org/OpenMeetings/2023-02-09-Properties.pdf ) and
[recording ](https://youtu.be/7ofnlCFzlqg ) of the open meeting presentation for
details.
### Action: Tracing and Debugging MLIR-based Compilers
[Action ](https://mlir.llvm.org/docs/ActionTracing/ ) 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 ](https://mlir.llvm.org/OpenMeetings/2023-02-23-Actions.pdf ) and
[recording ](https://youtu.be/ayQSyekVa3c ) of the open meeting presentation for
details.
### Transform Dialect
See this [EuroLLVM talk ](https://www.youtube.com/watch?v=P4gUj3QtH_Y&t=1s ) and
[the online tutorial ](https://mlir.llvm.org/docs/Tutorials/transform/ ).
### Others
- There is now support for
"[distinct attributes ](https://mlir.llvm.org/docs/Dialects/Builtin/#distinctattribute )".
- "Resources" (a way to store data outside the MLIR context) and "configuration"
can now be serialized alongside the IR.