eugene@pioneer.arpa (Eugene Miya N.) (04/21/87)
Okay: I have this: From: %A Samuel P. Harbison %T A Computer Architecture for the Dynamic Optimization of High-Level Language Programs %R CMU-CS-80-143 %I Computer Science Dept., Carnegie-Mellon University %D September 1980 \f3Table 2-2 Optimization Techniques\fP .TS expand center; l lw(3i). _ .ul Instruction Action _ Loop manipulations T{ Transforming loops and sets of loops into other, more efficient structures; includes \f2fusing, unrolling,\fP and \f2loop switching.\fP T} Constant folding T{ The evaluation of constant expressions at compile time, including constant-based control flow, which is often used to implement conditional compilation. T} Constant propagation T{ Analyzing the use of constants, as in reducing \f2A:=2; X:= A+4;\fP to \f2A:=2; X:=6.\fP Also can be used with control structures to provide conditional compilation features. T} CSE Elimination T{ Avoiding the reevaluation of common subexpression by saving and later retrieving the value of a previous evaluation of the same expression. T} Code motion T{ A set of techniques typified by trying to avoid recomputing an identical value in every loop iteration by moving the computation outside the loop. T} Strength reduction T{ Replacing an expensive operation by a less expensive one; e.g., by replacing T} .T& l cw(3i). \f3for \f2i\f1:=1 \f3to\fP 10 \f3do\f2 X[i]\f1:=\f2i\f1*10; .T& l lw(3i). with .T& l cw(3i). T{ \f2T\f1:=10; \f3for \f2i\f1:=1 \f3to\fP 10 \f3do begin\f2 X[i]\f1:=\f2T\f1; \f2T\f1:=\f2T\f1+10 \f3end\f1; T} .T& l lw(3i). Register allocations T{ The efficient assignment of of variables, scripts, and various intermediate values to registers to minimize memory access. T} Evaluation optimizations T{ A series of techniques including the application of commutativity to arithmetic expressions, optimizing sequences of boolean comparisons, and the propagation of unary operations to produce more efficient code. T} Access mode determination T{ Determining the most efficient addressing modes to use in accessing a value. T} Variable packing T{ Determining the most efficient allocation of variables in memory. T} Tree transformations T{ A set of miscellaneous transformations on the source program aimed at efficient code; e.g., transforming \f2A-B<0\fP to \f2A<B.\fP T} _ .TE From the Rock of Ages Home for Retired Hackers: --eugene miya NASA Ames Research Center eugene@ames-aurora.ARPA "You trust the `reply' command with all those different mailers out there?" "Send mail, avoid follow-ups. If enough, I'll summarize." {hplabs,hao,ihnp4,decwrl,allegra,tektronix,menlo70}!ames!aurora!eugene