Interprocedural constant propagation: A study of jump function implementations
Grove, Daniel Dwight
Master of Science
Procedure calls have long been recognized as an impediment to performance in compiled code. This happens because procedure calls hide information from the compiler. Interprocedural constant propagation attempts to discover the formal parameters and global variables that are constant on every invocation of a procedure. An implementation of interprocedural constant propagation must model the transmission of values through each procedure in the program. In the framework proposed by Callahan, Cooper, Kennedy, and Torczon, this transmission is modeled with jump functions. While Callahan et al. propose several jump functions, they give no data to help choose among them. This thesis describes the results obtained by employing several jump functions. Our study examined scientific FORTRAN codes. It shows that different jump functions find different numbers of constants, and suggests a particular function, the pass-through parameter jump function, as the most cost-effective in practice. The importance of interprocedural MOD information is also discussed.