Abstract

Array-intensive programs often undergo extensive loop transformations and arithmetic transformations during code optimization. Accordingly, translation validation of array-intensive programs requires manipulation of intervals of integers (representing domains of array indices) and relations over such intervals to account for loop transformations and simplification of arithmetic expressions to handle arithmetic transformations. Translation validation becomes more challenging in the presence of recurrences because recurrences lead to cycles in the data-dependence graph of a program which make dependence analyses and simplifications (through closed-form representations) of the data transformations difficult. To address the problem of translation validation of array-intensive programs, we have developed an equivalence checking framework, where both the original program and the optimized program are modeled as array data-dependence graphs (ADDGs), that can handle loop and arithmetic transformations along with most of the recurrences.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call