Advertisement

Precise interprocedural dataflow analysis with applications to constant propagation

  • Mooly Sagiv
  • Thomas Reps
  • Susan Horwitz
FASE Fase-5: Transformations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 915)

Abstract

This paper concerns interprocedural dataflow-analysis problems in which the dataflow information at a program point is represented by an environment (i.e., a mapping from symbols to values), and the effect of a program operation is represented by a distributive environment transformer. We present an efficient dynamic-programming algorithm that produces precise solutions.

The method is applied to solve precisely and efficiently two (decidable) variants of the interprocedural constant-propagation problem: copy constant propagation and linear constant propagation. The former interprets program statements of the form x∶=7 and x∶=y. The latter also interprets statements of the form x∶=5*y=+17.

Keywords

Constant Propagation Start Node Recursive Program Exit Node Path Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. [Cal88]
    D. Callahan. The program summary graph and flow-sensitive interprocedural data flow analysis. In SIGPLAN Conference on Programming Languages Design and Implementation, pages 47–56, 1988.Google Scholar
  2. [CCKT86]
    D. Callahan, K.D. Cooper, K. Kennedy, and L. Torczon. Interprocedural constant propagation. In SIGPLAN Symposium on Compiler Construction, pages 152–161, 1986.Google Scholar
  3. [DGS95]
    E. Duesterwald, R. Gupta, and M.L. Soffa. Demand-driven computation of interprocedural data flow. In ACM Symposium on Principles of Programming Languages, pages 37–48, 1995.Google Scholar
  4. [FL88]
    C.N. Fischer and R.J. LeBlanc. Crafting a Compiler. Benjamin/Cummings Publishing Company, Inc., Menlo Park, CA, 1988.Google Scholar
  5. [GT93]
    D. Grove and L. Torczon. A study of jump function implementations. In SIGPLAN Conference on Programming Languages Design and Implementation, pages 90–99, 1993.Google Scholar
  6. [HRS95]
    S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. Unpublished manuscript, 1995.Google Scholar
  7. [JM86]
    N.D. Jones and A. Mycroft. Data flow analysis of applicative programs using minimal function graphs. In ACM Symposium on Principles of Programming Languages, pages 296–306, 1986.Google Scholar
  8. [Kar76]
    M. Karr. Affine relationship among variables of a program. Acta Inf., 6:133–151, 1976.Google Scholar
  9. [Kil73]
    G.A. Kildall. A unified approach to global program optimization. In ACM Symposium on Principles of Programming Languages, pages 194–206, 1973.Google Scholar
  10. [KS92]
    J. Knoop and B. Steffen. The interprocedural coincidence theorem. In International Conference on Compiler Construction, pages 125–140, 1992.Google Scholar
  11. [LR91]
    W. Landi and B.G. Ryder. Pointer induced aliasing: A problem classification. In ACM Symposium on Principles of Programming Languages, pages 93–103, 1991.Google Scholar
  12. [MS93]
    R. Metzger and S. Stroud. Interprocedural constant propagation: An empirical study. ACM Letters on Programming Languages and Systems, 2, 1993.Google Scholar
  13. [Rep94]
    T. Reps. Solving demand versions of interprocedural analysis problems. In International Conference on Compiler Construction, pages 389–403, 1994.Google Scholar
  14. [RHS95]
    T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In ACM Symposium on Principles of Programming Languages, pages 49–61, 1995.Google Scholar
  15. [RSH94]
    T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow analysis via graph reachability. Technical Report TR 94-14, Datalogisk Institut, University of Copenhagen, 1994.Google Scholar
  16. [SK91]
    B. Steffen and J. Knoop. Finite constants: Characterizations of a new decidable set of constants. Theoretical Computer Science, 80(2):303–318, 1991.MathSciNetGoogle Scholar
  17. [SP81]
    M. Sharir and A. Pnueli. Two approaches for interprocedural data flow analysis. In S.S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 7, pages 189–234. Prentice-Hall, 1981.Google Scholar
  18. [SPE92]
    SPEC Component CPU Integer Release 2/1992 (Cint92). Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Mooly Sagiv
    • 1
  • Thomas Reps
    • 1
  • Susan Horwitz
    • 1
  1. 1.Computer Sciences DepartmentUniversity of Wisconsin-MadisonMadisonUSA

Personalised recommendations