Advertisement

Upper Adjoints for Fast Inter-procedural Variable Equalities

  • Markus Müller-Olm
  • Helmut Seidl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4960)

Abstract

We present a polynomial-time algorithm which at the extra cost of a factor \({\cal O}(k)\) (k the number of variables) generalizes inter-procedural copy constant propagation. Our algorithm infers variable-variable equalities in addition to equalities between variables and constants. Like copy constant propagation, it tracks constant and copying assignments but abstracts more complex assignments and guards. The algorithm is based on the observation that, for the abstract lattice of consistent equivalence relations, the upper adjoints of summary functions can be represented much more succinctly than summary functions themselves.

Keywords

Complete Lattice Program Point Galois Connection Atomic Element Summary 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. 1.
    Alpern, B., Wegman, M., Zadeck, F.K.: Detecting Equality of Variables in Programs. In: 15th ACM Symp. on Principles of Programming Languages (POPL), pp. 1–11 (1988)Google Scholar
  2. 2.
    Fecht, C., Seidl, H.: Propagating Differences: An Efficient New Fixpoint Algorithm for Distributive Constraint Systems. Nordic Journal of Computing (NJC) 5(4), 304–329 (1998)zbMATHMathSciNetGoogle Scholar
  3. 3.
    George, L., Appel, A.W.: Iterated Register Coalescing. ACM Transactions on Programming Languages and Systems (TOPLAS) 18(3), 300–324 (1996)CrossRefGoogle Scholar
  4. 4.
    Gulwani, S., Necula, G.C.: A Polynomial-Time Algorithm for Global Value Numbering. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 212–227. Springer, Heidelberg (2004)Google Scholar
  5. 5.
    Horwitz, S., Reps, T.W., Sagiv, M.: Demand Interprocedural Dataflow Analysis. In: 3rd ACM Symp. on the Foundations of Software Engineering (FSE), pp. 104–115 (1995)Google Scholar
  6. 6.
    Horwitz, S., Reps, T.W., Sagiv, M.: Precise Interprocedural Dataflow Analysis via Graph Reachability. In: 22nd ACM Symp. on Principles of Programming Languages (POPL), pp. 49–61 (1995)Google Scholar
  7. 7.
    Knoop, J.: Parallel Data-Flow Analysis of Explicitly Parallel Programs. In: Chen, P.P., Akoka, J., Kangassalu, H., Thalheim, B. (eds.) Conceptual Modeling. LNCS, vol. 1565, pp. 391–400. Springer, Heidelberg (1999)Google Scholar
  8. 8.
    Knoop, J., Steffen, B.: The Interprocedural Coincidence Theorem. In: Barahona, P., Porto, A., Moniz Pereira, L. (eds.) EPIA 1991. LNCS, vol. 541, pp. 125–140. Springer, Heidelberg (1991)Google Scholar
  9. 9.
    Melton, A., Schmidt, D.A., Strecker, G.E.: Galois Connections and Computer Science Applications. In: Poigné, A., Pitt, D.H., Rydeheard, D.E., Abramsky, S. (eds.) Category Theory and Computer Programming. LNCS, vol. 240, pp. 299–312. Springer, Heidelberg (1986)Google Scholar
  10. 10.
    Müller-Olm, M., Rüthing, O., Seidl, H.: Checking Herbrand Equalities and Beyond. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 79–96. Springer, Heidelberg (2005)Google Scholar
  11. 11.
    Müller-Olm, M., Seidl, H.: Precise Interprocedural Analysis through Linear Algebra. In: 31st ACM Symp. on Principles of Programming Languages (POPL), pp. 330–341 (2004)Google Scholar
  12. 12.
    Müller-Olm, M., Seidl, H., Steffen, B.: Interprocedural Herbrand Equalities. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 31–45. Springer, Heidelberg (2005)Google Scholar
  13. 13.
    Sharir, M., Pnueli, A.: Two Approaches to Interprocedural Data Flow Analysis. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis: Theory and Applications, ch. 7, Program Flow Analysis: Theory and Applications, pp. 189–233. Prentice Hall, Englewood Cliffs (1981)Google Scholar
  14. 14.
    Steffen, B., Knoop, J., Rüthing, O.: The Value Flow Graph: A Program Representation for Optimal Program Transformations. In: Jones, N.D. (ed.) ESOP 1990. LNCS, vol. 432, pp. 389–405. Springer, Heidelberg (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Markus Müller-Olm
    • 1
  • Helmut Seidl
    • 2
  1. 1.Mathematik und InformatikWestf. Wilhelms-Universität MünsterMünsterGermany
  2. 2.TU München, Informatik, I2, 85748 GarchingGermany

Personalised recommendations