X-Git-Url: https://svn.cri.ensmp.fr/git/pipstransfo.git/blobdiff_plain/5356218c7c4d8a78fc6ff2596e51ddd56e113703..8fa18c3e750daf84d0fa86291e62aa8a4fc63ba8:/pipstransfo.tex?ds=sidebyside diff --git a/pipstransfo.tex b/pipstransfo.tex index 1e9527f..b3186bc 100644 --- a/pipstransfo.tex +++ b/pipstransfo.tex @@ -7,9 +7,12 @@ \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} + \begin{itemize} % memory allocation alteration \item scalar renaming @@ -62,47 +66,48 @@ \section{Teraops} + \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 -\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 rerolling +\item loop rerolling % not supported by Pips \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 reversal +\item loop reversal % not supported by Pips \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 vectorization +\item loop vectorization % not supported by Pips \item loop invariant code motion -\item software pipelining +\item software pipelining % not supported by Pips \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 induction variable substitution +\item induction variable substitution % not supported by Pips \item if-conversion -\item statement reordering +\item statement reordering % not supported by Pips \item expression optimization \item partial redundancy elimination % dead code removal @@ -113,7 +118,7 @@ \item constant propagation \end{itemize} -\chapter{List of Pips transformations} +\chapter{List of \PIPS transformations} \section{Memory allocation alteration} @@ -134,8 +139,8 @@ \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 + 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]{ @@ -161,7 +166,7 @@ \end{description} -\section{Inter-procedural transformations} +\section{Interprocedural transformations} \section{Base blocs transformations} @@ -213,6 +218,7 @@ \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.} @@ -251,7 +257,7 @@ 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