GCC research platform cluster
Cluster description and results
This cluster is subordinated to the global compiler platform initiative of the HiPEAC network.
We formed a sub-group to study and synthesize the technical and non-technical arguments for choosing GCC as a basis for a compiler research platform, understanding the pros and cons and sketching a road-map towards improving GCC as a research platform. This cluster has also supported industry-academia meetings dedicated to helping industrial partners (Philips and STMicroelectronics) to define their future involvment in GCC research and development.
Indeed, major industrial partners have demonstrated their commitment and long-term interest in the GCC platform for both research and production. To increase the benefits of the interactions between HiPEAC members who choose to commit to a common compiler platform, the network has decided to fund 12 months of compiler platform engineer, the majority of which will spent on the GCC platform, following recommendations of this cluster. Finally, the cluster members decided to organize a full-day tutorial on development within the GCC platform (on May 10, together with the HiPEAC 4th cluster meeting).
We observe that GCC is quickly becoming the dominant research platform for compilation research, as well as for architecture projects (like thread-level speculation) and for high-level programming language works (on synchronous languages, metaprogramming and program verification). Several of these recent works have been conducted by members of the cluster (with publications to PLDI'06, CGO'06, HiPEAC'05 and others). Beyond HiPEAC, the impact of GCC in academic and industrial research is growing quickly worldwide. The HiPEAC network is a leader in this evolution; the strengthening of cross-fertilization and collaborative developments will thus be immediately beneficial for HiPEAC members. GCC 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.
A last, less visible impact of our cluster work is its help in forming solid consortia and proposals for successful EU projects that involve GCC as a compiler platform, namely: SARK (formerly SCALA, FET IP), ACOTES (IST5 STREP), MilePost (IST5 STREP), GGCC (Eureka ITEA8).
About GCC
GCC is the leading free (open source) compiler environment, widely
used in the industry and academia. It leverages from a very large
community of skilled compiler experts. Its internals are well known
and documented. Since it is an open compiler there are no issues of
confidentiality and limitations for sharing information in the joint
research, inside or outside HiPEAC. It is a retargetable compiler that
can serve as a good base for both compiler exploration and computer
architecture research. This is especially true for the embedded domain
where GCC is widely used. The GCC compiler currently supports more
than 30 targets and various operating systems; it comes with a
complete tool chain that supports all development stages.
The GCC 4.0 compiler introduced a new enhanced infrastructure to
support advanced compiler optimizations. This allows the GCC compiler
to become a state-of-the-art optimizing compiler in addition to its
flexibility as an enabling compiler. New and advanced optimizations
useful for embedded systems were introduced: e.g., the
auto-vectorization to utilize SIMD architecture extensions. The GCC
compiler is gaining more ground in the market and is expected to
continue to evolve and get support from a wide community: as long as
the C language (and its derivatives) subsides, it is not imaginable
that GCC would not continue to be maintained, improved and ported to
new architectures. This is a rare asset for a pragmatic, long term
investment into a compiler platform.
