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