The Graphite/PCP polyhedral interface
Graphite/PCP should export a simple polyhedral interface, abstracting away all the GCC internals. So people only interested in polyhedral optimization do not have to get used to all the GCC internal stuff.
This is especially interesting for research, as it will be possible to try polyhedral optimizations in a real world compiler on programs like the SPEC suite, the Linux kernel or any other C, C++, Java or Fortran program supported by gcc.
At the moment this code is present and will be developed in the graphite branch. As soon as PCP is integrated into graphite, PCP will export the same polyhedral interface. So we can take advantage of the advanced debugging features PCP will introduce.
How does the interface look like?
At the moment the interface is hidden and mixed up with the GCC data structures in gcc/graphite.h. In the end the internal interface of PCP will contain the following parts:
- interface for constraints (on top of PPL interface for the moment)
- SCoP structure
- context for parameters
- set of black boxes defining the user statements
- data dependences between black boxes
- black boxes containing
The data to export will be described using constraint systems.
Which polyhedron library?
In the graphite branch we use the PPL interface to represent polyhedrons.