Abstract
When exploiting instruction level parallelism in a runtime optimizing compiler, it is indispensable to quickly remove redundant computations and memory accesses to make resources available. We propose a fast and efficient algorithm called Partial Value Number Redundancy Elimination (PVNRE), which completely fuses Partial Redundancy Elimination (PRE) and Global Value Numbering (GVN). Using value numbers in the data-flow analyses, PVNRE can deal with data-dependent redundancy, and can quickly remove path-dependent partial redundancy by converting value numbers at join nodes on demand during the data-flow analyses. Compared with the naive combination of GVN, PRE, and copy propagation, PVNRE has a maximum 45% faster analyses speed, but the same optimizing power on SPECjvm98.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. ACM SIGPLAN Notices 27, 224–234 (1992)
Bodik, R., Gupta, R., Soffa, M.L.: Complete removal of redundant expressions. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 1–14 (1998)
Briggs, P., Cooper, K.D.: Effective partial redundancy elimination. ACM SIGPLAN Notices 29, 159–170 (1994)
Bodik, R., Anik, S.: Path-sensitive value-flow analysis. In: Symposium on Principles of Programming Languages, pp. 237–251 (1998)
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, San Diego, California, pp. 1–11 (1988)
Click, C.: Global code motion: global value numbering. ACM SIGPLAN Notices 30, 246–257 (1995)
Cooper, K., Simpson, T.: Value-driven code motion. Technical report, CRPC-TR95637-S, Rice University (1995)
Muchnick, S.S.: Advanced Compiler Design & Implementation. Morgan Kaufmann Publishers, San Francisco (1997)
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, 451–490 (1991)
Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Global value numbers and redundant computations. In: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 12–27. ACM Press, New York (1988)
Odaira, R., Kei, H.: Partial value number redundancy elimination. Technical report, TR 04-01, University of Tokyo (2004), http://www-hiraki.is.s.u-tokyo.ac.jp/members/ray/pvnre_tr.ps.gz
Steffen, B., Knoop, J., Rüthing, O.: The value flow graph: A program representation for optimal program transformations. In: European Symposium on Programming, pp. 389–405 (1990)
Kaffe.org: (Kaffe Open VM), http://www.kaffe.org/
Standard Performance Evaluation Corporation: (SPEC JVM98 Benchmarks), http://www.spec.org/osg/jvm98/
Chow, F., Chan, S., Kennedy, R., Liu, S.M., Lo, R., Tu, P.: A new algorithm for partial redundancy elimination based on ssa form. In: Proceedings of the 1997 ACM SIGPLAN conference on Programming language design and implementation, pp. 273–286. ACM Press, New York (1997)
Rüthing, O., Knoop, J., Steffen, B.: Detecting equalities of variables: Combining efficiency with precision. In: Static Analysis Symposium, pp. 232–247 (1999)
VanDrunen, T., Hosking, A.L.: Value-based partial redundancy elimination. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol. 2985, pp. 167–184. Springer, Heidelberg (2004)
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
Odaira, R., Hiraki, K. (2005). Partial Value Number Redundancy Elimination. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_29
Download citation
DOI: https://doi.org/10.1007/11532378_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28009-5
Online ISBN: 978-3-540-31813-2
eBook Packages: Computer ScienceComputer Science (R0)