Abstract
Typically, a combination of manual and automated transformations is applied when algorithms for digital signal processing are adapted for energy and performance-efficient embedded systems. This poses severe verification problems. Verification becomes easier after converting the code into dynamic single-assignment form (DSA). This paper describes a method to prove equivalence between two programs in DSA where subscripts to array variables and loop bounds are (piecewise) affine expressions. For such programs, geometric modeling can be used and it can be shown, for groups of elements at once, that the outputs in both programs are the same function of the inputs.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Allen, J.R., Kennedy, K., Porterfield, C., Warren, J.D.: Conversion of control dependence to data dependence. In: POPL, pp. 177–189. ACM, New York (1983)
Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2001)
Banerjee, U.: Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Dordrecht (1988)
Barthou, D., Feautrier, P., Redon, X.: On the equivalence of two systems of affine recurrence equations. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 309–313. Springer, Heidelberg (2002)
Catthoor, F., Wuytack, S., de Greef, E., Balasa, F., Nachtergaele, L., Vandecappelle, A.: Custom Memory Management Methodology: Exploration of Memory Organization for Embedded Multimedia System Design. Kluwer Publishers, Dordrecht (1998)
Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)
Feautrier, P.: Array expansion. In: ICS, pp. 429–441. ACM, New York (1988)
Goldberg, B., Zuck, L., Barrett, C.: Into the loops: Practical issues in translation validation for optimizing compilers. In: International Workshop on Compiler Optimization Meets Compiler Verification. ENTCS. Elsevier, Amsterdam (2004)
Kelly, W., Pugh, W., Rosser, E., Shpeisman, T.: Transitive closure of infinite graphs and its applications. Intl. Journ. of Parallel Prog. 24(6), 579–598 (1996)
Mateev, N., Menon, V., Pingali, K.: Fractal symbolic analysis. ACM Transactions on Programming Languages and Systems 25(6), 776–813 (2003)
Necula, G.C.: Translation validation for an optimizing compiler. In: SIGPLAN Programming Language Design and Implementation, pp. 83–95. ACM, New York (2000)
Pugh, W.: A practical algorithm for exact array dependence analysis. Communications of the ACM 35(8), 102–114 (1992)
Shashidhar, K.C., Bruynooghe, M., Catthoor, F., Janssens, G.: Functional equivalence checking for verification of algebraic transformations on array-intensive source code. In: Design, Automation and Test in Europe. IEEE, Los Alamitos (2005)
Shashidhar, K.C., Bruynooghe, M., Catthoor, F., Janssens, G.: Automatic Verification of Source Code Transformations on Array-Intensive Programs: Demonstration with Real-life Examples. Tech. Rep. CW 401, Dept. of Computer Science, Katholieke Universiteit Leuven, Belgium (2005)
van Engelen, R.A., Gallivan, K.A.: An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications. In: International Workshop on Innovative Architectures for Future Generation High-Performance Processors and Systems, pp. 80–89. IEEE, Los Alamitos (2001)
Vanbroekhoven, P., Janssens, G., Bruynooghe, M., Corporaal, H., Catthoor, F.: A step towards a scalable dynamic single assignment conversion. Tech. Rep. CW 360, Dept. of Computer Science, Katholieke Universiteit Leuven, Belgium (2003)
Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley Publishing Company, Reading (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shashidhar, K.C., Bruynooghe, M., Catthoor, F., Janssens, G. (2005). Verification of Source Code Transformations by Program Equivalence Checking. In: Bodik, R. (eds) Compiler Construction. CC 2005. Lecture Notes in Computer Science, vol 3443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31985-6_15
Download citation
DOI: https://doi.org/10.1007/978-3-540-31985-6_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25411-9
Online ISBN: 978-3-540-31985-6
eBook Packages: Computer ScienceComputer Science (R0)