Following up discussion after GROW'10 workshop panel on "GCC as a research compiler":
After GCC 4.5 has been released, there have been new discussions about how to use GCC as a research compiler. There are still some drawbacks such as lack of stable API, lack of full modularity, old and messy code base but slowly and gradually GCC is improving. And of course, there are many obvious benefits such as mature front-ends for C,C++ and Fortran, availability of many aggressive transformations, many supported architectures, are maybe more importantly that this open-source compiler is used in so many projects, that researchers can have an immediate impact on the community if they implement their successful ideas in GCC.
However, it is not always easy to work with GCC community since many GCC developers are focusing on some specific projects and may not have enough time to implement some fancy new features or clean/modularize code for not very clear purposes and far future. After GROW 2010 workshop, we decided to ask GCC developers to give some suggestions to the researchers (who may want to use GCC for their research)about how to cooperate with the GCC community.
Here are a few links to those discussions at GCC mailing list:
Another interesting discussion started in April, 2010 was about "Why not contribute? (to GCC)" and had more than 100 responses:
Various on-going projects that may be of interest to the researchers who use GCC or plan to use it in the future:
cTuning Wiki mirror:
GCC has a mechanism for "external" plugins (since gcc 4.5) and some hooks calling plugin code from inside GCC. Researchers could experiment new ideas by developing (GPLv3 licensed) plugins. The MELT plugin (or branch) could also interest researchers, since it provides them with a powerful lispy language (with pattern matching) to easily code GCC extensions in.
The most important work is still to understand GCC internals. This is a prerequisite for any work on GCC (with or without plugins or MELT).