To take full advantage of a specific hardware target, performance engineers need to gain control on compilers, in order to leverage domain knowledge about the program and hardware. Yet, modern compilers are poorly controlled usually by configuring a sequence of coarse-grain monolithic black-box passes, instead of providing users with the flexibility and fine-grained control required to precisely optimize their varying compute loads. As a consequence, performance engineers have to resort to implementing custom passes for a specific optimization heuristic, requiring compiler engineering expert knowledge.

In this paper, we present a technique that provides fine-grained control of general-purpose compilers by introducing the transform dialect, a controllable IR-based transformation system implemented in MLIR. The transform dialect empowers performance engineers to optimize their various compute loads by composing and reusing existing – but currently hidden – compiler features precisely without the need to implement new compiler passes or even rebuilding the compiler.

We demonstrate in five case studies that the transform dialect enables precise, safe composition of compiler transformations and allows for straightforward integration with state-of-the-art search methods.