Google's Summer Of Code
Thanks for your interest in the GNU Compiler Collection as your mentoring organization in Google's Summer of Code.
Summer of Code 2008 Accepted GCC Projects
Project |
Student |
Mentor |
Steven Bosscher |
||
Improving Dead Store Elimination |
Jakub Staszak |
|
Extend Fortran 2003 support for gfortran |
Daniel Kraft |
François-Xavier Coudert |
C++0x lambda functions for GCC |
John Freeman |
|
Tobias Grosser |
||
Finish work on propagation aliasing and array dependence information from Tree-SSA to RTL. |
Alexander Monakov |
Diego Novillo |
Tobias Burnus |
Application and Project Ideas
The Drupal project has a great page on How to write an SOC application. A gcc Summer of Code participant for 2006, Laurynas Biveinis, wrote a blog about it.
There are several pages with general ideas for GCC. These ideas are not just one project but many different projects linked here for easy of access.
New optimization passes:
- Implement code motion of stores towards entry (and use this to improve code for int to float conversion on rs6000-based targets)
- Implement a prototype for early instruction selection
- Implement simple loop distribution to create perfect loop nests for GCC loop interchange to apply to SPEC CPU2000 swim
- Propagate interprocedural dataflow from GIMPLE to RTL
- Propagate alias information from GIMPLE to RTL
- Improve support for the restrict qualifier
Rewrite tree-ssa-dse.c
- Add Factored Use-Def (FUD) chains to RTL
Language front-ends and run-time libraries:
- Refactor libstdc++ for optional smaller footprint configuration, e.g., iostreams without templates
Fortran front end: Unimplemented Fortran 2003 (and Fortran 2008) features
OpenMP 3.0 support and other runtime improvements: openmp
Other projects:
- Fix -ftrapv so that it works.
Separate the frontends from the middle-end (near bottom of page)
- Make -O2 (and other -On options) be a sum of individual -f* options, by adding a -fother-O2-optimizations (and same for other -On levels)
- When running the testsuite, run multiple tests in parallel
- Separate frontend folder from middle-end folder
- Emit debug information about types and declarations early (needed for LTO)
- Change the way thunks are emitted to be compatible with LTO
If you are interested in learning your way around the GCC codebase, the Partial_Transitions is a good place to start.
Other project ideas can be found in the bug database. Look for old bugs which are still open.
Or invent your own project. We're always open to good ideas. But note that we are probably not too interested in projects to add new extensions to the C or C++ languages. We've found over time that these tend to introduce more problems than they solve.
Thanks, and we look forward to your submissions!
Summer of Code 2007 Accepted GCC Projects
Project |
Student |
Mentor |
Propagating array data dependence information from Tree-SSA to RTL |
Alexander Monakov |
Daniel Berlin |
Manuel López-Ibáñez |
Diego Novillo |
|
Speeding up GCC for fun and profit |
James Webber |
Eric Marshall Christopher |
Janus Weil |
Steven Bosscher |
|
Open Mutliprogramming Interprocedural Analasis and Optimalizations |
Jakub Staszak |
Daniel Berlin |
Integrating OpenJDK's javac bytecode compiler into gcj |
Dalibor Topic |
Mark J. Wielaard |
New static scheduling heuristic for GCC |
Dmitry Zhurikhin |
Vladimir Makarov |
GCC support for Windows-compatible Structured Exception Handling (SEH) on the i386 platform |
Michele Cicciotti |
Ian Lance Taylor |
Summer of Code 2006 Accepted GCC Projects
Project |
Student |
Mentor |
Plesco Alexandru |
Daniel Berlin |
|
Paul Biggar |
Daniel Berlin |
|
Laurynas Biveinis |
Daniel Berlin |
|
Andrew John Hughes |
Mark Wielaard |
|
Phillip Jordan |
Benjamin Kosnik |
|
Manuel López-Ibáñez |
Ian Lance Taylor |