Abstract
Designers often apply manual or semi-automatic loop and data transformations on array- and loop-intensive programs to improve performance. It is crucial that such transformations preserve the functionality of the program. This article presents an automatic method for constructing equivalence proofs for the class of static affine programs. The equivalence checking is performed on a dependence graph abstraction and uses a new approach based on widening to find the proper induction hypotheses for reasoning about recurrences. Unlike transitive-closure-based approaches, this widening approach can also handle nonuniform recurrences. The implementation is publicly available and is the first of its kind to fully support commutative operations.
- Absar, M. J., Marchal, P., and Catthoor, F. 2005. Data-Access optimization of embedded systems through selective inlining transformation. In Proceedings of the 3rd Workshop on Embedded Systems for Real-Time Multimedia (ESTImedia'05). M. Miranda and S. Ha, Eds., IEEE Computer Society, 75--80.Google Scholar
- Alias, C. and Barthou, D. 2003. On the recognition of algorithm templates. In Proceedings of the International Workshop on Compilers Optimization Meets Compiler Verification. Elsevier Science, 395--409.Google Scholar
- Barrett, C. and Tinelli, C. 2007. CVC3. In Proceedings of the 19th International Conference on Computer Aided Verification (CAV'07). W. Damm and H. Hermanns, Eds., Lecture Notes in Computer Science, vol. 4590, Springer, 298--302. Google Scholar
Digital Library
- Barthou, D., Collard, J.-F., and Feautrier, P. 1997. Fuzzy array dataflow analysis. J. Parallel Distrib. Comput. 40, 2, 210--226. Google Scholar
Digital Library
- Barthou, D., Feautrier, P., and Redon, X. 2002. On the equivalence of two systems of affine recurrence equations. In Proceedings of the Euro-Par Conference. Lecture Notes in Computer Science, vol. 2400, Springer, 309--313. Google Scholar
Digital Library
- Bastoul, C. 2004. Code generation in the polyhedral model is easier than you think. In Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques. IEEE Computer Society, Los Almantos, CA, 7--16. Google Scholar
Digital Library
- Catthoor, F., Danckaert, K., Kulkarni, C., Brockmeyer, E., Kjeldsberg, P., Van Achteren, T., and Omnés, T. 2002. Data Access and Storage Management for Embedded Programmable Processors. Kluwer Academic Publishers, Boston, MA. Google Scholar
Digital Library
- Chen, C. 2009. Omega+ library. http://ctop.cs.utah.edu/downloads/omega.tar.gz.Google Scholar
- Cook, W., Rutherford, T., Scarf, H. E., and Shallcross, D. F. 1991. An implementation of the generalized basis reduction algorithm for integer programming. Cowles Foundation Discussion Papers 990, Cowles Foundation, Yale University.Google Scholar
- Cousot, P. and Cousot, R. 1992. Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming. M. Bruynooghe and M. Wirsing, Eds., Lecture Note in Computer Science, vol. 631, Springer, 269--295. Google Scholar
Digital Library
- Feautrier, P. 1988. Array expansion. In Proceedings of the 2nd International Conference on Supercomputing. ACM Press, 429--441. Google Scholar
Digital Library
- Feautrier, P. 1991. Dataflow analysis of array and scalar references. Int. J. Parallel Program. 20, 1, 23--53.Google Scholar
Cross Ref
- Feautrier, P. 1996. The Data Parallel Programming Model. Lecture Notes in Computer Science, vol. 1132, Springer, 79--100.Google Scholar
Cross Ref
- Franke, B. and O'Boyle, M. 2003. Array recovery and high-level transformations for DSP applications. ACM Trans. Embed. Comput. Syst. 2, 2, 132--162. Google Scholar
Digital Library
- Fu, Q., Bruynooghe, M., Janssens, G., and Catthoor, F. 2006. Requirements for constraint solvers in verification of data-intensive embedded system software. In Proceedings of the 1st Workshop on Constraints in Software Testing, Verification and Analysis. B. Blanc, A. Gotlieb, and C. Michel, Eds., 46--57.Google Scholar
- Godlin, B. and Strichman, O. 2008. Inference rules for proving the equivalence of recursive procedures. Acta Inf. 45, 6, 403--439. Google Scholar
Digital Library
- Godlin, B. and Strichman, O. 2009. Regression verification. In Proceedings of the 46th Design Automation Conference (DAC'09). 466--471. Google Scholar
Digital Library
- Irigoin, F., Jouvelot, P., and Triolet, R. 1991. Semantical interprocedural parallelisation: An overview of the PIPS project. In Proceedings of the ACM International Conference on Supercomputing (ICS'91). Google Scholar
Digital Library
- Karr, M. 1976. Affine relationships among variables of a program. Acta Info. 6, 133--151.Google Scholar
Digital Library
- Kaufmann, M., Moore, J. S., and Manolios, P. 2000. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Norwell, MA. Google Scholar
Digital Library
- Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., and Wonnacott, D. 1996a. The Omega library. Tech. rep., University of Maryland. Google Scholar
Digital Library
- Kelly, W., Pugh, W., Rosser, E., and Shpeisman, T. 1996b. Transitive closure of infinite graphs and its applications. Int. J. Parallel Program. 24, 6, 579--598. Google Scholar
Digital Library
- Kundu, S., Tatlock, Z., and Lerner, S. 2009. Proving optimizations correct using parameterized program equivalence. SIGPLAN Not. 44, 6, 327--337. Google Scholar
Digital Library
- Lombardy, S., Régis-Gianas, Y., and Sakarovitch, J. 2004. Introducing VAUCANSON. Theor. Comput. Sci. 328, 1-2, 77--96. Google Scholar
Digital Library
- Manjunathaiah, M., Megson, G. M., Rajopadhye, S. V., and Risset, T. 2001. Uniformization of affine dependance programs for parallel embedded system design. In Proceedings of ICPP. L. M. Ni and M. Valero, Eds., IEEE Computer Society, 205--213. Google Scholar
Digital Library
- Mateev, N., Menon, V., and Pingali, K. 2001. Fractal symbolic analysis. In Proceedings of the 15th International Conference on Supercomputing. ACM, New York, 38--49. Google Scholar
Digital Library
- Matsumoto, T., Seto, K., and Fujita, M. 2007. Formal equivalence checking for loop optimization in C programs without unrolling. In Proceedings of the 3rd conference on IASTED International Conference. ACTA Press, 43--48. Google Scholar
Digital Library
- Müller-Olm, M. and Seidl, H. 2004. Precise interprocedural analysis through linear algebra. In Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'04). 330--341. Google Scholar
Digital Library
- Necula, G. C. 2000. Translation validation for an optimizing compiler. SIGPLAN Not. 35, 5, 83--94. Google Scholar
Digital Library
- Shashidhar, K. C. 2008. Efficient automatic verification of loop and data-flow transformations by functional equivalence checking. Ph.D. thesis.Google Scholar
- Shashidhar, K. C., Bruynooghe, M., Catthoor, F., and Janssens, G. 2005. Verification of source code transformations by program equivalence checking. In Proceedings of CC. Lecture Notes in Computer Science, vol. 3443, Springer, 221--236. Google Scholar
Digital Library
- van Engelen, R. A. and Gallivan, K. A. 2001. An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications. In Innovative Archs. for Future Generation High-Performance Processors and Systems. IEEE, 80--89. Google Scholar
Digital Library
- Verdoolaege, S. 2010. isl: An integer set library for the polyhedral model. In Proceedings of the Conference on Mathematical Software (ICMS 10). K. Fukuda, J. van der Hoeven, M. Joswig, and N. Takayama, Eds., Lecture Notes in Computer Science, vol. 6327. Springer, 299--302. Google Scholar
Digital Library
- Verdoolaege, S. and Bruynooghe, M. 2008. Algorithms for weighted counting over parametric polytopes: A survey and a practical comparison. In Proceedings of the International Conference on Information Theory and Statistical Learning. M. Beck and T. Stoll, Eds.Google Scholar
- Verdoolaege, S., Cohen, A., and Beletska, A. 2011. Transitive closures of affine integer tuple relations and their overapproximations. In Proceedings of the 18th International Conference on Static Analysis. (SAS'11). Springer, 216--232. Google Scholar
Digital Library
- Verdoolaege, S. and Grosser, T. 2012. Polyhedral extraction tool. In Proceedings of the 2nd International Workshop on Polyhedral Compilation Techniques (IMPACT'12).Google Scholar
- Verdoolaege, S., Janssens, G., and Bruynooghe, M. 2009. Equivalence checking of static affine programs using widening to handle recurrences. In Computer Aided Verification 21. Springer, 599--613. Google Scholar
Digital Library
- Verdoolaege, S., Palkovic, M., Bruynooghe, M., Janssens, G., and Catthoor, F. 2010. Experience with widening based equivalence checking in realistic multimedia systems. J. Electron. Test. 26, 2, 279--292. Google Scholar
Digital Library
- Verma, M. and Marwedel, P. 2007. Advanced Memory Optimization Techniques for Low-Power Embedded Processors. Springer. Google Scholar
Digital Library
- Zuck, L. D., Pnueli, A., Goldberg, B., Barrett, C. W., Fang, Y., and Hu, Y. 2005. Translation and run-time validation of loop transformations. Formal Methods Syst. Des. 27, 3, 335--360. Google Scholar
Digital Library
Index Terms
Equivalence checking of static affine programs using widening to handle recurrences
Recommendations
Semantic program alignment for equivalence checking
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe introduce a robust semantics-driven technique for program equivalence checking. Given two functions we find a trace alignment over a set of concrete executions of both programs and construct a product program particularly amenable to checking ...
Equivalence Checking of Static Affine Programs Using Widening to Handle Recurrences
CAV '09: Proceedings of the 21st International Conference on Computer Aided VerificationDesigners often apply manual or semi-automatic loop and data transformations on array and loop intensive programs to improve performance. The transformations should preserve the functionality, however, and this paper presents an automatic method for ...
Experience with Widening Based Equivalence Checking in Realistic Multimedia Systems
The application of loop and data transformations to array and loop intensive programs is crucial to obtain a good performance. Designers often apply these transformations manually or semi-automatically. For the class of static affine programs, automatic ...






Comments