[Summer of Code ideas] The polyhedral optimization framework for LLVM

Hi all,

I would like to participate in Google’s Summer of Code this year, for LLVM(Polly), The polyhedral optimization framework ( http://wiki.llvm.org/Polyhedral_optimization_framework ) which i am already working on with Tobias.

Polly is a polyhedral optimization framework for llvm, which similar to Graphite for gcc (http://gcc.gnu.org/wiki/Graphite). The main work flow of Polly is:

  1. Transfer LLVM IR to polyhedral model represent (Polyhedral IR) with the LLVM Region framework (http://repo.or.cz/w/llvm-complete/pofl.git/shortlog/refs/heads/regioninfo) and the Scalar Evolution infrastructure.

  2. Perform transformation on Polyhedral IR, e.g. advanced automatic parallelization, optimize loops for cache locality.

  3. Generate LLVM IR with necessary metadata annoted from Polyhedral IR.

With Polly, we can generate high quality parallel code for platforms like OpenMP, OpenGL, OpenCL, CUDA, and so on. and Polly will also give the user from Electronic design automation (EDA) area (http://tce.cs.tut.fi/, http://www.c-to-verilog.com/ and me :stuck_out_tongue: ) a great help.

And I think I will focus on transfering LLVM IR to Polyhedral IR during my summer of code, since there are others people also work on this project.

–best regards

hi all,

my application had commit at http://socghop.appspot.com/gsoc/student_proposal/show/google/gsoc2010/ether/t127044512226.

I will improve it until the deadline.

–best regards