%% -*- mode: latex; TeX-master: "compilerbau.tex"; -*-

\begin{slide}{Constant Folding, Strength Reduction}

\kopf{$ $Id: cf.tex,v 1.1 2011-10-16 14:06:16 waldmann Exp $ $}


\emph{strength reduction:}

``starke'' Operationen ersetzen, 

z. B. \verb|x * 17| durch \verb|x << 4 + x|

\bigskip

\emph{constant folding:}

Operationen ganz vermeiden:

konstante Ausdrücke zur Compile-Zeit bestimmen

z. B. \verb|c + ('A' - 'a')|

\bigskip

Aufgabe: wieweit macht \verb|gcc| das? Tests ausdenken!

evtl. autotool zu strength reduction (Additionsketten)

\end{slide}
