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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers - Principles, Tools and Techniques. Addison Wesley, Reading (1986)
Backhouse, R., Carré, B.: Regular algebra applied to path-finding problems. Journal of Institute of Mathematics and its Applications 15, 161–186 (1975)
Berge, C.: Graphs, 2nd edn. North-Holland, Amsterdam (1985)
Carré, B.: Graphs and Networks. Oxford Applied Mathematics and Computing Science Series. Clarendon Press, Oxford (1979)
Click, C., Cooper, K.: Combining analyses, combining optimizations. ACM Transactions on Programming Languages and Systems 17(2), 181–196 (1995)
Kam, J.B., Ullman, J.D.: Monotone dataflow analysis frameworks. Acta Informatica 7(3), 305–318 (1977)
Kennedy, K.: A survey of data flow analysis techniques, pp. 5–54. In: Muchnick and Jones [13] (1981)
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)
Khedkhar, U., Dhamdhere, D.M.: Bidirectional analysis: Myths and reality. ACM SIGPLAN Notices 34(6), 47–57 (1999)
Knoop, J., Rüthing, O., Steffen, B.: Optimal code motion. ACM Transactions on Programming Languages and Systems 16(4), 1117–1155 (1994)
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)
Morel, E., Renvoise, C.: Global optimization by supression of partial redundancies. Communications of the ACM 22(2), 96–103 (1979)
Muchnick, S.S., Jones, N.D. (eds.): Program Flow Analysis: Theory and Applications. Prentice Hall, Englewood Cliffs (1981)
Neilson, H.R., Nielson, F.: Bounded fixed point iteration. In: 19th Annual ACM Symposium on Principles of Programming Languages, pp. 71–82 (1992)
Rüthing, O.: Code motion in the presence of critical edges without bidirectional data flow analysis. Science of Computer Programming 39, 2–29 (2001)
Sharir, M.: Structural analysis: A new approach to flow analysis in optimizing compilers. Computer Languages 5(3), 141–153 (1980)
Tarjan, R.E.: Fast algorithms for solving path problems. Journal of ACM 28(3), 594–614 (1981)
Wegman, M.N., Zadeck, F.K.: Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems 13(2), 181–210 (1991)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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