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 support is available in GCC version 4.5.0 and later. Plugin functionality provides several advantages:

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

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

Linux kernel

Linux Kernel's GCC-Plugins

https://www.kernel.org/doc/Documentation/gcc-plugins.txt

Dehydra

Static analysis tool for C++

https://developer.mozilla.org/en/Dehydra

DragonEgg

LLVM backend for GCC

http://dragonegg.llvm.org

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.

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 middle end

MiddleEndLispTranslator a framework for writing middle end analysis and passes in a Lisp like high level language

ODB

ODB is an object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code.

ODB project page

gcc-vcg-plugin

A gcc plugin, which can be loaded when debugging gcc, to show internal structures graphically

project page

Python

Embeds a Python interpreter inside GCC, allowing various visualizations and static analysis

https://github.com/davidmalcolm/gcc-python-plugin/

Guile-GCC

Proof-of-concept extension allowing GCC to be extended in Guile Scheme

https://gitorious.org/guile-gcc

StarPU

C-family language extensions and run-time support for heterogeneous CPU/GPU programming

http://runtime.bordeaux.inria.fr/StarPU/

CTraps

Extensible shared-memory access instrumentation and dynamic analysis for debugging and understanding concurrent programs

http://github.com/blucia0a/CTraps-gcc

s-spider

Automatic static instrumentation tool by rewriting GCC GENERIC tree at compile time

http://code.google.com/p/s-spider/

grsecurity kernel

Plugins to help with the task of creating a more secure kernel.

https://www.grsecurity.net/features.php#tabs-gcc LWN articleSlides of PaX talk

None: plugins (last edited 2018-10-14 00:10:46 by ManuelLopezIbanez)