MLIR Compiler Infrastructure

Chris Lattner (SiFive) and Tatiana Shpeisman (Google)

This talk will give an overview of MLIR - the “Multi-Level Intermediate Representation” compiler infrastructure, a new addition to the LLVM family of compiler technologies. MLIR provides a unified, flexible and extensible intermediate representation that is application-agnostic and is being quickly adopted for many purposes. MLIR’s design provides significant representational flexibility and great “in the box” tooling, which makes it easy and fast to implement a wide range of compilers and other tools that benefit from representing and transforming structured data in nested hierarchical, dataflow graph, and control flow graph forms.

This talk frames the problem addressed by MLIR, and discusses its general design and some of the rapidly growing infrastructure it provides. Because a common task is to move existing compilers and systems to MLIR, we discuss what the process of doing this looks like and use LLVM IR as a (hypothetical) example. We then discuss the benefits and opportunities that such a move would provide if it were actually completed.