2nd HiPEAC GCC Tutorial: How To and Return on Experience

From 28th Jan 07 To 28th Jan 07

2nd HiPEAC GCC Tutorial: How To and Return on Experience


Date:January 28 2007 [gcc.gnu.org]
Duration:Full day tutorial
Location:Ghent, Belgium
Colocated with the 2nd HiPEAC Conference (January 28 to 30)
Schedule: 9:00 to 12:30 and 14:00 to 17:30
Audience:The morning session is a How To for students, engineers, and researchers looking for a kickstart into the world of GCC research and development; Dorit Nuzman, in charge of the automatic vectorizer at IBM, will propose a journey through the compilation flow, studying the internals of this advanced optimization.
The afternoon session is dedicated to a keynote presentation by Diego Novillo, main architect of the Tree-SSA branch of GCC (which led to GCC 4.0), and to Return on Experience presentations by a panel of researchers and engineers working on the GCC platform
Organizers:Albert Cohen (INRIA)
Ayal Zaks (IBM)
Dorit Nuzman (IBM)
Diego Novillo (RedHat)
Roberto Costa (STMicroelectronics)
Grigori Fursin (INRIA)
Sebastian Pop (École des Mines de Paris)

The free GNU Compiler Collection is the leading tool suite for portable developments on open platforms. It supports more than 6 input languages and 30 target instruction sets, with state-of-the-art support for debugging, profiling and cross-compilation. It has long been supported by the general-purpose and high-performance hardware vendors. The last couple of years have seen GCC taking momentum in the embedded system industry, and also as a platform for advanced research in program analysis, transformation and optimization.

Context

The HiPEAC network supports GCC as a platform for research and development in compilation for high-performance and embedded systems. It encourages researchers from inside and outside the network to share experience, projects, and prototypes based on this common platform.

This tutorial is a followup to the 1st HiPEAC GCC Tutorial. The aim is to bootstrap and encourage research and developments involving GCC, and to help experts and non-experts exchange ideas, information and projects.

The targeted audience is the compilation/architecture researcher/engineer from industry or academia with a good background in textbook compilation and optimization. Prior knowledge of a compiler infrastructure is not assumed in the morning session. Conversely, people with a lot of experience are encouraged to attend the afternoon session.

Notice we will address practical issues aimed at helping developers with typical problem-solving and technical design issues. The overlap with GCC-related courses presented during the ACACES 2005 and 2006 summer schools should be minimal.

Outline

  • Morning session.
    • Introduction to GCC internals (Albert Cohen).
    • How to add a simple pass or customize code generation (Albert Cohen).
    • In-depth study: the compilation flow of the autovectorizer (Dorit Nuzman).
  • Afternoon session.
    • Keynote: advanced analyses and optimizations, OpenMP and automatic parallelization (Diego Novillo).
    • Case-studies (HiPEAC-supported projects with GCC).
      1. GCC to .NET CIL bytecode (Roberto Costa).
      2. An API for iterative and adaptive optimization (Grigori Fursin).
      3. GRAPHITE: polyhedral analyses and transformations (Sebastian Pop).

Information

Online references for research and development involving GCC.

Technical documentation

Selected research projects involving work on GCC internals

There is a recent surge of top-quality publications on advanced compilation and compiler optimizations in particular: automatic vectorization in PLDI'06 (Nuzman et al.) and CGO'06 (Nuzman et al.), thread-level speculation in PPoPP'06 (Liu et al.) and ICS'05 (Renau et al.), induction variable recognition in HiPEAC'05 (Pop et al.), template meta-programming with concepts in PoPL'06 (Dos Reis et al.), and others to come!

Several research projects have translated into production passes of GCC and have been published in the GCC Summit.

Support material

See the attached slides below.


AttachmentSize
1_Introduction.pdf3.19 MB
2_Middle_End.pdf3.39 MB
3_Back_End.pdf592.16 KB
4_Nuzman.pdf2.92 MB
4_Nuzman.ppt1.43 MB
5_Novillo.pdf182.21 KB
6_Costa.pdf84.5 KB
7_Fursin.pdf107.58 KB
7_Fursin.ppt197.5 KB
8_Pop.pdf298.08 KB