Report of research results
Summary
-------
We wish 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 will fund
meetings and invitations of experts outside of HiPEAC, prior to a
larger investment of HiPEAC's compiler platform budget.
What
----
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.
Starting from the technical and less technical context of GCC, we aim
at synthesizing the findings of the participating members and external
experts about the need, the history, the requested features and the
difficulties of a GCC-based compiler research platform.
More specifically the main tasks of the proposed cluster are the following.
- Survey the technical context: compiler infrastructure, existing
phases, past and current projects (academic and production
oriented), platform features with respect to a plain compiler.
- Survey the less technical context: licensing, maintenance policy,
release policy, cultural differences between GCC developers and
researchers, production constraints.
- Support for global (cross module/file/project) analysis and
optimization, for iterative and feedback-directed techniques, and
for lifelong optimization (purely static to purely dynamic).
- Support for low-level optimization, precise architecture modeling
and architecture-compiler codesign.
- Adequation for and integration within higher-level code manipulation
frameworks: source-to-source transformation, library aware program
manipulation (ROSE, Pivot), generative programming and component
engineering.
- Evolution with respect to future and emerging architecture targets,
embedded and general purpose, which includes analyzing the impact of
new architectures on the source language and support libraries,
hence revisiting the expectations about the role of a compiler.
- Requests for improvements or add-ons to GCC, necessary to make
suitable for compiler and architecture research.
- Share interests about GCC-based compiler research and development,
and about willingness to invest into what kind of research and/or
development effort.
- Establish collaborations about specific GCC-based research topics.
From this survey, we will propose a road-map for understanding,
promoting, and if eventually sponsored by HiPEAC, developing the
GCC-based research platform. The early months of this road-map will
include engineering work to identify and work out key technical
points, and to plan and quantify the development work. We will thus
propose, as a result of the cluster work, to dedicate part of the
HiPEAC compiler platform budget to this map-making task.
Why
---
The GCC 4.0 compiler is introducing 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.
Yet the current status and development process of GCC does not meet
all the criteria of a research platform. The necessary conditions and
improvements associated with these criteria have to be carefully
identified and discussed among the participating members and with
external experts. Notice some of these criteria remain to be
identified and defined precisely, in collaboration with other compiler
platform cluster(s).
This work is a necessary step in preparation of a larger platform
investment within the network, involving full-time engineering support
and externally funded collaborative research.
Who
---
The cluster is open to any HiPEAC member with interest in
participating to GCC-based research collaboration and/or platform
development.
All participants in the following list have a strong experience in
compiler development, in a research and/or production perspective.
Research cluster
Requested: € 18000
Granted: € 18000
Requested: € 0
Granted: € 0
Requested: 6 month(s)
Granted: 6 month(s), starting on: Tue, January 1, 1980