Translation Validation of Code Motion Transformations Involving Loops

Ramanuj Chouksey, Chandan Karfa, Purandar Bhaduri · IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems · 2018

Translation validation is the process of proving that the target code is a correct translation of the source program being compiled. In this paper, we propose a translation validation method to verify code motion transformations involving loops applied during the scheduling phase of high-level synthesis (HLS). Our method is capable of ignoring false computations during translation validation. We have also identified a scenario involving code motion across loops where the state-of-the-art translation validation method gives false positive results. Our method can prove the nonequivalence of the concerned finite state machines with data paths in this scenario. We detected a bug in the HLS tool SPARK involving loop invariant code motion using our method. Experimental results demonstrate the usefulness of our method.

Read the paper · More papers on PaperTik