Abstract
Having in mind the ultimate goal of translation validation for optimizing compilers, we propose a new algorithm for solving the problem of finding basic block and variable correspondence between two (low-level) programs generated by a compiler from the same source using different optimizations. The essence of our technique is interpretation of the two programs on random inputs and comparing the histories of value changes for variables. We describe an architecture of a system for finding basic block and variable correspondence and provide experimental evidence of its usefulness.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alpern, B., Wegman, M.N., Zadeck, F.K.: Detecting equality of variables in programs. In: Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages (POPL 1988), pp. 1–11 (1988)
Fang, Y.: Personal communication over emails (2005)
Gulwani, S., Necula, G.C.: Global value numbering using random interpretation. In: Jones, N.D., Leroy, X. (eds.) Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL), pp. 342–352. ACM Press, New York (2004)
Jaramillo, C., Gupta, R., Soffa, M.L.: Capturing the effects of code improving transformations. In: IEEE PACT, pp. 118–123 (1998)
Kennedy, K., Allen, J.R.: Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publishers Inc., San Francisco (2002)
Necula, G.C.: Translation validation for an optimizing compiler. In: Proceedings of the ACM SIGPLAN Conference on Principles of Programming Languages Design and Implementation (PLDI), June 2000, pp. 83–95 (2000)
Pnueli, A., Siegel, M., Singerman, E.: Translation validation. In: Steffen, B. (ed.) TACAS 1998. LNCS, vol. 1384, p. 151. Springer, Heidelberg (1998)
Pnueli, A., Zuck, L., Fang, Y., Goldberg, B., Hu, Y.: Translation and run-time validation of optimized code. ENTCS 70(4), 1–22 (2002)
Rival, X.: Symbolic transfer function-based approaches to certified compilation. In: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 1–13. ACM Press, New York (2004)
van Engelen, R., Whalley, D.B., Yuan, X.: Automatic validation of code-improving transformations. In: Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems, pp. 206–210. Springer, Heidelberg (2001)
Zuck, L., Pnueli, A., Fang, Y., Goldberg, B.: Voc: A methodology for the translation validation of optimizing compilers. j-jucs 9(3), 223–247 (2003)
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
Narasamdya, I., Voronkov, A. (2005). Finding Basic Block and Variable Correspondence. In: Hankin, C., Siveroni, I. (eds) Static Analysis. SAS 2005. Lecture Notes in Computer Science, vol 3672. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11547662_18
Download citation
DOI: https://doi.org/10.1007/11547662_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28584-7
Online ISBN: 978-3-540-31971-9
eBook Packages: Computer ScienceComputer Science (R0)