GCC research platform cluster


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

18000 euros for one global meeting with the invitation of external

experts, plus the organization of smaller workgroups on specific

issues. The process would start (not funded) at the HiPEAC summer

school. Detailed description is provided in the cluster presentation above.



No fellowship required at this step (not on cluster budget, but the

cluster will ask for a fellowship on the compiler platform budget).



6 months duration.


Requested: 6 month(s)
Granted: 6 month(s), starting on: Tue, January 1, 1980

BERNSTEIN David (IBM) (--member--)
BODIN François (INRIA) (--colleague--)
COHEN Albert (INRIA) (--member--)
DURANTON Marc (NXP) (--member--)
KELLY Paul (Imperial College London) (--member--)
LLOSA Josep (UPC) (--member--)
MENDELSON Bilha (IBM) (--member--)
O'BOYLE Michael (Edinburgh University) (--member--)
RAMIREZ Alex (UPC) (--member--)
SAINRAT Pascal (CNRS) (--member--)
TEMAM Olivier (INRIA) (--member--)

Nacho Navarro (UPC)

Ayal Zaks (IBM Haifa)

Zbigniew Chamski (Philips, not funded)

Alex Turjan (Philips, not funded)

Marco Cornero (ST)

Erven Rohou (ST)

Koen Bertels (Delft)

John Cavazos (Edinburgh)