Observatorio de I+D+i UPM

Memorias de investigación
Proyecto de I+D+i:
GGCC: Global GNU Compiler Collection
Áreas de investigación
  • Lenguaje de programación
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.
Tipo de proyecto
Proyectos y convenios en convocatorias públicas competitivas
Entidad financiadora
Ministerio de Industria, Turismo y Comercio
Nacionalidad Entidad
Tamaño de la entidad
Fecha concesión
Esta actividad pertenece a memorias de investigación
  • Participante: Manuel Hermenegildo Salinas (Facultad de Informática, UPM)
  • Director: Julio Mariño Carballo (UPM)
  • Participante: Angel Herranz Nieva (UPM)
  • Participante: Manuel Carro Liñares (Facultad de Informática, UPM)
  • Participante: Lars-Ake Fredlund (UPM)
  • Participante: Juan Jose Moreno Navarro (UPM)
Grupos de investigación, Departamentos, Centros e Institutos de I+D+i relacionados
  • 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
S2i 2021 Observatorio de investigación @ UPM con la colaboración del Consejo Social UPM
Cofinanciación del MINECO en el marco del Programa INNCIDE 2011 (OTR-2011-0236)
Cofinanciación del MINECO en el marco del Programa INNPACTO (IPT-020000-2010-22)