Hello 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. ======= Regards. -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ 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} ***