Abstract
Optimizing compilers play a crucial role in making a computer program efficient. Many optimizing techniques are used to improve the performance of a program written in high level language. The different types of optimizations techniques include data-flow optimization, control flow optimization, SSA-based optimization, loop optimization, code generator optimization, functional language optimization etc. Some optimizations are done early during the compilation or optimization phase since they help or improve further optimizations. Some of the early optimizations are value numbering, constant folding, constant propagation, copy propagation, scalar replacement of aggregates etc. We propose here an extension to the existing technique of early optimization - Global Value Numbering. The value graph method used for global value numbering is utilized. The idea is to include some algebraic simplification and error detection during the value numbering phase itself. This is beneficial since we can improve an existing technique without incurring any additional cost and it gives a scope to increase the efficiency of other optimizations.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Alpern, B., Wegman, M.N., Zadeck, F.K.: Detecting equality of variables in programs. In: 15th Annual ACM Symposium on Principles of Programming Languages, p. 111 (1988)
Briggs, P., Cooper, K.D., Simpson, L.T.: Value numbering. Software Practice and Experience (1997)
Gulwani, S., Necula, G.C.: A Polynomial-Time Algorithm for Global Value Numbering. In: Static Analysis Symposium (2004)
Muchnick, S.S.: Early Optimizations. In: Advanced Compiler Design and Implementation, pp. 329–360, 580–586. Morgan Kaufmann, San Francisco (2000)
Wegman, M.N., Zadeck, F.K.: Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems (1991)
Gulwani, S., Necula, G.C.: Global Value Numbering using Random Interpretation. In: Proceedings of the Principles of Programming Languages (2004)
Kulkarni, P.A., Whalley, D.B., Tyson, G.S., Davidson, J.W.: Exhaustive Optimization Phase Order Space Exploration. In: Proceedings of the International Symposium on Code Generation and Optimization (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Krishnan, S.D., Asokan, S. (2011). An Extension to Global Value Numbering. In: Abraham, A., Mauri, J.L., Buford, J.F., Suzuki, J., Thampi, S.M. (eds) Advances in Computing and Communications. ACC 2011. Communications in Computer and Information Science, vol 193. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22726-4_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-22726-4_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22725-7
Online ISBN: 978-3-642-22726-4
eBook Packages: Computer ScienceComputer Science (R0)