Skip to main content

Partial Value Number Redundancy Elimination

  • Conference paper
Languages and Compilers for High Performance Computing (LCPC 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. ACM SIGPLAN Notices 27, 224–234 (1992)

    Article  Google Scholar 

  2. 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)

    Google Scholar 

  3. Briggs, P., Cooper, K.D.: Effective partial redundancy elimination. ACM SIGPLAN Notices 29, 159–170 (1994)

    Article  Google Scholar 

  4. Bodik, R., Anik, S.: Path-sensitive value-flow analysis. In: Symposium on Principles of Programming Languages, pp. 237–251 (1998)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Click, C.: Global code motion: global value numbering. ACM SIGPLAN Notices 30, 246–257 (1995)

    Article  Google Scholar 

  7. Cooper, K., Simpson, T.: Value-driven code motion. Technical report, CRPC-TR95637-S, Rice University (1995)

    Google Scholar 

  8. Muchnick, S.S.: Advanced Compiler Design & Implementation. Morgan Kaufmann Publishers, San Francisco (1997)

    Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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

  12. 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)

    Google Scholar 

  13. Kaffe.org: (Kaffe Open VM), http://www.kaffe.org/

  14. Standard Performance Evaluation Corporation: (SPEC JVM98 Benchmarks), http://www.spec.org/osg/jvm98/

  15. 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)

    Chapter  Google Scholar 

  16. Rüthing, O., Knoop, J., Steffen, B.: Detecting equalities of variables: Combining efficiency with precision. In: Static Analysis Symposium, pp. 232–247 (1999)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics