This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC summit tutorial proposal: Easily coding a GCC extension with MELT


I just proposed a tutorial session to GCC Summit 2010:

Easily coding a GCC extension with MELT
MELT is a powerful lispy domain specific language for coding GCC
extensions, particularily in the middle-end. It is available as a GCC
plugin and as an experimental GCC branch. MELT offers several high level
features and is translated to C code, hooked to GCC thru the plugins
hooks. Notable features of MELT include: interface to most GCC internal
types( like Gimple, Tree, Loop-s, etc.), a copying garbage collector, a
single-inheritance, reflexive, object system, first-class functional
values and anonymous functions, powerful and flexible pattern matching,
easy integration of C code chunks. The tutorial is targeted for the GCC
summit audience: people somehow familiar with the GCC internals (e.g.
knowledgeable of the Gimple & Tree representations, and of the passes
organization). It does not presuppose familiarity with Lisp. It will
show how the main feature of the MELT domain specific language, how to
code simple and more complex passes using MELT, how can passes share
data, how to extend MELT itself, how to interface additional GCC
internals to MELT, etc.

This GCC summit MELT tutorial requires some basic knowledge about GCC
internals (so could follow the "essential abstractions of GCC" tutorial
proposed by Uday Khedker).

The first part of this tutorial will illustrate basic use of MELT and
introduce the MELT lispy domain specific language and the separation of
MELT values from other stuff. It does not presuppose any familiarity
with any Lisp variant. 

The second part of the tutorial will focus on MELT pattern matching
facilities and show how to use them to concisely explore particular GCC
internal representations (notably Gimple and Tree).

The third part of the tutorial will detail how to code real GCC passes
in MELT and suggest possible MELT extensions for several specific
domains. It will give some insight on the internals of MELT.


email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]