# Polyhedral Compilation Foundations

## 888.11 seminars

 [<< home] [Lecture 1] [Lecture 2] [Lecture 3] [Lecture 4] [Lecture 5]

### Lecture 1: Iteration domains

Note: we will go back on Z-polyhedra next class, and talk about image of a polyhedron by an affine function. This is indeed required to compute the set of array cells accessed during a computation.

#### Practicing (optional)

• Write the (most generalized) algorithm to normalize loops such that iteration domains are represented with polyhedra.
• Write an algorithm to compute the footprint of array A, for multiple affine references of A in the program.
• You can email me for other topics of interest

### Lecture 2: Data Dependence

The latest build of PoCC, the Polyhedral Compiler Collection, can be downloaded here.

To install PoCC:

```\$> tar xzf pocc-1.0-rc1-201021-full.tar.gz
\$> cd pocc-1.0-rc1-201021-full
\$> ./install.sh
\$> make check
```

To compute and display the dependence polyhedra for a program `test.c` (only the part delimited by ```#pragma scop``` and `#pragma endscop` will be analyzed):

```\$> analyzers/install-clan/bin/clan test.c | analyzers/install-candl/bin/candl -inscop -structure stdin
```

#### Practicing

• Write the dependence polyhedra for the matrice-vector product example.
• You can email me for other topics of interest

### Lecture 3: Scheduling and Optimization - I

Note: we will go back on 1-d schedules next class, then move to the general case of multidimensional schedules

#### Practicing

• Do the exercise on slide 23

### Lecture 4: Scheduling and Optimization - II

Note: For Monday, March 1st I'd like to have a student present one of the following papers (in of preference):

#### Practicing

• Start doing some bibliography effort, read some papers

### Lecture 5: Scheduling and Optimization - III

Note: For Monday, March 1st we have Sanket presenting Supernode Partitioning.

#### Practicing

• See some projects ideas at the end of the slides

Copyright notice Some of the images and examples in this series of slides were grabbed from Wikipedia, Cedric Bastoul's Ph.D thesis and Uday Bondhugula's Ph.D thesis. They are gratefully acknowledged for their indirect contribution!