Articles
Geometric Model Checking: An Automatic Verification Technique for Loop and Data Reuse Transformations

https://doi.org/10.1016/S1571-0661(04)80397-9Get rights and content
Under a Creative Commons license
open access

Abstract

Optimizing programs by applying source-to-source transformations is a prevalent practice among programmers. Particularly so, in the framework of methodology based embedded systems design, where the initial program is subject to a series of transformations to optimize computation and communication. In the context of parallelization and custom memory design, such transformations are applied on the loop structures and index expressions of array variables in the program, more often manually than with a tool, leading to the non-trivial problem of checking their correctness. Applied transformations are semantics preserving if the transformed program is functionally equivalent to the initial program from the input-output point of view. In this work we present an automatic technique based on geometrical program modeling to formally check the functional equivalence of initial and transformed programs under loop and data reuse transformations. Our technique also provides very useful diagnostics to locate the detected errors.

Cited by (0)