The continued specialization in hardware and software due to the end of Moore's law forces us to question fundamental design choices in compilers, and in particular for domain specific languages.
The days where a single universal compiler intermediate representation (IR) was sufficient to perform all important optimizations are over.
We need novel IRs and ways for them to interact with one another while leveraging established compiler infrastructures.
In this paper, we present a practical implementation of a functional pattern-based IR in the SSA-based MLIR framework.
Our IR captures the program semantics as compositions of common computational patterns enabling rewrite-based optimizations.
We discuss the integration with other IRs by demonstrating the compilation of a neural network represented as a TensorFlow graph down to optimized LLVM code via our functional pattern-based IR.
Our implementation demonstrates for the first time a practical integration of a functional pattern-based IR with other IRs and it enables the construction of sophisticated code generators for domain specific languages.
Tue 2 MarDisplayed time zone: Eastern Time (US & Canada) change
12:30 - 13:15 | |||
12:30 15mTalk | Data-Aware Process Networks CC Research Papers | ||
12:45 15mTalk | Integrating a Functional Pattern-Based IR into MLIR CC Research Papers Martin Lücke University of Edinburgh, Michel Steuwer University of Edinburgh, Aaron Smith University of Edinburgh; Microsoft | ||
13:00 15mTalk | Compiling Data-Parallel Datalog CC Research Papers Thomas Gilray University of Alabama at Birmingham, Sidharth Kumar University of Alabama at Birmingham, Kristopher Micinski Syracuse University |