  Despite significant investment in software infrastructure, machine learning
systems, runtimes and compilers do not compose properly. We propose a new
design aiming at providing unprecedented degrees of modularity, composability
and genericity. This paper discusses a structured approach to the construction
of domain-specific code generators for tensor compilers, with the stated goal
of improving the productivity of both compiler engineers and end-users. The
approach leverages the natural structure of tensor algebra. It has been the
main driver for the design of progressive lowering paths in \MLIR. The proposed
abstractions and transformations span data structures and control flow with
both functional (SSA form) and imperative (side-effecting) semantics. We
discuss the implications of this infrastructure on compiler construction and
present preliminary experimental results.
