This repository documents my learning journey through the MLIR (Multi-Level Intermediate Representation) tutorial provided by j2kun and their accompanying blog. This project aims to make the learning process more accessible to developers familiar with CMake as a build system.
The excellent mlir-tutorial repository and the associated blog posts are valuable resources for anyone looking to learn MLIR. The original repository demonstrates the learning process step by step, utilizing the Bazel build system. While a CMake configuration is included in the repository, it was added later, making it less clear how build system configurations evolve alongside the tutorial content for those unfamiliar with Bazel.
This repository addresses this by:
- Following the same step-by-step learning progression as the original tutorial.
- Implementing each step using CMake as the build system from the outset.
- Clearly showcasing the changes in CMake configuration files (
CMakeLists.txt
) and other relevant files at each stage of the learning process.
This approach provides a more intuitive learning experience for developers comfortable with CMake, allowing them to focus on the MLIR concepts without the added complexity of learning a new build system simultaneously.
This repository currently tracks the learning progress up to lec10 Dialect Conversion (https://jeremykun.com/2023/10/23/mlir-dialect-conversion/).
For each lecture (or significant step in the tutorial), you will find:
- Corresponding source code reflecting the concepts learned.
- Updated
CMakeLists.txt
files demonstrating how build configurations evolve. - Potentially other modified files showcasing the integration of new MLIR features.
Current Status: The repository is currently at the Dialect Conversion stage (lec10), and some ongoing cleanup and organization are in progress. Expect further refinements and improvements as I continue through the tutorial.
This project heavily relies on and is deeply indebted to the following resources:
- j2kun/mlir-tutorial: The original repository and accompanying blog posts provide the core learning material and structure for this project. I am incredibly grateful for the author's comprehensive and insightful work on MLIR.
- KEKE046/mlir-tutorial: This repository served as an additional reference and provided valuable insights during my learning process. Thank you for sharing your work!