|
ABSTRACT
While efficient new algorithms for interprocedural data flow analysis have made these techniques practical for use in production compilation systems, a new problem has arisen: collecting and using interprocedural information in a compiler introduces subtle dependences among the procedures of a program. If the compiler depends on interprocedural information to optimize a given module, a subsequent editing change to another module in the program may change the interprocedural information and necessitate recompilation. To avoid having to recompile every module in a program in response to a single editing change to one module, we must develop techniques to more precisely determine which compilations have actually been invalidated by a change to the program's source. This paper presents a general recompilation test to determine which procedures must be compiled in response to a series of editing changes. Three different implementation strategies, which demonstrate the fundamental tradeoff between the cost of analysis and the precision of the resulting test, are also discussed.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
AlCa 80
|
F.E. Allen et al. The experimental compiling system. IBM Journal of Research and Development, 24(6), 1980.
|
| |
ANSI 78
|
American National Standards Institute. American National Standard Programming Language Fortran, )(8.9-1978.
|
 |
Ball 79
|
|
| |
Burk 83
|
M. Burke. Private Communication. November, 1983.
|
 |
CCKT 86
|
|
 |
Coop 85
|
|
 |
CoKe 84
|
|
| |
CoKT 86
|
K.D. Cooper, K. Kennedy and L. Torczon. Optimization of compiled code in the IR~ programming environment. Proceedings of the Nineteenth Annual Hawaii International Conference on System~ Sciences, 1986.
|
| |
Conr 83
|
R. Conradi. Inter-procedural optimization ol object code. TR 25/83, Division of Computer Science, University of Trondheim, Trondheim-NTH, Norway. 1983.
|
| |
DBMS 79
|
J.J. Dongarra, J.R. Bunch, C.B. Moler, and G.W. Stewart. LINPACK Users' Guide. SIAM, Philadelphia. 1979.
|
| |
Feld 79
|
S. Feldman. Make- a computer program for maintaining computer programs. Software Practice and Experience 9, 1979.
|
 |
KaUl 76
|
|
| |
KaUl 77
|
J. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7. 1977.
|
| |
Kenn 81
|
K. Kennedy. A survey of data flow analysis techniques. In Program Flow Analysis: Theory and Applications, New Jersey: Prentice-Hall. 1981.
|
 |
Myer 81
|
|
| |
Spil 71
|
T.C. Spillman. Exposing side-effects in a PL/I optimizing compiler. IFIPS Proceedings, 1971.
|
 |
TiBa 85
|
|
| |
Torc 85
|
|
CITED BY 16
|
|
|
|
|
Mary W. Hall , Ken Kennedy , Kathryn S. McKinley, Interprocedural transformations for parallel code generation, Proceedings of the 1991 ACM/IEEE conference on Supercomputing, p.424-434, November 18-22, 1991, Albuquerque, New Mexico, United States
|
|
|
|
|
|
M. W. Hall , S. Hiranandani , K. Kennedy , C.-W. Tseng, Interprocedural compilation of Fortran D for MIMD distributed-memory machines, Proceedings of the 1992 ACM/IEEE conference on Supercomputing, p.522-534, November 16-20, 1992, Minneapolis, Minnesota, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|