User Tools

Site Tools



The Gecos (Generic Compiler Suite) project is an open source compiler infrastructure developed in the CAIRN group since 2004. Gecos was initially designed so as to address part of the shortcomings of existing C/C++ infrastructures such as SUIF. Its main characteristics are high-lighted below:

  • gecos is a C compiler infrastructure entirely written in Java following Model Driven Engineering design principles. In particular Gecos leverage on the Eclipse Modeling Framework (EMF) and uses Eclipse as an underlying infrastructure and thus take benefits of its plugin mechanism to be easily extensible.
  • gecos is targeted to Application Specific Processors (ASIPs) design and Custom Hardware Accelerator Synthesis. It includes partial C++ support to accommodate with bit-accurate datatypes (our front-end support Mentor Graphic Algorithmic C Datatypes C++ templates).
  • gecos can be used as a Source to Source compiler (see the S2S4HLS project) or as a standalone flow with a complete retargetable compiler back-end (customizable BURG based instruction selection, a flexible register allocator,) and support for hardware synthesis (see the LOMITA framework).

Gecos is an open source software and is hosted on Inria GForge.

Quick Installation (Required for the tutorials)

For users unfamiliar with Eclipse, we currently provide three versions of a bundle Eclipse distribution including gecos, CDT and Xtext. If you don't want to mess with Eclipse update sites, this is definitely the way to go.

:!: Important : In order to get the latest GeCoS version, please check for updates after installing the Eclipse bundle (“Help” → “Check for Updates”).

Installation (Regular users / Developers)

Please follow this link to get more information about the installation procedure

Research work based on/using Gecos


  • Antoine Morvan, Steven Derrien, Patrice Quinton. Polyhedral Bubble Insertion: A Method to Improve Nested Loop Pipelining for High-Level Synthesis. IEEE Trans. on CAD of Integrated Circuits and Systems 32(3): 339-352 (2013)
  • Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys: System-Level Synthesis for Wireless Sensor Node Controllers: A Complete Design Flow. ACM Trans. Design Autom. Electr. Syst. 17(1): 2 (2012)

Conference proceedings

  • Mythri Alle, Antoine Morvan, Steven Derrien, Runtime dependency analysis for loop pipelining in high-level synthesis. IEEE/ACM Design Automation Conference,2013
  • Antoine Morvan, Steven Derrien, Patrice Quinton: Efficient nested loop pipelining in high level synthesis using polyhedral bubble insertion. International Conference on Field-Programmable Technology (ICFPT),2011
  • V. Basupalli, Tomofumi Yuki, Sanjay V. Rajopadhye, Antoine Morvan, Steven Derrien, Patrice Quinton, David Wonnacott: ompVerify: Polyhedral Analysis for the OpenMP Programmer. IWOMP, 2011
  • Antoine Floch, Tomofumi Yuki, Clement Guy, Steven Derrien, Benoît Combemale, Sanjay V. Rajopadhye, Robert B. France: Model-Driven Engineering and Optimizing Compilers: A Bridge Too Far? IEEE/ACM MoDELS, 2011
  • Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys: A complete design-flow for the generation of ultra low-power WSN node architectures based on micro-tasking. IEEE/ACM Design Automation Conference, 2010
  • Ludovic L'Hours: Generating Efficient Custom FPGA Soft-Cores for Control-Dominated Applications. ASAP 2005: 127-133

Release notes

Here, you can find what are the new features in gecos and which bugs are fixed.

Tutorials & Documentation

In this section we will provide a set of tutorials, targeting beginners as well as advanced users. It's mainly divided into 2 sections:

  1. A hands-on introductory tutorials for new users/beginners:
    • Creating a new GeCoS project
    • Exploring the GeCoS IR
    • Source-2-Source Transfornations
    • A Complete Example: Stereo Vision Algorithm
  2. A set of advanced tutorials covering the following topics:
    • Creating new GeCoS Modules
    • Using GeCoS Factory
    • Querying and Manipulating the GeCoS IR
    • Using the IGraph Adapter Framework
    • SSA Representation
    • Tree Pattern Matching using TOM

NOTE: As gecos is a rapidly changing software, some tutorials may not be up-to-dated or contain bugs. If you encounter any problem please report it either on the gecos-user mailing lists or report a bug on the bug tracking page

Getting GeCoS Tutorials

All the GeCoS Tutorials are available in this pdf file

Gecos/Lomita tutorial

Below, we provide an introduction to Lomita :

Gecos functions

Below, we provide a short description of most of functions available in gecos script :

SVN documentation

Some documentation to help in managing SVN :


  • OpenMP Verifier page : A tool (set of gecos plugins) to check for legality of #pragma omp for parallel

Frequently Asked Questions

Private Section

Here is the link to go to the section reserved to Gecos contributor.

Bug reports & mailing lists

In that case please report the problems that you encoutered either on the gecos-user mailing lists or report a bug on the bug tracking page

1. Mailing lists

There are several mailing lists, wich can be found here

2. Reporting a bug

To help us being more repsonvise w.r.t to bugs, we have set up a detailed bug submission procedure, and need you to strictly follow these guidelines :

  1. Write a 10-15 lines description of the bug
  2. Prepare a C file and an Gecos script file that will allow us to reproduce the bug

Then, if you are just a Gecos user, go on the Gecos bug tracking page and start by providing a precise and detailled description of the problem that you encoutered. Whenever possible, please attach the script file (.cs) and a simple source code example that will help us reproduce the bug.

Otherwise if you are a registered Gecos developpers (i.e. with write access to the SVN), you need to commit the script file and source file to the fr.irisa.cairn.gecos.bugs in the following SVN folder, using the following convention.

  • use the bug number to create a folder (say bug-123)
  • put you script file and the source code in that folder. Make sure the script still works before commiting back to the SVN.
start.txt · Last modified: 2014/11/14 11:24 (external edit)