some transformations in FI's pdf are advertised as not supported by PIPS
[pipstransfo.git] / pipstransfo.tex
index 55ab7fa..b3186bc 100644 (file)
@@ -7,9 +7,12 @@
 
 \usepackage{listings}
 \usepackage{hyperref}
 
 \usepackage{listings}
 \usepackage{hyperref}
+\usepackage{xspace}
 
 
+\newcommand\PIPS{PIPS\xspace}
 
 
-\title{PIPS~--- List of code transformations}
+
+\title{\PIPS~--- List of code transformations}
 
 
 
 
 
 
@@ -19,6 +22,7 @@
 \chapter{Summary}
 
 \section{SGuelton}
 \chapter{Summary}
 
 \section{SGuelton}
+
 \begin{itemize}
 % memory allocation alteration
 \item scalar renaming
 \begin{itemize}
 % memory allocation alteration
 \item scalar renaming
 
 
 \section{Teraops}
 
 
 \section{Teraops}
+
 \begin{itemize}
 % memory allocation alteration
 \item scalar renaming
 \item scalar/array expansion
 \item scalar/array privatization
 \begin{itemize}
 % memory allocation alteration
 \item scalar renaming
 \item scalar/array expansion
 \item scalar/array privatization
-\item scalarization
-\item variable copying
+\item scalarization % according to .pdf, not supported by Pips
+\item variable copying % not supported by Pips
 % loop transformations
 % loop transformations
-\item index set splitting
-\item loop peeling
+\item index set splitting % not supported by Pips
+\item loop peeling % not supported by Pips
 \item loop unrolling
 \item loop unrolling
-\item loop rerolling
+\item loop rerolling % not supported by Pips
 \item full loop unrolling
 \item idiom recognition
 \item full loop unrolling
 \item idiom recognition
-\item unswitching
-\item loop fusion
+\item unswitching % not supported by Pips
+\item loop fusion % not supported by Pips
 \item loop fission/loop distribution
 \item loop normalization
 \item unimodular loop transformation/hyperplane method
 \item loop interchange
 \item loop fission/loop distribution
 \item loop normalization
 \item unimodular loop transformation/hyperplane method
 \item loop interchange
-\item loop reversal
+\item loop reversal % not supported by Pips
 \item loop skewing
 \item non-unimodular loop transformation
 \item strip-mining (loop sectionning)
 \item loop skewing
 \item non-unimodular loop transformation
 \item strip-mining (loop sectionning)
-\item loop coalescing/loop collapsing
+\item loop coalescing/loop collapsing % not supported by Pips
 \item loop tiling
 \item loop parallelization
 \item loop tiling
 \item loop parallelization
-\item loop vectorization
+\item loop vectorization % not supported by Pips
 \item loop invariant code motion
 \item loop invariant code motion
-\item software pipelining
+\item software pipelining % not supported by Pips
 \item locality increazing
 \item locality increazing
-% inter procedural transformations
-\item loop embedding/loop jamming
-\item procedure inlining
+% interprocedural transformations
+\item loop embedding/loop jamming % not supported by Pips
+\item procedure inlining % not supported by Pips
 \item procedure cloning
 % basic bloc transformations
 \item node splitting
 \item forward expression substitution
 \item procedure cloning
 % basic bloc transformations
 \item node splitting
 \item forward expression substitution
-\item induction variable substitution
+\item induction variable substitution % not supported by Pips
 \item if-conversion
 \item if-conversion
-\item statement reordering
+\item statement reordering % not supported by Pips
 \item expression optimization
 \item partial redundancy elimination
 % dead code removal
 \item expression optimization
 \item partial redundancy elimination
 % dead code removal
 \item constant propagation
 \end{itemize}
 
 \item constant propagation
 \end{itemize}
 
-\chapter{List of Pips transformations}
+\chapter{List of \PIPS transformations}
 
 \section{Memory allocation alteration}
 
 
 \section{Memory allocation alteration}
 
 \begin{description}
 
 \item[loop unrolling]{
 \begin{description}
 
 \item[loop unrolling]{
-  is a loop transformation. 
-  Unrolling a loop by a factor of $n$ consists in the substitution of a loop
-  body by itself, replicated $n$ times. A prelude and/or postlude are
+  is a loop transformation.
+  Unrolling a loop by a factor of \(n\) consists in the substitution of a loop
+  body by itself, replicated \(n\) times. A prelude and/or postlude are
   added to preserve the number of iteration.}
 
 \item[loop fusion]{
   added to preserve the number of iteration.}
 
 \item[loop fusion]{
   containing the loop without the test in both true and false branch.}
 
 \item[loop normalization]{is a loop transformation that changes
   containing the loop without the test in both true and false branch.}
 
 \item[loop normalization]{is a loop transformation that changes
-  the loop initial increment value or the loop range to enforce certain values, 
+  the loop initial increment value or the loop range to enforce certain values,
   generally~1.}
 
 \end{description}
 
   generally~1.}
 
 \end{description}
 
-\section{Inter-procedural transformations}
+\section{Interprocedural transformations}
 
 \section{Base blocs transformations}
 
 
 \section{Base blocs transformations}
 
 \item[goto elimination]{
   is the process of replacing \texttt{goto} instructions by a hierarchical control flow
   graph.}
 \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[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.}
   operator by its expanded form.}
 
 \item[n address code generation]{is the process of splitting
   operator by its expanded form.}
 
 \item[n address code generation]{is the process of splitting
-  complex expression in simpler ones that take at most $n$ operands.}
+  complex expression in simpler ones that take at most \(n\) operands.}
 
 \item[memory footprint reduction]{is the process of tiling a loop
   to make sure the iteration over the tile has a memory footprint bounded by
 
 \item[memory footprint reduction]{is the process of tiling a loop
   to make sure the iteration over the tile has a memory footprint bounded by