MLIR: A Compiler Infrastructure for the End of Moore's Law
It addresses compiler infrastructure challenges for researchers and developers in programming languages and hardware, offering a foundational tool that is not incremental but introduces a new paradigm.
This work tackles the problem of software fragmentation and high costs in compiler development by introducing MLIR, a novel compiler infrastructure that supports reusable and extensible design, resulting in significant reductions in building domain-specific compilers and improved compilation for heterogeneous hardware.
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.