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 is an open source software and is hosted on Inria GForge.
GeCoS requires Java 7 or later, and a Unix system (tested on Linux 32/64 and Mac OSX 64). We refer the reader to this page for a proper setup of Java 7.
We provide an upadte site for kepler distribution
http://gecos.gforge.inria.fr/updates/kepler/snapshot/. (see the Eclipse documentation about update sites)
We also provide an installation script that takes care of preparing the Eclipse installation with a set of plugins and configures some workspace parameters.
Sources can be downloaded from our SVN :
svn://scm.gforge.inria.fr/svn/gecos. We recommand using the Team Project Set file we provide here http://polyweb.irisa.fr/gecos/projectSet.psf for a consistent workspace.
More details can be found on the installation page.
- 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)
- 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
Here, you can find what are the new features in GeCoS and which bugs are fixed.
In this section we will provide a set of tutorials, targeting beginners as well as advanced users. It's mainly divided into 2 sections:
- 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
- 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
All the GeCoS Tutorials are available in this pdf file
Below, we provide an introduction to Lomita :
Below, we provide a short description of most of functions available in GeCoS script :
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
- I have an error
error while evaluating 'script.cs':whenever I try to run a .cs file.
- I can't see the
run gecos scriptcommand in the context menu when I want to run a Gecos script.
- How can I trace Exeptions ride during a script execution débogguage lors d'une exception Java ?
- How can I add a new fonction de script to GeCoS ?
- How to check/query a Procedure Set with OCL ?
Here is the link to go to the section reserved to Gecos contributor.
There are several mailing lists, wich can be found here
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 :
- Write a 10-15 lines description of the bug
- 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
https://scm.gforge.inria.fr/svn/gecos/trunk/test/fr.irisa.cairn.gecos.bugs, using the following convention.
- use the bug number to create a folder (say
- put you script file and the source code in that folder. Make sure the script still works before commiting back to the SVN.