skip to main content
article

Translation validation of loop and arithmetic transformations in the presence of recurrences

Published:13 June 2016Publication History
Skip Abstract Section

Abstract

Compiler optimization of array-intensive programs involves extensive application of loop transformations and arithmetic transformations. Hence, 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. A major obstacle for verification of such programs is posed by the presence of recurrences, whereby an element of an array gets defined in a statement S inside a loop in terms of some other element(s) of the same array which have been previously defined through the same statement S. 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. Another technique which works better for recurrences does not handle arithmetic transformations. In this work, array data-dependence graphs (ADDGs) are used to represent both the original and the optimized versions of the program and a validation scheme is proposed where the cycles due to recurrences in the ADDGs are suitably abstracted as acyclic subgraphs. Thus, this work provides a unified equivalence checking framework to handle loop and arithmetic transformations along with most of the recurrences -- this combination of features had not been achieved by a single verification technique earlier.

References

  1. K. Banerjee, D. Sarkar, and C. Mandal. Extending the FSMD framework for validating code motions of array-handling programs. IEEE Trans. on CAD of ICS, 33(12):2015–2019, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  2. D. Barthou, P. Feautrier, and X. Redon. On the equivalence of two systems of affine recurrence equations (research note). In Euro-Par Conference on Parallel Processing, pages 309–313, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Y. Bouchebaba, B. Girodias, G. Nicolescu, E. M. Aboulhamid, B. Lavigueur, and P. G. Paulin. MPSoC memory optimization using program transformation. ACM Trans. Design Autom. Electr. Syst., 12(4), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Iooss, C. Alias, and S. V. Rajopadhye. On program equivalence with reductions. In Static Analysis, pages 168–183, 2014.Google ScholarGoogle Scholar
  5. I. Kadayif, M. T. Kandemir, G. Chen, O. Ozturk, M. Karaköy, and U. Sezer. Optimizing array-intensive applications for on-chip multiprocessors. IEEE Trans. Parallel Distrib. Syst., 16(5):396–411, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Karfa, K. Banerjee, D. Sarkar, and C. Mandal. Equivalence checking of array-intensive programs. In ISVLSI, pages 156–161, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Karfa, K. Banerjee, D. Sarkar, and C. Mandal. Experimentation with SMT solvers and theorem provers for verification of loop and arithmetic transformations. In I-CARE, pages 3:1–3:4, 2013a. C. Karfa, K. Banerjee, D. Sarkar, and C. Mandal. Verification of loop and arithmetic transformations of array-intensive behaviours. IEEE Trans. on CAD of ICS, 32(11):1787–1800, 2013b. S. Kundu, S. Lerner, and R. Gupta. Translation validation of high-level synthesis. IEEE Trans on CAD of ICS, 29(4):566–579, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Landwehr and P. Marwedel. A new optimization technique for improving resource exploitation and critical path minimization. In ISSS, pages 65– 72, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Matsumoto, K. Seto, and M. Fujita. Formal equivalence checking for loop optimization in C programs without unrolling. In ACST, pages 43– 48, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. V. Menon, K. Pingali, and N. Mateev. Fractal symbolic analysis. ACM Trans. Program. Lang. Syst., 25(6):776–813, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Potkonjak, S. Dey, Z. Iqbal, and A. C. Parker. High performance embedded system optimization using algebraic and generalized retiming techniques. In ICCD, pages 498–504, 1993.Google ScholarGoogle ScholarCross RefCross Ref
  12. D. Sarkar and S. De Sarkar. A theorem prover for verifying iterative programs over integers. IEEE Trans Software. Engg., 15(12):1550– 1566, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. C. Shashidhar. Efficient Automatic Verification of Loop and Dataflow Transformations by Functional Equivalence Checking. PhD thesis, Katholieke Universiteit Leuven, 2008.Google ScholarGoogle Scholar
  14. K. C. Shashidhar, M. Bruynooghe, F. Catthoor, and G. Janssens. Functional equivalence checking for verification of algebraic transformations on array-intensive source code. In DATE, pages 1310–1315, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. E. Tarjan. Depth-first search and linear graph algorithms. SIAM J. Comput., 1(2):146–160, 1972.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Verdoolaege. ISL: An Integer Set Library for the Polyhedral Model. In ICMS, pages 299–302, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Verdoolaege, G. Janssens, and M. Bruynooghe. Equivalence checking of static affine programs using widening to handle recurrences. In CAV, pages 599–613, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Verdoolaege, G. Janssens, and M. Bruynooghe. Equivalence checking of static affine programs using widening to handle recurrences. ACM Trans. Program. Lang. Syst., 34(3), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Zory and F. Coelho. Using algebraic transformations to optimize expression evaluation in scientific codes. In PACT, pages 376–384, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. D. Zuck, A. Pnueli, B. Goldberg, C. W. Barrett, Y. Fang, and Y. Hu. Translation and run-time validation of loop transformations. Formal Methods in System Design, 27(3):335–360, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Translation validation of loop and arithmetic transformations in the presence of recurrences

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 51, Issue 5
              LCTES '16
              May 2016
              122 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2980930
              • Editor:
              • Andy Gill
              Issue’s Table of Contents
              • cover image ACM Conferences
                LCTES 2016: Proceedings of the 17th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools, and Theory for Embedded Systems
                June 2016
                122 pages
                ISBN:9781450343169
                DOI:10.1145/2907950

              Copyright © 2016 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 13 June 2016

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader