A Practical Interprocedural Data Flow Analysis Algorithm A new interprocedural data flow analysis algorithm is presented and analyzed. The algorithm associates with each procedure in a program information about which variables may be modified, which may be used, and which are possibly preserved by a call on the procedure, and all of its subcalls. The algorithm is sufficiently powerful to be used on recursive programs and to deal with the sharing of variables which arises through reference parameters. The algorithm is unique in that it can compute all of this information in a single pass, not requiring a prepass to compute calling relationships or sharing patterns. The algorithm is asymptotically optimal in time complexity. It has been implemented and is practical even on programs which are quite large. CACM September, 1978 Barth, J. Data flow analysis, global flow analysis, optimization, side effects, relations, reference parameters, incarnations 4.12 4.20 CA780903 DH February 5, 1979 3:07 PM 1086 4 3069 1132 4 3069 1234 4 3069 1263 4 3069 1265 4 3069 1270 4 3069 1323 4 3069 1358 4 3069 1379 4 3069 1380 4 3069 1453 4 3069 1464 4 3069 1484 4 3069 1491 4 3069 1498 4 3069 1613 4 3069 1614 4 3069 1781 4 3069 1825 4 3069 1860 4 3069 2083 4 3069 2178 4 3069 2179 4 3069 2252 4 3069 2325 4 3069 2341 4 3069 2546 4 3069 2645 4 3069 2652 4 3069 2684 4 3069 2842 4 3069 2929 4 3069 2934 4 3069 3069 4 3069 669 4 3069 679 4 3069 691 4 3069 761 4 3069 949 4 3069 989 4 3069 3069 5 3069 3069 5 3069 3069 5 3069 3184 5 3069