Toy Tutorial - MLIR
mlir.llvm.org/docs/Tutorials/ToyMLIR is an interesting LLVM compiler framework thingy that uses LLVM for multiple representations instead of just high-level assembly.
This tutorial runs through the implementation of a basic toy language on top of MLIR. The goal of this tutorial is to introduce the concepts of MLIR; in particular, how dialects can help easily support language specific constructs and transformations while still offering an easy path to lower to LLVM or other codegen infrastructure. This tutorial is based on the model of the LLVM Kaleidoscope Tutorial.