[comp.sys.nsc.32k] What is optimization?

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