Interprocedural Constant Propagation: An Empirical Study ROBERT METZGER and SEAN STROUD Corporation CONVEX Computer Constant propagation is an optimization that substitutes values for names. Interprocedural constant propagation performs this substitution throughout an entire program, propagating constant values across procedure boundaries. CONVEX Computer Corporation has developed an interprocedural optimizer for imperative languages, which is available to users of its C-series supercomputers. An aggressive interprocedural constant propagation algorithm, such as the one implemented in this optimizer, can find many constants to propagate into procedures in scientific FORTRAN applications. Detailed statistics derived from compiling a large set of real scientific applications characterize both the opportunities for interprocedural constant propagation in these codes and the effectiveness of the algorithm described. These statistics include the frequency of interprocedural constant propagation, the different types of interprocedural constant propagation, which constants are most frequently propagated, and the relationship between interprocedural constant propagation and other interprocedural optimizations. Categories data types and Subject Descriptors: and structures; procedures, D.3.3 [Programming functions, and Languages]: subroutines; D.3.4 1.2.2 Language Constructs compilers; guages]: Processors code generation; transformation Automatic Programming-program optimization; [Programming Lan[Artificial Intelligence]: General Terms: Algorithms, Languages Abstract interpretation, graph, interprocedural code optimization, analysis constant propa- Additional Key Words and
/lp/association-for-computing-machinery/interprocedural-constant-propagation-an-empirical-study-U2570lrNv0