GSoC Project(s) ideas

Hello,
I am interested in participating to this year's GSoC. My idea is to bring proof of concept prototypes which I have implemented over time in Clang to the main code base. I would like to propose a couple of projects, but before I wanted to hear from the community if there is a real interest or not.

1) Advanced Clang pragma handling: I would like to propose an extension to the current handling of pragmas which will (hopefully) make life much easier for people who wants to define new pragmas. Basically the system I am thinking of provides an easy way for the user to specify new type of pragmas (basically stealing some of the ideas of the Spirit Boost parser) and the machinery to automatically attach pragmas to statements. Once the system is integrated, the idea is to realize OpenMP frontend which is yet not available in Clang.

2) Polyhedral model extraction: the idea is simple if you are familiar with the polyhedral model to describe loops in a program. This is actually something that already exists in LLVM (Polly) but extracting these kind of information from the C/C++ code would make possible to have dependency analysis at the source code level (which is nice for auto-parallelization). Also here I have a working prototype which needs some work to be done to make it stable.

I would like to know if this would be interesting before actually writing the proposal for GSoC.

cheers, Simone

Hello,
I am interested in participating to this year's GSoC. My idea is to
bring proof of concept prototypes which I have implemented over time
in Clang to the main code base. I would like to propose a couple of
projects, but before I wanted to hear from the community if there is a
real interest or not.

Hi Simone,

both projects look nice. Some comments from my side.

1) Advanced Clang pragma handling: I would like to propose an
extension to the current handling of pragmas which will (hopefully)
make life much easier for people who wants to define new pragmas.
Basically the system I am thinking of provides an easy way for the
user to specify new type of pragmas (basically stealing some of the
ideas of the Spirit Boost parser) and the machinery to automatically
attach pragmas to statements. Once the system is integrated, the idea
is to realize OpenMP frontend which is yet not available in Clang.

I like the idea of adding OpenMP support to clang and I got already several people asking me about this. Unfortunately I cannot mentor you, due to my limited clang experience. Maybe some of the clang developers can take care of this.
In terms of the OpenMP backend support,
Patrick CARRIBAULT <patrick.carribault@cea.fr> (CCed) may be a good person to talk to. He has developed mpc[1], a nice new OpenMP library, which you may use and might be able to support you with the LLVM backend support.

2) Polyhedral model extraction: the idea is simple if you are familiar
with the polyhedral model to describe loops in a program. This is
actually something that already exists in LLVM (Polly) but extracting
these kind of information from the C/C++ code would make possible to
have dependency analysis at the source code level (which is nice for
auto-parallelization). Also here I have a working prototype which
needs some work to be done to make it stable.

This is an interesting idea which would be great for the polyhedral community and it may result in the development of some nice optimizations. I can probably mentor you on the polyhedral side and the general LLVM side, but it would be necessary to at least have a co-mentor who knows the clang internals. Furthermore, we should make sure there is general interested from the LLVM community. I personally believe it would be great, as it will attract many people concerned about HPC, but people may think differently.

Cheers
Tobi

Hello,
I am interested in participating to this year's GSoC. My idea is to
bring proof of concept prototypes which I have implemented over time
in Clang to the main code base. I would like to propose a couple of
projects, but before I wanted to hear from the community if there is a
real interest or not.

1) Advanced Clang pragma handling: I would like to propose an
extension to the current handling of pragmas which will (hopefully)
make life much easier for people who wants to define new pragmas.
Basically the system I am thinking of provides an easy way for the
user to specify new type of pragmas (basically stealing some of the
ideas of the Spirit Boost parser) and the machinery to automatically
attach pragmas to statements. Once the system is integrated, the idea
is to realize OpenMP frontend which is yet not available in Clang.

2) Polyhedral model extraction: the idea is simple if you are familiar
with the polyhedral model to describe loops in a program. This is
actually something that already exists in LLVM (Polly) but extracting
these kind of information from the C/C++ code would make possible to
have dependency analysis at the source code level (which is nice for
auto-parallelization). Also here I have a working prototype which
needs some work to be done to make it stable.

I would like to know if this would be interesting before actually
writing the proposal for GSoC.

Ok,
it looks there is not that much interest about these two ideas.
I guess everyone is fine the way Clang handle pragmas then! :slight_smile:

In my opinion there are a number of limitations but I cannot find
any mentor I think it's worthless presenting the project for GSoC
because it will be 99% rejected.

cheers, Simone

Hello,
I am interested in participating to this year's GSoC. My idea is to
bring proof of concept prototypes which I have implemented over time
in Clang to the main code base. I would like to propose a couple of
projects, but before I wanted to hear from the community if there is a
real interest or not.

1) Advanced Clang pragma handling: I would like to propose an
extension to the current handling of pragmas which will (hopefully)
make life much easier for people who wants to define new pragmas.
Basically the system I am thinking of provides an easy way for the
user to specify new type of pragmas (basically stealing some of the
ideas of the Spirit Boost parser) and the machinery to automatically
attach pragmas to statements. Once the system is integrated, the idea
is to realize OpenMP frontend which is yet not available in Clang.

I think this would make an interesting proposal, especially since people often want to add new #pragmas to Clang and introduce them into the AST.

OpenMP would be a good test of advanced Clang pragma handling. If you're going to propose OpenMP, be sure to specify the intended limitations---e.g., you might want to tackle semantic analysis and AST representation but not actually try to generate IR for any particular OpenMP runtime.

2) Polyhedral model extraction: the idea is simple if you are familiar
with the polyhedral model to describe loops in a program. This is
actually something that already exists in LLVM (Polly) but extracting
these kind of information from the C/C++ code would make possible to
have dependency analysis at the source code level (which is nice for
auto-parallelization). Also here I have a working prototype which
needs some work to be done to make it stable.

I, personally, am not terribly interested in this project.

  - Doug