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.
- AlCa 80.F.E. Allen et al. The experimental compiling system. IBM Journal of Research and Development, 24(6), 1980.]]Google ScholarDigital Library
- ANSI 78.American National Standards Institute. American National Standard Programming Language Fortran, )(8.9-1978.]]Google Scholar
- Ball 79.J.E. Ball. Predicting the effects of optimization on a procedure body. Proceedings of the SIGPLAN 79 Symposium on Compiler Construction, SIGPLAN Notices, 14(8). 1979.]] Google ScholarDigital Library
- Burk 83.M. Burke. Private Communication. November, 1983.]]Google Scholar
- CCKT 86.D. Callahan, K.D. Cooper, K. Kennedy, and L. Torezon. Interprocedural constant propagation. Proceedinge of the SIGPLAN 86 Symposium on Compiler Construction. SIG- PLAN Notices, 21. 1986.]] Google ScholarDigital Library
- Coop 85.K.D. Cooper. Analyzing aliases of reference formal parameters. Proceedings o/ the Twelfth POPL. January 1985.]] Google ScholarDigital Library
- CoKe 84.K.D. Cooper and K. Kennedy. Efficient computation of flow insensitive interprocedural summary information. Proceedings of the SfGPLAN 84 Symposium on Compiler Con,truction. SIGPLAN Notices, 19(6). 1984.]] Google ScholarDigital Library
- 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.]]Google Scholar
- Conr 83.R. Conradi. Inter-procedural optimization ol object code. TR 25/83, Division of Computer Science, University of Trondheim, Trondheim-NTH, Norway. 1983.]]Google Scholar
- DBMS 79.J.J. Dongarra, J.R. Bunch, C.B. Moler, and G.W. Stewart. LINPACK Users' Guide. SIAM, Philadelphia. 1979.]]Google Scholar
- Feld 79.S. Feldman. Make- a computer program for maintaining computer programs. Software Practice and Experience 9, 1979.]]Google Scholar
- KaUl 76.J. Kam and J.D. Ullman. Global data flow analysis and iterative algorithms. Journal of the A CM, 23(1). January 1976.]] Google ScholarDigital Library
- KaUl 77.J. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7. 1977.]]Google ScholarDigital Library
- Kenn 81.K. Kennedy. A survey of data flow analysis techniques. In Program Flow Analysis: Theory and Applications, New Jersey: Prentice-Hall. 1981.]] Google ScholarDigital Library
- Myer 81.E.W. Myers. A precise inter-procedural data flow algorithm. Proceeding~ of the Eighth POPL. January 1981.]] Google ScholarDigital Library
- Spil 71.T.C. Spillman. Exposing side-effects in a PL/I optimizing compiler. IFIPS Proceedings, 1971.]]Google Scholar
- TiBa 85.Tichy W. F. and M. C. Baker, "Smart Recompilation", Proceedings of the Twelfth POPL, 1985.]] Google ScholarDigital Library
- Torc 85.L. Torczon. Compilation dependences in an ambitious optimizing compiler. Ph.D. Dissertation, Department of Computer Science, Rice University, Houston, TX. May 1985.]] Google ScholarDigital Library
Index Terms
- Interprocedural optimization: eliminating unnecessary recompilation
Recommendations
SVF: interprocedural static value-flow analysis in LLVM
CC 2016: Proceedings of the 25th International Conference on Compiler ConstructionThis paper presents SVF, a tool that enables scalable and precise interprocedural Static Value-Flow analysis for C programs by leveraging recent advances in sparse analysis. SVF, which is fully implemented in LLVM, allows value-flow construction and ...
Interprocedural optimization: eliminating unnecessary recompilation
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 ...
Interprocedural pointer alias analysis
We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework ...
Comments