PCP integration todo list:
- translate CLAST to PCP
- call CLAST to PCP from Graphite, and collect an extensive PCP testsuite from "real world" benchmarks
- implement a PCP interpreter: output a trace of the execution of statements on the iteration domain
- automatic test of identity transform: input and output traces should be equal
- translate PCP to Gimple for black boxes with no data references
- pass bootstrap, regtest and extra benchmarks
- translate PCP to polyhedra
- write a semantic checker on PCP language inputs that would refuse to compile objects that cannot be represented as polyhedra
pass bootstrap, regtest and extra benchmarks: Gimple -> CLAST -> emit PCP -> parse PCP -> polyhedra -> CLAST -> emit PCP -> Gimple
- translate Gimple to PCP for black boxes with no data references
- pass bootstrap, regtest and extra benchmarks
- translate data references to PCP
- pass bootstrap, regtest and extra benchmarks
- copy the polyhedral part of Graphite to PCP
- automatic test of loop blocking transform: input and output traces should be consistent (trace consistency should be defined)
- pass bootstrap, regtest and extra benchmarks
- remove unused graphite polyhedral code
- collect testcases where we want to see a transform happen and make sure that the transform always happens
- test that the transform has been applied correctly