Periodic Reporting for period 1 - FastCode (The Next 100 Optimizing Compilers)
Reporting period: 2019-12-01 to 2021-05-31
The aim of this project is to enable software to take full advantage of the capabilities of emerging microprocessor designs without modifying the compiler.
Towards this end, we propose a new approach to code generation and optimization. Our approach uses constraint solving in a novel way to generate efficient code for modern architectures and guarantee that the generated code correctly implements the source code. Unlike existing superoptimization and synthesis methods, our approach shifts the entire search problem into the solver. Tight integration with the solver provides a way to reuse reasoning steps and guide the solver using domain specific information about the input program and the target architecture.
This approach paves the way to employing recent advances in SMT solvers and has the potential to advance SMT solvers further by providing a new category of challenging benchmarks that come from an industrial application domain.
We expect this project to revolutionize the way compilers perform hardware-specific optimizations. It will eliminate an entire class of software errors and unrealized potential performance gains caused by modern optimizing compilers. It will also aid hardware designers by providing greater flexibility for design explorations and faster deployment of new hardware. Thus, this project will lead to significant improvement in performance and stability of software systems, as well as a fundamental impact on several scientific fields.