MLIR: A Compiler Infrastructure for the End of Moore's Law
Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, Oleksandr Zinenko
TL;DR
MLIR presents a flexible, extensible compiler infrastructure designed to reduce engineering costs and enable heterogeneous, domain-specific lowering through a unified SSA-based IR and dialect system. It introduces core design principles such as minimal built-in concepts, progressive lowering, and declarative rewrites, complemented by robust infrastructure for dialects, verification, and parallel passes. The paper demonstrates MLIR across diverse applications, including TensorFlow graphs, polyhedral codegen, Fortran IR, and domain-specific compilers, highlighting reusable passes and cross-dialect interoperability as key advantages. The work argues that this approach facilitates rapid development of specialized compilers while preserving performance and analyzability, with implications for education and future research in IR design and language engineering.
Abstract
This work presents MLIR, a novel approach to building reusable and extensible compiler infrastructure. MLIR aims to address software fragmentation, improve compilation for heterogeneous hardware, significantly reduce the cost of building domain specific compilers, and aid in connecting existing compilers together. MLIR facilitates the design and implementation of code generators, translators and optimizers at different levels of abstraction and also across application domains, hardware targets and execution environments. The contribution of this work includes (1) discussion of MLIR as a research artifact, built for extension and evolution, and identifying the challenges and opportunities posed by this novel design point in design, semantics, optimization specification, system, and engineering. (2) evaluation of MLIR as a generalized infrastructure that reduces the cost of building compilers-describing diverse use-cases to show research and educational opportunities for future programming languages, compilers, execution environments, and computer architecture. The paper also presents the rationale for MLIR, its original design principles, structures and semantics.
