kirancodes.me
To Proof Maintenance & Beyond!

Interprocedural Optimization: Eliminating Unnecessary Recompilation

Michael G. Burke, Linda Torczon

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 dependence among the proceduresof a program.If the compiler dependson interprocedural information to optimize a given module, a subsequentediting changeto another module in the program may changethe interprocedural information and necessitaterecompilation.To avoid having to recompile every module in a program in responseto a single editing changeto one module, we have developed techniques to more precisely determine which compilations have actually been invalidated by a changeto the program's source.This paper presents a general recoi-npzlatton test to determine which proceduresmust be compiled in responseto 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.

Related papers