From: to...@WHEATIES.AI.MIT.EDU (Leonard H. Tower Jr.)
Subject: Help wanted: Would you attend a GCC Tutorial at Summer 89 USENIX?
Date: 15 Feb 89 05:37:33 GMT
Organization: GNUs Not Usenet
The USENIX Association may add a tutorial on GCC internals (including
porting issues) to it's Tutorial Program. The exact speaker is not
clear at this time, but will be someone who has used the technology
extensively and is qualified to present it. Portions of the proposal
The Tutorial would be held on either Monday or Tuesday, 12 or 13 June
1989 at the Summer USENET Technical Conference and Exhibition in
Baltimore, Maryland, USA. (For information on the Conference itself,
ask: "USENIX Conference Office, PO Box 385, Sunset Beach, CA 90742).
The Association has charged $225.00 for one tutorial and $395.00 for
two tutorials in the past.
Whenever the Association considers a Tutorial, it is concerned with
how many people will attend and benefit from it. To make this easier
to determine, we are asking people to write USENIX, if they would
attend a GCC tutorial held at the Summer 89 Conference. ONLY send the
letter if you intend to go. Please do it NOW. Letters of support
without intent to attend are NOT needed. E-mail or phone replies are
Please freely redistribute this request to other forums, whose readers
could be interested in coming. Please do not change the wording.
Send your letter via US Mail to:
GCC Tutorial Poll - I'll Come
c/o John L. Donnelley
Tutorial & Exhibit Manager
USENIX Exhibit Office
5398 Manhattan Circle
Boulder, CO 80303
And send a paper copy to:
Leonard H. Tower Jr.
36 Porter Street,
Somerville, MA 02143
Re: Proposal for a USENIX Tutorial on the GNU C Compiler
at the Baltimore Summer Technical Conference on
either Monday 12 June 89 or Tuesday 13 June 89
* Working Description for Conference Announcment:
T1 Introduction to the Internals of the Gnu C Compiler (GCC)
Intended Audience: This tutorial is an introduction to the
internals of a mostly portable, highly optimizing C compiler.
Attendees should have a working knowledge of C and be familiar
with at least one machine architecture and assembly language.
This purpose of this tutorial is to provide an introduction to
compiler technology using GCC as an example. Introductory
information on how to port GCC to new architectures and new
languages will be included. As GCC source is widely available and
freely redistributable, it will be easy for attendees to continue
to learn from and use the source after they leave the tutorial.
* There are no licensing requirements for this tutorial.
* Evidence that this tutorial would be successful:
** In March 1987, to announce the release of GCC for beta testing,
Richard Stallman gave a 4 hour talk in Cambridge, MA describing the
internals of GCC from front to back. About 100 people attended.
** At the GNU BOF at the Summer 1987 USENIX, roughly fifty people
indicated by show of hands that they would attend a GCC Internals
tutorial at San Diego, if it was held.
** At the GNU BOF at the Winter 1988 USENIX, roughly twenty-five
people indicated by show of hands that they would attend a GCC
Internals tutorial at Baltimore, if it was held.
** People have been asked via the GNU project mailing lists to send
John Donnelley a note if they would definitely attend a GCC Internals
tutorial in Baltimore.
* Something new?
USENIX could provide each attendee with a magnetic tape containing
full source of the latest release of the GNU C Compiler and associated
* Working outline of the Tutorial:
** Morning Early
*** Introduction to GCC and its design goals
*** A brief tour of the front end and its data structures
*** Register Transfer Language (RTL), used for intermediate code
** Morning Late
*** Porting GCC - a brief introduction to the machine description
*** Converting front end trees into back end RTL
*** Optimizations - common subexpression elimination - jump
optimizations - loop optimizations - combination
** Afternoon Early
*** Optimizations performed by the GNU compiler - basic-block flow
analysis - instruction selection - basic-block register allocation -
global register allocation - peephole optimizations
*** Optimizations yet to be done - instruction scheduling -
vectorization - interprocedural flow analysis
** Afternoon Late
*** Porting GCC - the configuration files and addressing mode validator
*** Porting GCC - assembler output and misc.
*** Writing new front ends