Open work items with a small scope

Dear Clang/LLVM community!

We (a group of 3 highly motivated CS grad students) are taking a class about compilers and optimizations.
This class offers the option of doing a implementation project (instead of reading/writing x papers) for its main part.
Of course hacking is much more fun than … :wink:

So my question is do you know of any open points, compiler passes, optimizations in the LLVM / Clang realm that are small enough for a student group to be tackled in a quarter (~2 months)?
We acknowledge that compilers are very complex software and that it is very hard to do anything meaningful in this timeframe.
So we would appreciate any guidance you can offer.
This could also mean doing work in a LLVM / Clang related project, as LLVM / Clang themselves are pretty mature projects and doing anything substantial would probably take much longer.
The only requirement of the project would be that it is in the realm of compilers and optimizations.

Some areas/ideas we are especially interested in:
Adaption of Clang to support OpenMP (http://clang-omp.github.io/), but haven’t been able to contact one of the developers yet.

Profile-guided optimization:
https://docs.google.com/document/d/1b2XFuOkR2K-Oao4u5fR3a9Ok83IB_W4EJWVmNak4GRE/pub

We are glad for any pointers, suggestions and other help.
Also feel free to answer me directly if you like.
– Julian

There’s an open project to rewrite our GVN (and it seems like there’s already a pretty good consensus for the direction to take it). See this thread <http://thread.gmane.org/gmane.comp.compilers.llvm.cvs/158097/>.

– Sean Silva

If you can choose a frontend-related project, then you might want to
consider implementing a refactoring tool. A few ideas are listed
here:

http://clang.llvm.org/docs/ClangTools.html

Dmitri

One of the long term points of interest for NetBSD would be a M68000
backend for LLVM. This is the CPU family used by the original Amiga and
Atari computers. It is still alive in various forms in the embedded
space. A possible project for your time frame would be the MC specific
parts -- TD descriptions of the instruction set, assembler parsing and
disassembly. I don't know if that fits your area though.

Joerg

Hi Julian,

Some areas/ideas we are especially interested in:
Adaption of Clang to support OpenMP (http://clang-omp.github.io/), but haven’t been able to contact one of the developers yet.

This project is owned by my team, and we certainly welcome contributions! Have you tried to contact us via https://github.com/clang-omp/clang/issues ?

Either way, it is really hard to find a short-term “new development” work for your team in OpenMP – as the implementation is more or less already finished. Yes, it can benefit from some refactoring here and there, but I doubt this is what you are looking for.

One area still missing, though, is capturing variables with variable-length array type. There is a similar question (is it posted by one of you?) and more elaborate answer: https://github.com/clang-omp/clang/issues/12

Yours,
Andrey Bokhanko

If you’re interested in a refactoring tool then clang-modernize might be up your alley. There’s a nice list of small things to whet your appetite at http://cpp11-migrate.atlassian.net/. You’re completely free to build your own transform that we haven’t thought of yet though. There are lots of ideas out there and if you’re keen on the C++ language and its new features it would probably be a lot of fun.