Coupling Loop Transformations and High-Level Synthesis
Résumé
In this paper we present our study of adding an advanced preprocessing code transformation step to high-level synthesis (HLS) tools. Our approach is to use advanced state-of-the-art compiler frontend as an independent C-to-C preprocessing step before synthesis. By using this approach, recent state-ofthe- art compiler advances could be used directly in HLS, eliminating their reengineering into modern HLS tools and the preprocessing effort can be reused by multiple HLS tools. We focus on efficient synthesis of loop nests and therefore we useWRaPit loop transformation framework integrated in Open64 compiler. As HLS backend we rely on Spark framework. Important improvements are obtained in the resulting RTL design thanks to the fact that WRaPit uses a polyhedral representation for nested loops and provides a flexible framework for loop transformations. Improvements are shown in particular on the synthesis of a part of the H263 decoder from MediaBench II benchmarks.