X-Git-Url: https://svn.cri.ensmp.fr/git/pipstransfo.git/blobdiff_plain/3133de1c1fead03bcef7d9c075bbd862afc948ff..87c353241c9deb38b4a7040b2036d3a3f4e05e24:/pipstransfo.tex diff --git a/pipstransfo.tex b/pipstransfo.tex index fffba4d..f7be25f 100644 --- a/pipstransfo.tex +++ b/pipstransfo.tex @@ -34,7 +34,7 @@ \item inlining % basic bloc transformations \item forward substitution -% dead code removal +% dead code elimination \item constant propagation \item dead code elimination @@ -108,7 +108,7 @@ \item statement reordering % not supported by Pips \item expression optimization \item partial redundancy elimination -% dead code removal +% dead code elimination \item unreachable code \item semantically uneachable code \item if and loop elimination @@ -153,7 +153,19 @@ A prelude and/or postlude are added to preserve the number of iteration.} \section{Base blocs transformations} -\section{Dead code removal} +\section{Dead code elimination} + +\begin{description} + +\item[dead code elimination]{is the process of pruning from a function all the statements whose results are never used.} + +\item[common subexpression elimination]{is the process of replacing similar expressions by a variable that holds the result of their evaluation.} + +\item[goto elimination]{is the process of replacing \texttt{goto} instructions by a hierarchical control flow graph.} + +\end{description} + +\section{Other (unclassified)} \begin{description} @@ -174,17 +186,11 @@ Inlining a function \texttt{foo} in its caller \texttt{bar} consists in the subs \item[instruction selection]{is the process of mapping parts of the IR to machine instructions.} -\item[goto elimination]{is the process of replacing \texttt{goto} instructions by a hierarchical control flow graph.} - \item[outlining]{is the process of extracting part of a function body into a new function and replacing it in the initial function by a function call.} -\item[common subexpression elimination]{is the process of replacing similar expressions by a variable that holds the result of their evaluation.} - \item[statement isolation]{is the process of replacing all variables referenced in a statement by newly declared variables. A prologue and an epilogue are added to copy old variable values to new variable, back and forth.} -\item[dead code elimination]{is the process of pruning from a function all the statements whose results are never used.} - \item[array linearization]{is the process of converting multidimensional array into unidimensional arrays, possibly with a conversion from array to pointer.} \item[iteration clamping]{is a loop transformation that extends the loop range but guards the loop body with the former range.}