FADA toolkit
Feb 16, 2009
FADA toolkit is the name given to our implementation of the FADA (Fuzzy Array Dataflow Analysis) )approach. It includes command line software (FADAtool) and a C++ library (FADAlib).
FADA toolkit is an instance-wise dataflow analyser, based on reaching definitions approach. Its main advantages are:
- It has full support for static control programs.
- It provides support for many kinds of control flow irregularities,resulting better precision for data flow analysis. Such irregularities may be on memory accesses (indirection, non-affine indexes) and on irregular control structures (while, ifthenelse).
- It gives to user the possibility to introduce extra dataflow properties through pragma directives.
Background
Some tools performing dataflow analysis exist. They are commonly used as automatic parallelisers, such as :
- LooPo, PAF: which propose parallelisation after performing exact dataflow analysis of static control programs.
- PETIT and the Omega Project: lazy dataflow analysis with minimalistic support for irregular programs.
- SUIF is a suite of tools for program optimisations.
- PIPS is a suite of methods for code optimisations. It performs also a region based dataflow analysis.
- HA (Hybrid Analysis) is an approach which extends the region analysis. Its main contribution is its ability to solve non affine constraints at run time. It is implemented within the Polaris compiler.
Used Open Source Software in FADAlib
FADAlib is partly based on other open source codes:
- a C++ code of ADA (Array Dataflow analysis) implemented by Christophe Alias from INRIA
- the parametric solver piplib (www.piplib.org)
Copyright
This software is under GPL licence. Copyright 2010 (UVSQ and INRIA). The contributors are:
- Marouane Belaoucha, PhD student at UVSQ, main contributor
- Christophe Alias, INRIA researcher, secondary contributor (C++ ADA implementation)
- Denis Barthou, professor at university of Bordeau, FADA's father
- Sid Touati, associate professor at UVSQ, supervisor