Our laboratory is developing a technology for dynamic code generation around a tool called deGoal. deGoal is a tool designed to build specialized code generators (also known as compilettes) customized for each computing kernel we want to accelerate in an application. Such compilettes are designed with the aim to perform data- and architecture-dependent code optimizations and code generation at runtime. Furthermore, compilettes provide very fast code generation and low memory footprint. This approach is fundamentally different from the standard approach for dynamic compilation as used for example in Java Virtual Machines.
In order to target computing architectures that include domain-specific accelerators and to raise the level of abstraction of the source code of compilettes, deGoal uses a dedicated language. This language provides the best performance we can achieve from our technology, and has demonstrated its ability to achieve good performance improvements compared to highly optimised static code. However, the drawback is that one needs to rewrite the source code of a computing kernel from scratch in order to build a new compilette.
The goal of this PostDoc is to implement an automatic generator of compilettes able to work from existing source code (typically: ANSI C), and able to be integrated in an industry-grade code generation toolchain.