Compilation platform

Research challenge

There are overwhelming technical and non-technical motivations for supporting a common compilation platform, and for selecting GCC as this reference platform. More and more academic and industrial groups embrace GCC for research, training and production. This success exacerbates the need for support and coordination of the exchange and mutual-interest developments into the platform. It also requires significant and long-term commitment on applied research to transfer research prototypes into production branches of the compiler.

Nevertheless, GCC is not (currently at least) a Just-In-Time (JIT) compiler, and it only provides incomplete support for managed languages. A strong motivation for JIT-compilation in HiPEAC is the convergence of processor virtualization and performance portability objectives, in the context of heterogeneous multicores and hardware accelerators. There is a clear need for delayed code generation and optimization, taking into account dynamic information (including system load, library calling context, data sets), and the exact target architecture instance. The compilation platform cluster is currently working on the selection of a platform to work in this area, aiming for maximal synergy with the GCC platform; this is a joint activity with the Virtualization and Adaptive Compilation clusters.

JIT-Compilation Job Opportunity

The compiler platform cluster is looking for a postdoc or engineer for 1 year or more. He/she will contribute to the design and implementation of advanced techniques just-in-time (JIT) compilation techniques in the Mono compiler. The emphasis is on split-compilation research: a combination of deferred (link-time) optimization and annotation-enhanced JIT-compilation, splitting optimization algorithms across compilation stages.
The job location will be at INRIA Saclay (Paris) or Rennes, in collaboration with the Virtualization and Adaptive Compilation clusters of HiPEAC. Contact persons: Albert.Cohen@inria.fr, Erven.Rohou@inria.fr, zaks@il.ibm.com, bjorn.desutter@elis.ugent.be.
The postdoc/engineer will also contribute to the coordination activities of the cluster.

Recent and Upcoming Cluster Events

  • GROW'10: the 2nd GCC Research Opportunities Workshop will be organized by Dorit Nuzman and Grigori Fursin, January 2010, Pisa, Italy (associated with HiPEAC'10). Please submit and contribute to its lively and stimulating environment!
  • SSA Seminar: celebrate the 20th anniversary of the Static Single Assignment form, April 27-30, Autrans, France.
    SSA'09 group picture
  • GROW'09: the 1st GCC Research Opportunities Workshop, January 25, Paphos, Cyprus (associated with HiPEAC'09).
    GROW'09 participants   GROW'09 co-chair, Paul Kelly

News

  • We are looking for new cluster engineer/postdoc, starting any time. Please send applications to Ayal Zaks and Albert Cohen.
  • 2009.10.28. Information about the 6th meeting in Wrocław.
  • 2009.05.27. Information about the 5th meeting in Munich.
  • 2009.01.24. Information about the 4th meeting in Paphos.
  • 2008.11.28. Information about the 3rd meeting in Paris.
  • 2008.06.02. Information about the 2nd meeting in Barcelona.
  • 2008.02.01. Welcome to the HiPEAC Compilation Platform Cluster!
    Please subscribe (click on "Request subscription" on the right-side "Compilation platform" block) if you are willing to participate to the cluster activities.
  • 2008.01.31. Kickoff meeting information.

Initial research topics

  • Integrate iterative and machine-learning compilation into a production environment.
  • Extend the SSA-based internal representation to support optimization of parallel programs.
  • Explore compiler support for transactional memory and thread-level speculation.
  • Support whole-program and link-time optimization on a high-level representation.
  • Design and implement a portable performance model for the multi-core era.

Planned mutualization and transfer activities

  • GCC as a common research platform: HiPEAC development branch.
  • Build an API to plug research tools into GCC.
  • Work with the GCC community.
  • Use GCC as a powerful dissemination vehicle of HiPEAC compiler research.

Research and actions

  • Portal for ongoing, planned and proposed collaborations.

People in charge


cTuningCC (Collective Tuning Compiler Collection)

cTuning CC is a free, open source compiler collection that combines multiple tools and techniques including MILEPOST GCC, Interactive Compilation Interface (ICI), Continuous Collective Compilation framework (CCC), cTuning web-services and Collective Optimization Database and cBench to enable R&D toward self-tuning, adaptive computing systems based on industrial tools, empirical techniques, transparent collecti

PoCC - the Polyhedral Compiler Collection

PoCC, the Polyhedral Compiler Collection, is a flexible source-to-source platform to quickly prototype and develop loop nest optimizations in the polyhedral model. It features iterative and model-driven heuristics for parallelization and locality optimization, including an enhanced version of Pluto, the state-of-the-art automatic parallelization algorithm for static control loop nests. It handles a large subset of C and can generate parallelization and vectorization pragmas and builtins for the GCC and ICC backend compilers.

Continuous Collective Compilation Framework

Continuous Collective Compilation Framework (CCC) is a collaborative modular plugin-enabled R&D infrastructure to automate program and architecture optimizations using empirical, iterative, statistical and machine learning techniques and simplify performance evaluation and gathering of optimization statistics in the Collective Optimization Database.

MILEPOST GCC with Interactive Compilation Interface

MILEPOST GCC is an open collaborative plugin infrastructure intended to transform popular, stable, production-quality GCC into a powerful R&D tool. MILEPOST GCC is composed of the Interactive Compilation Interface and a static program feature extractor.The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets.

Collective Benchmark

Collective Benchmark is a collection of open-source programs with multiple datasets assembled by the community to enable realistic benchmarking, performance evaluation and research on program and architecture optimization. This benchmark can work directly with the Continuous Collective Compilation Framework and Collective Optimization Database to automate iterative feedback-directed compilation, DSE and enable statistical collective optimization.

Collective Optimization Database

Collective Optimization Database (cDatabase) is a collaborative repository with open API to share, reuse and reference useful/profitable optimization cases from the community including compiler optimizations and architecture configurations to improve code execution time, code and architecture size, compilation time, power consumption among others. Special web-services, plugins and cTools are provided/being developed to automate/predict program optimization, compiler tuning and architecture design using empirical iterative compilation, statistical analysis and machine learning techniques. cDatabase is intended to improve the quality of academic research by avoiding costly duplicate experiments and providing reproducible referable results.

Diablo

Diablo is a retargetable link-time binary rewriting framework. While our focus has been mostly on program compaction, binary rewriting has a much broader range of applications: speed optimizations, power consumption optimizations, size optimizations, program obfuscation and watermarking, instrumentation, etc. A binary rewriting framework is also very useful for program analysis and understanding. For instance, Diablo can print out the control flow graph for all functions in a program, annotated with for example liveness information.

AttachmentSize
GROW09_room.jpg82.26 KB
GROW09_kelly.jpg55.91 KB
SSA09_group.jpg110.86 KB
Syndicate content