# 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