Last updated: 5-Aug-2009
Background
Compiler plugins (or loadable modules) make it possible for a developer to add new features to the compiler without having to modify the compiler itself. Plugin functionality provides several advantages:
- It shortens the time needed to build and test new features. Only the code needed to implement the new functionality needs to be compiled, i.e. GCC doesn't need to be bootstrapped.
- It allows the development and maintenance of compiler features that for one reason or another are not suitable for inclusion in the main GCC distribution.
- It simplifies the job of developers who need to modify GCC but do not have the time or inclination to delve too much into the compiler internals.
This page contains links to API documentation and provides a directory of known GCC plugins. If you have any questions about developing your own compiler plugin, please contact us at gcc@gcc.gnu.org.
Documentation
Plugins chapter in the GCC internals documentation.
Plugins branch page with links to design documents, discussions and TODO lists.
Compiler plugins repository
The following directory lists all the existing GCC plugins that we know about. Please note that these modules are not maintained by GCC developers, so asking about them on the GCC lists may not give you the answers you want (though, it is likely that plugin developers are also subscribed to the GCC lists).
If you have developed a plugin (under a GPL compatible license), add it to this list and let us know about it by posting an announcement on gcc@gcc.gnu.org.
Plugin |
Brief description |
URL |
Dehydra |
Static analysis tool for C++ |
|
LLVM backend for GCC |
||
ICI / MILEPOST |
Multiple high-level ICI plugins for function level pass selection and reordering, static feature extraction for machine learning and optimization prediction, tuning of fine-grain program optimizations, program instrumentation and function run-time adaptation. We are now synchronizing ICI with GCC 4.5 - patch should be available in July 2009 |
development website Google Summer of Code'09 extensions development mailing list that eventually should merge with the main GCC mailing list |
MELT |
Lisp dialect for midde end |
MiddleEndLispTranslator a framework for writing middle end analysis and passes in a Lisp like high level language |