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.
- GROW'09: the 1st GCC Research Opportunities Workshop, January 25, Paphos, Cyprus (associated with HiPEAC'09).
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
- Coordinators: Albert Cohen, INRIA Saclay, and Ayal Zaks, IBM Haifa
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
MILEPOST GCC with Interactive Compilation Interface
Collective Benchmark
Collective Optimization Database
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.
| Attachment | Size |
|---|---|
| GROW09_room.jpg | 82.26 KB |
| GROW09_kelly.jpg | 55.91 KB |
| SSA09_group.jpg | 110.86 KB |
