swh:1:snp:02f0329065aa0998f15261721418c6af35ffbf8e
README
DDG : A C++ High Level Data Dependence Graph Library
version 2.0
Author: Sid Touati, INRIA and University of Versailles Saint-Quentin
en Yvelines (France)
This is a generic C++ library that handles data dependence graphs (%DDG) for
optimising compilation.
It is built on top of the LEDA graph library (see
http://www.algorithmic-solutions.com/enleda.htm). Our graph library is
specially though for research purposes where people are willing to make quick,
robust and modular implementations of code optimisation techniques for basic
blocks and simple innermost loops (modeled by regular mono-dimensional data
dependences). We manage directed acyclic graphs (DAGs) for basic blocks and
cyclic graphs for innermost loops. The user is able to take advantage of many
standard algorithms for graphs. Also, numerous algorithms on data dependence
graphs are implemented. It is also possible to configure the library for
different instruction set architectures, and multiple register types.
LEDA is a famous C++ graphs and general data structures library. We have used it
since many years, and we can safely say that it is better than other existing
C++ graph and data structures libraries that we experimented (BOOST, STL,
etc.). LEDA is a high level library greatly helping to implement complex
algorithms in a quick, robust and modular way. According to our deep experience,
a C++ code using LEDA looks
like a high level algorithm, allowing to easily debug it without suffering from
programming details.
Furthermore, LEDA offers the largest set of implementation of well known
algorithms in graph theory and data structures:
these are very helpful in optimising compilation, especially for instruction
level parallelism problems such
as instruction scheduling and register allocation. LEDA is well suited for
academic research.
Remarks
-------
- Our C++ library does not perform or implement data dependence analysis.
Currently, it's up to the user
to make such analysis. Building a precise data dependence analysis module is
another on progress software of us (see
http://www.prism.univ-cotedazur.fr/~bem/fadalib/home.html).
- This version of DDG has been tested with g++ version 4.2.2. Since g++
implementations continuously change the accepted C++ codes, we do not know of
further version of g++ would compile LEDA and DDG. Maybe a minor porting would
be required.
In this Release you can find:
-----------------------------
- INSTALL instructions
- Full user guide documentation
- DDG and ISA examples (in XML format)
- C++ Code Examples
- Full C++ sources
Needed Libraries for DDG version 2.0
------------------------------------
- libxerces-c : available in linux distributions
- LEDA graph library : http://www.algorithmic-solutions.com/leda/index.htm