1# MLIR Release Notes 2 3This document tries to provide some context about MLIR important changes in the 4context of LLVM releases. It is updated on a best effort basis. 5 6At the moment the MLIR community does not qualify the LLVM release branch 7specifically, it is a snapshot of the MLIR development at the time of the release. 8 9[TOC] 10 11## LLVM 20 12 13All 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`. 14 15## LLVM 18 16 17### Properties: beyond attributes 18 19See LLVM 17 notes below. The Dialect option `let usePropertiesForAttributes = 1;` is 20now the default. You can set it to 0 to revert to the previous behavior. This will be 21removed in LLVM 19. 22 23## LLVM 17 24 25See also the [deprecations and refactoring](https://mlir.llvm.org/deprecation/) doc. 26 27### Bytecode 28 29MLIR now support a [bytecode serialization](https://mlir.llvm.org/docs/BytecodeFormat/) 30with versionning compatibility allowing 2 ways compatibility scheme, and lazy-loading 31capabilities. 32 33### Properties: beyond attributes 34 35This is a new mechanism to implement storage for operations without having to 36use attributes. You can opt-in to use Properties for ODS inherent attributes 37using `let usePropertiesForAttributes = 1;` in your dialect definition (the flag 38will be default in the next release). See 39[slides](https://mlir.llvm.org/OpenMeetings/2023-02-09-Properties.pdf) and 40[recording](https://youtu.be/7ofnlCFzlqg) of the open meeting presentation for 41details. 42 43### Action: Tracing and Debugging MLIR-based Compilers 44 45[Action](https://mlir.llvm.org/docs/ActionTracing/) is a new mechanism to 46encapsulate any transformation of any granularity in a way that can be 47intercepted by the framework for debugging or tracing purposes, including 48skipping a transformation programmatically (think about “compiler fuel” or 49“debug counters” in LLVM). As such, “executing a pass” is an Action, so is “try 50to apply one canonicalization pattern”, or “tile this loop”. 51 52[slides](https://mlir.llvm.org/OpenMeetings/2023-02-23-Actions.pdf) and 53[recording](https://youtu.be/ayQSyekVa3c) of the open meeting presentation for 54details. 55 56### Transform Dialect 57 58See this [EuroLLVM talk](https://www.youtube.com/watch?v=P4gUj3QtH_Y&t=1s) and 59[the online tutorial](https://mlir.llvm.org/docs/Tutorials/transform/). 60 61### Others 62 63- There is now support for 64 "[distinct attributes](https://mlir.llvm.org/docs/Dialects/Builtin/#distinctattribute)". 65- "Resources" (a way to store data outside the MLIR context) and "configuration" 66 can now be serialized alongside the IR. 67