On 03/14/2014 09:18 PM, Roman Gareev wrote:
Dear gcc contributors,

I am going to try to participate in Google Summer of Code 2014. My project
is "Integration of ISL code generator into Graphite".

My proposal can be found at on the following link
https://drive.google.com/file/d/0B2Wloo-931AoTWlkMzRobmZKT1U/edit?usp=sharing.
I would be very grateful for your comments, feedback and ideas about
its
improvement.

Hi Roman,

sorry for the delay. The proposal looks already very promising. Here some more comments:

- Graphite does not any more support CLooG-PPL. This part of software is history. No need to talk about it in the proposal. We currently have CLooG-isl and want to replace it by the isl internal ast generator.

3) Benefits

- We currently do not have license issues with cloog-isl. So no need to talk about them.

- Users currently do not need to choose between CLooG with PPL and isl
  backend. The PPL backend is not supported any more


Actual new benefits:

- Support for unrolling, full/partial tile separation, as well as fine-grained code size adjustments

- In unreleased isl 0.13.0, support for compute out feature

- Improved code generation quality


4)

- CLooG is not only meant to generate C code. Using the clasts is a supported and direct way to use CLooG, as it is CLooG's library interface.

- "New internal representaion will be generated by ISL. Its structure is planned to be similar to the CLAST tree, but can be changed ..."

What does this mean? The isl_ast representation is already defined. Are you saying that isl may generate an ast that is different in structure to the clast tree currently generated? Or are you saying we
still need to define the isl_ast and its nodes itself?

- "can be union" -> "can be the union"

4)

- It is great that you schedule explicit time to get familiar with
  the libraries and to do testing and bug fixing.

However, to get familiar, it would be nice to list a couple of small
projects/steps that you can use for this. E.g. in the first week
you could already generate an isl_build and an isl_union_map schedule,
pass it to the isl code generation and dump the resulting AST
to a file.

- "Designing of new internal format"

What kind of new format do you need to generate?

- "Code generation from internal form"

This is the whole project. You really should divide this into smaller steps. You could e.g. first just create a simple loop ignoring any basic blocks. You could then generate a simple loop with a single basic block. Then a loop with more complex ast expressions, then nested loops and ifs, ...

It would be very helpful if you could think about such steps and possibly an approach to ensure you systematically add all pieces of the code generation.

Also, it would be good to understand which parts of the code generation can be copied/shared with the exiting cloog based code generation and which parts need to be rewritten.


5)

gcc should bootstrap

6)

- Another nice to have would be to use the full/partial tile separation for the tiles generated by the isl scheduler.

cheers,
tobi

Reply via email to