X-Git-Url: https://scm.cri.ensmp.fr/git/pipstransfo.git/blobdiff_plain/3a1145a5bb34e4f8403900ff7fac8ea4af61680e..a357fcc50b3ff05a38e0492f6e027e11eb157fac:/pipstransfo.tex diff --git a/pipstransfo.tex b/pipstransfo.tex index e9cd235..6a6e6d0 100644 --- a/pipstransfo.tex +++ b/pipstransfo.tex @@ -129,7 +129,6 @@ \end{description} - \section{Loop transformations} \begin{description} @@ -158,6 +157,18 @@ A prelude and/or postlude are added to preserve the number of iteration.} \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 (non classes)} + +\begin{description} + \item[inlining]{is a function transformation. Inlining a function \texttt{foo} in its caller \texttt{bar} consists in the substitution of the calls to \texttt{foo} in \texttt{bar} by the function body after replacement of the formal parameters by their effective parameters.} @@ -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.}