Re: Unimodular Transformation Mapping

Jennifer-Ann Anderson <anderson@CS.Stanford.EDU>
Sun, 15 May 1994 19:41:07 GMT

          From comp.compilers

Related articles
Unimodular Transformation Mapping (1994-05-11)
Re: Unimodular Transformation Mapping anderson@CS.Stanford.EDU (Jennifer-Ann Anderson) (1994-05-15)
Re: Unimodular Transformation Mapping (1994-05-16)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Jennifer-Ann Anderson <anderson@CS.Stanford.EDU>
Keywords: analysis, optimize
Organization: Compilers Central
References: 94-05-029
Date: Sun, 15 May 1994 19:41:07 GMT

In comp.compilers you write:

>Has anyone implemented unimodular transformation mapping? That is, given
>initial code and a transformation matrix T, is there an implemented tool
>that generates the transformed source? I'm aware of the Sigma-Toolbox
>implementation by Bodin, Lelait, and Windheiser, but have little luck with
>it since we don't have Maple here.

The SUIF compiler system from Stanford includes a loop transformation
library that performs both unimodular transformations and tiling.

The SUIF system is an infrastructure for compiler research. It supplies
an intermediate format (SUIF - Stanford University Intermediate Format)
with supporting libraries to read, write, and manipulate SUIF programs.
It also supplies a series of tools, one of which is the loop
transformation library. A announcement describing the initial release of
the SUIF system was posted here about a week ago.

The SUIF system is available by anonymous FTP from (in
the file /pub/suif/suif-1.0.tar.Z). It is also available by use of the
World-Wide Web from the URL This web server
provides a wide range of information, including all of the files available
by anonymous ftp, the SUIF documentation, and archives of the SUIF mailing

The SUIF system is written in C and C++. The loop transformation library
contains C++ classes that carry out unimodular and tiling transformations
on SUIF code. Documentation on the details of this library is available
with the release.

The unimodular transformation method takes a unimodular matrix T and
modifies the bounds and body of the source loop nest accordingly. This
includes standard transformations such as loop interchange, reversal,
skewing and wavefronting.

The tiling transformation, in the general case, maps an n-deep loop nest
into a 2n-deep loop nest. The loop nest can be separated into regions,
where each region is tiled separately. Each region can optionally be
coalesced. For a region of size r, if coalescing is turned off, then the
region is transformed into 2r loops. If coalescing is turned on for the
region, then it is transformed into 2r-1 loops.

If you have any additional questions, please let me know.

-- Jennifer

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.