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.
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.