skip to main content
article

Partial redundancy elimination: a simple, pragmatic, and provably correct algorithm

Published: 01 July 2003 Publication History

Abstract

We propose a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the definitions of partial availability and partial anticipability. The algorithm works on flow graphs whose nodes are basic blocks. It is both computationally and lifetime optimal and requires four unidirectional analyses. The most important feature of the algorithm is its simplicity; the algorithm evolves naturally from the new concept of safe partial availability.

References

[1]
{1} A.V. Aho, R. Sethi, J.D. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986.
[2]
{2} F. Chow, A portable machine independent optimizer-design and implementation, Ph.D. Thesis, Dept. of Electrical Engineering, Stanford University, Stanford, Calif., and Technical Report 83-254, Computer Systems Lab., Stanford University, 1983.
[3]
{3} D.M. Dhamdhere, A fast algorithm for code movement optimization, SIGPLAN Notices 23 (10) (1988) 172-180.
[4]
{4} D.M. Dhamdhere, Practical adaptation of the global optimization algorithm of Morel and Renvoise, ACM TOPLAS 13 (2) (1991) 291-294.
[5]
{5} D.M. Dhamdhere, U.P. Khedker, Complexity of bidirectional data-flow analysis, in: Conf. Record of 20th ACM Symp. on the Principles of Programming Languages, ACM, New York, 1993 pp. 397-409.
[6]
{6} D.M. Dhamdhere, H. Patil, An elimination algorithm for bidirectional data-flow problems using edge placement, ACM TOPLAS 15 (2) (1993) 312-336.
[7]
{7} D.M. Dhamdhere, B.K. Rosen, F.K. Zadeck, How to analyse large programs efficiently and informatively, in: Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation '92, ACM SIGPLAN Notices 27(7) (1992) 212-223.
[8]
{8} V.M. Dhaneshwar, D.M. Dhamdhere, Strength reduction of large expressions, J. Program. Lang. 3 (1995) 95-120.
[9]
{9} K.H. Dreshler, M.P. Stadel, A variation of Knoop, Rüthing, and Steffen's lazy code motion, ACM SIGPLAN Notices 28 (5) (1993) 29-38.
[10]
{10} J. Knoop, O. Rüthing, B. Steffen, Lazy code motion, ACM SIGPLAN Notices 27 (7) (1992) 224-234.
[11]
{11} J. Knoop, O. Rüthing, B. Steffen, Optimal code motion: theory and practice ACM TOPLAS 16 (4) (1994) 1117-1155.
[12]
{12} E. Morel, C. Renvoise, Global optimization by suppression of partial redundancies, Comm. ACM 22 (2) (1979) 96-103.
[13]
{13} V.K. Paleri, Y.N. Srikant, P. Shankar, A simple algorithm for partial redundancy elimination, ACM SIGPLAN Notices 33 (12) (1998) 35-43.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Science of Computer Programming
Science of Computer Programming  Volume 48, Issue 1
July 2003
79 pages

Publisher

Elsevier North-Holland, Inc.

United States

Publication History

Published: 01 July 2003

Author Tags

  1. computational optimality
  2. data-flow analysis
  3. flow graphs
  4. lifetime optimality
  5. partial redundancy elimination

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media