Global data flow analysis and iterative algorithms

JB Kam, JD Ullman - Journal of the ACM (JACM), 1976 - dl.acm.org
Journal of the ACM (JACM), 1976dl.acm.org
Kildall has developed data propagation algorithms for code optimization in a general lattice
theoretic framework. In another direction, Hecht and Ullman gave a strong upper bound on
the number of iterations required for propagation algorithms when the data is represented by
bit vectors and depth-first ordering of the flow graph is used. The present paper combines
the ideas of these two papers by considering conditions under which the bound of Hecht
and Ullman applies to the depth-first version of Kildall's general data propagation algorithm …
Kildall has developed data propagation algorithms for code optimization in a general lattice theoretic framework. In another direction, Hecht and Ullman gave a strong upper bound on the number of iterations required for propagation algorithms when the data is represented by bit vectors and depth-first ordering of the flow graph is used. The present paper combines the ideas of these two papers by considering conditions under which the bound of Hecht and Ullman applies to the depth-first version of Kildall's general data propagation algorithm. It is shown that the following condition is necessary and sufficient: Let ƒ and g be any two functions which could be associated with blocks of a flow graph, let x be an arbitrary lattice element, and let 0 be the lattice zero. Then (*) (∀ƒ,g,x) [ƒg(0) ≥ g(0) ∧ ƒ(x) ∧ x]. Then it is shown that several of the particular instances of the techniques Kildall found useful do not meet condition (*).
ACM Digital Library