Search papers, labs, and topics across Lattice.
This paper explores the connections between compiler design principles in MLIR and formal theories, revealing that concepts like match-and-rewrite and staged lowering correspond to established theoretical frameworks such as term-rewriting systems and refinement calculus. By elucidating these relationships, the authors argue that formal theories provide a precise vocabulary for discussing structural design questions in compiler infrastructure. The key finding is that understanding these formal concepts can enhance the design of abstractions, ultimately improving the effectiveness of coding agents in generating compiler passes.
Formal theories can illuminate the design of compiler abstractions, revealing that good engineering often mirrors theoretical insights.
Compiler infrastructures such as MLIR rest on a set of design principles: IR abstractions, interfaces, match-and-rewrite, flow analysis, type conversion, staged lowering, and so on. These concepts have proven themselves in practice. Good designs typically arrive through engineering knowledge, intuition and experience. Many of them, however, have correspondences in formal theory. MLIR's match-and-rewrite engine has correspondence to a \emph{term-rewriting-system}~\cite{baadernipkow1998}; staged lowering has the structure of \emph{refinement calculus}~\cite{back1998}; and range analysis is grounded in \emph{abstract interpretation}~\cite{cousot1977,cousot1979}. Highlighting these correspondences is useful because each theory supplies vocabulary precise enough to discuss structural questions. Moreover, as coding agents lower the cost of implementation, good design and abstractions become the main concern~\cite{Lattner2026ClaudeCCompiler}. A coding agent can generate a pass, but it can only reason over the semantics the representation exposes. When essential structure is missing, the limitation is one of abstraction, not of implementation. The natural next question is how to design that substrate well. Well-chosen abstractions emerge from experience and intuition, but they often mirror concepts given a more precise treatment in formal theory. We argue that knowledge of these formal concepts clarifies what completeness means for a given abstraction, what the ideal design would be, and where practical trade-offs depart from it.