You can find a lot of relevant resources about GCC internals on the Web. We recommend in particular:
Audience: experimented GCC
users, curious about GCC MELT, having
already downloaded and installed it, and
fluent with command-line and development utilities
(e.g. gcc, make, bash, awk, some
editor like emacs, vim, or gedit etc...),
and already knowing how
to invoke GCC. Check
that your gcc
command invokes directly
the GCC compiler, without being
aliased to utilities
like ccache.
It is strongly suggested to read the tutorials below in order, after having installed GCC MELT on your computer.
Read first our tutorial on how to
use GCC MELT (after having
installed it). This tutorial will explain on how to invoke
the MELT plugin
for GCC.
(It does not explain the MELT
language, or how to develop your own GCC
extensions in MELT).
After having installed and be able to invoke MELT on your machine (by reading the above tutorial), read the Tutorial on the MELT domain specific language (incomplete draft), which explain some basics about the MELT language (without any focus on handling GCC specific data).
See also some slides below.
After some understanding of the MELT domain specific programming language, you can implement your own GCC customization with MELT using this incomplete tutorial about implementing your extensions in MELT.
Very incomplete. See some slides below.
Reference documentation addresses the experimented GCC MELT user.
Reference documentation should be available locally on your system if the GCC MELT plugin has been properly installed. This documentation is written or generated in Texinfo form, then converted to HTML.
The user reference documentation explains how to use the GCC MELT plugin, i.e. what are the available program argument options and environment variables. It is in the (hand-written) file meltplugin.html (GFDL license).
The API reference documentation explains how to code in the
the MELT domain specific language,
i.e. what language constructs (macros, primitives, functions....)
are available. It is machine-generated from :doc
annotations inside *.melt files. It is available in the big (generated) file meltpluginapi.html (GPLv3 licensed, since derived from GPLv3 source code).
Publications in reverse chronological order:
Other documents are available here: