Graphite branch contains a lot of useful new features, that we want to integrate into gcc 4.5. The main aim of the current development was to set the base for future work on the pure polytop model. So since January 2008 we completed the polytop description and removed any dependencies to non polytop analysis like e.g. the lambda dependency checking. This also lead to the (temporary) removal of unclean features. However during the last weeks rapid progress was made to introduce them again. This time backed up by a clean model.
As we cut all connections to GIMPLE to develop our optimizations on the pure polytop model, integrating Graphite into 4.5 is a (almost) all or nothing decision. To merge branch into 4.5 we want to be at least on par with the features of graphite 4.4.
On this page progress is tracked.
Analysis |
||||
Feature |
4.4 |
4.5 |
Comment |
Done? |
Fortran code |
no |
yes |
We did not handle "!=" conditions and therefore no Fortran loops |
Yes |
dependency analysis |
lambda based |
polytop based |
basic version ready |
Yes |
Allow reductions |
n/a |
yes |
|
Yes |
Optimizations |
||||
Feature |
4.4 |
4.5 |
Comment |
Done? |
-floop-block |
limited, lambda based version |
polytop based |
|
Yes |
-floop-interchange |
n/a |
polytop based |
|
Yes |
-floop-strip-mine |
n/a |
polytop based |
|
Yes |
Automatic parallelization |
n/a |
first steps |
Very simple single loops without any dependencies. This does not give us a lot of performance improvements. |
Yes |
Coverage |
||||
Feature |
4.4 |
4.5 |
Comment |
Done? |
Compile and run SPEC 2006 |
working |
working |
|
Yes |
Regressions in GCC testsuite |
none |
none |
|
Yes |
Bootstrap GCC |
working |
working |
|
Yes |
Libraries |
||||
Feature |
4.4 |
4.5 |
Comment |
Done? |
Cloog Version |
CLooG PPL 0.15 |
CLooG PPL 0.15 |
The switch to CLooG trunk will be done in GCC 4.6 |
Planned for 4.6 |