X-Git-Url: https://scm.cri.ensmp.fr/git/pipstransfo.git/blobdiff_plain/3a1145a5bb34e4f8403900ff7fac8ea4af61680e..87c353241c9deb38b4a7040b2036d3a3f4e05e24:/pipstransfo.tex diff --git a/pipstransfo.tex b/pipstransfo.tex index e9cd235..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 @@ -129,7 +129,6 @@ \end{description} - \section{Loop transformations} \begin{description} @@ -154,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} @@ -175,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.}