Memorias de investigación
Research Project:
GGCC: Global GNU Compiler Collection

Research Areas
  • Programming language

The GGCC (ITEA) project aims to extend the free GNU Compiler Collection by globally processing several compilation units (e.g. work on a whole program or on a library) in order to customize and configure GCC to European software industry needs : for performance level or for better diagnosis. The GGCC (ITEA) contribution will be GPL licence free software, and will be proposed to the FSF. The GGCC (ITEA) consortium is determined to work in close cooperation with the GCC community and the FSF. In an effort to empower the mainline GCC4 compiler from FSF (which focuses on code generation quality and compilation speed) with advanced compile-time techniques, the GGCC (ITEA) project aims at integrating into a GCC4 branch sophisticated program-wide compile-time analyses. As a result of that, it is expected that GGCC be more resource consuming (e.g., it could run 10 times slower than the GCC4 compiler). In return for that speed loss, more program bugs are expected to be pinpointed, and programmers will be able to state properties to be met in their code. Additionally, all the good characteristics of GGCC (high-quality code, number of available back-ends, etc.) are expected to be kept. The GGCC (ITEA) product will be hosted on Unix/Posix/GNU/Linux environments. The GGCC (ITEA) project aims to extend GCC through continuing research efforts, providing tools, interfaces and documentation which will enable new approaches to be developed around program-wide static analysis techniques. The static analysis of GGCC (ITEA) will work on the GIMPLE internal representations of GCC, hence be usable for all the current source languages and target systems available today in GCC. The static analysis techniques projected for GGCC (ITEA) will be means permitting: 1. Global program-wide optimisation (because the properties inferred at a given call site may be propagated to avoid useless computations in the program; for example if on a given call site and calling context the static analyser determined that a pointer is not null, pointing to a local variable which is positive, this information can be used to optimise further on, etc...). 2. Hazard detections, that are warnings (for the developer using GGCC (ITEA) compiler) about possible threats like: if a function f() was called by g() called by h(x) with x>0 then at line 345 of foo.c there is a possible zero-divide fault. The challenge is to reduce the number of false positive alarms (which are stricto sensu unavoidable). 3. Coding rule validation: A formalism will be defined by the GGCC consortium to express coding rules, and to use static analysis techniques to validate some of them. To permit development of static analysis techniques, some work on the GCC infrastructure (in particular, persistency of GIMPLE internal representation and extensions of it) is required.
Project type
Proyectos y convenios en convocatorias públicas competitivas
Ministerio de Industria, Turismo y Comercio
Entity Nationality
Entity size
Granting date

Research Group, Departaments and Institutes related
  • Creador: Grupo de Investigación: BABEL: Desarrollo de Software Fiable y de Alta Calidad a partir de Tecnología Declarativa
  • Departamento: Lenguajes y Sistemas Informáticos e Ingeniería de Software