Skip to main content

Using Locality of Flow in Dataflow Analyses

  • Conference paper
Programming Languages and Systems (APLAS 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2895))

Included in the following conference series:

  • 278 Accesses

Abstract

Dataflow analysis using specifications which are not expressible as uni-directional analyses have found limited use in practice inspite of the fact that they can be shorter and more comprehensible than a corresponding decomposition. This is largely due to the fact that straightforward iterative algorithms on such analyses have non-linear time complexity in the size of the control flowgraph.

In this paper, we unify the traditional classes of uni-directional and bi-directional analyses into a more natural class of local flow analyses. The dataflow equations for this class can be compactly encoded as matrix-vector equations on a path-algebra. We then use methods from path-algebra to derive efficient algorithms for solving the set of equations. In the best case, we can achieve the efficiency of uni-directional analyses. Otherwise, we can decrease the complexity of the analysis as compared with a generic iterative analysis.

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. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers - Principles, Tools and Techniques. Addison Wesley, Reading (1986)

    Google Scholar 

  2. Backhouse, R., Carré, B.: Regular algebra applied to path-finding problems. Journal of Institute of Mathematics and its Applications 15, 161–186 (1975)

    Article  MATH  Google Scholar 

  3. Berge, C.: Graphs, 2nd edn. North-Holland, Amsterdam (1985)

    MATH  Google Scholar 

  4. Carré, B.: Graphs and Networks. Oxford Applied Mathematics and Computing Science Series. Clarendon Press, Oxford (1979)

    MATH  Google Scholar 

  5. Click, C., Cooper, K.: Combining analyses, combining optimizations. ACM Transactions on Programming Languages and Systems 17(2), 181–196 (1995)

    Article  Google Scholar 

  6. Kam, J.B., Ullman, J.D.: Monotone dataflow analysis frameworks. Acta Informatica 7(3), 305–318 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  7. Kennedy, K.: A survey of data flow analysis techniques, pp. 5–54. In: Muchnick and Jones [13] (1981)

    Google Scholar 

  8. Khedkar, U., Dhamdhere, D.M.: A generalized theory of bit-vector dataflow analysis. ACM Transactions on Programming Languages and Systems 16(5), 1472–1511 (1994)

    Article  Google Scholar 

  9. Khedkhar, U., Dhamdhere, D.M.: Bidirectional analysis: Myths and reality. ACM SIGPLAN Notices 34(6), 47–57 (1999)

    Article  Google Scholar 

  10. Knoop, J., Rüthing, O., Steffen, B.: Optimal code motion. ACM Transactions on Programming Languages and Systems 16(4), 1117–1155 (1994)

    Article  Google Scholar 

  11. Lerner, S., Grove, D., Chambers, C.: Composing dataflow analyses and transformations. In: 29st Annual ACM Symposium on Principles of Programming Languages, pp. 270–282 (2002)

    Google Scholar 

  12. Morel, E., Renvoise, C.: Global optimization by supression of partial redundancies. Communications of the ACM 22(2), 96–103 (1979)

    Article  MATH  MathSciNet  Google Scholar 

  13. Muchnick, S.S., Jones, N.D. (eds.): Program Flow Analysis: Theory and Applications. Prentice Hall, Englewood Cliffs (1981)

    MATH  Google Scholar 

  14. Neilson, H.R., Nielson, F.: Bounded fixed point iteration. In: 19th Annual ACM Symposium on Principles of Programming Languages, pp. 71–82 (1992)

    Google Scholar 

  15. Rüthing, O.: Code motion in the presence of critical edges without bidirectional data flow analysis. Science of Computer Programming 39, 2–29 (2001)

    Article  Google Scholar 

  16. Sharir, M.: Structural analysis: A new approach to flow analysis in optimizing compilers. Computer Languages 5(3), 141–153 (1980)

    Article  MATH  Google Scholar 

  17. Tarjan, R.E.: Fast algorithms for solving path problems. Journal of ACM 28(3), 594–614 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  18. Wegman, M.N., Zadeck, F.K.: Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems 13(2), 181–210 (1991)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ravindra, D.V. (2003). Using Locality of Flow in Dataflow Analyses. In: Ohori, A. (eds) Programming Languages and Systems. APLAS 2003. Lecture Notes in Computer Science, vol 2895. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40018-9_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-40018-9_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20536-4

  • Online ISBN: 978-3-540-40018-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics