IIDEAA

IIDEAA, or $\mathbb{I}$DE$\mathbb{A}$, is a recursive acronym for IIDEAA Is a Design Exploration Tool for Approximate Algoritms.

It performs approximation of C/C++ algoritms by means of code mutation and design space exploration.

IIDEAA was originally developed with the following aims:

IIDEAA tools are:

Tools released within IIDEAA are licensed with the GNU Affero General Public License. You should receive a copy of the GNU Affero General Public License along with Clang-Chimera. If not, please visit http://www.gnu.org/licenses/ to see a copy of the license.

IIDEAA is a group project and different people are involved in, even though we kindly ask you to direct bug reports, questions and other comments to Mario Barbareschi or to the Github issue tracker.

Prerequisites

Before getting started, there are some dependencies that the compilation of clang-Chimera and Bellerophon requires. We strongly suggest a unix-like system for compile and use IIDEAA tools.

Clang-Chimera Dependencies

The clang-Chimera tool requires LLVM/Clang 3.9.0 and it is compiled using their static libraries. If you have already installed a different version of the LLVM/Clang compilation suite, you can try to modify CMakeLists.txt files and try to resolve compilation issues generated by the version mismatch.

We will try to update clang-Chimera (and Bellerophon as well) accordingly to the latest version of LLVM/Clang.

The source code is released as a CMake project. We suggest at least the version 3.3 of CMake.

In case you need the software documentation about clang-Chimera, you need to install Doxygen.

Bellerophon Dependencies

The Bellerophon tool requires same dependencies of clang-Chimera. Hence, before build it, be sure to have installed LLVM/Clang libraries in version 3.9.0 and CMake.

In case you need the software documentation about Bellerophon, you need to install Doxygen.

Building

To compile both clang-Chimera and Bellerophon tools, you need to download the source code, and inside each directory you need to run the following commands:

mkdir build
cd build
cmake ..
make

In case you receive compilation errors, they should be self-explanatory.

The most recurrent one is relative to the impossibility of finding the LLVM and Clang libraries. To resolve it, it is necessary to pass to cmake the installation path of those libraries through the variable LLVM_LIBRARY_DIR. Hence, the compilation command changes accordingly:

cmake path/to/CMakeLists.txt -DLLVM_LIBRARY_DIR:PATH=path/to/llvm_clang_libraries

If the compilation succeeds, the same directory contains the executables, namely clang-chimera and bellerophon.

Get LLVM/Clang

TODO

Documentation

IIDEAA tools are released with documentation. In particular, the clang-Chimera source code is developed with Doxygen documentation. Bellerophon is temporary released with an external documentation.

clang-Chimera Documentation

CMake will eventually prepare the an entry for generating a Doxygen documentation project and you just need to type:

make doc

in the building folder to generate it.

References

In papers and reports, please refer to $\mathbb{I}$DE$\mathbb{A}$ as follows

``Salvatore Barone,Marcello Traiola, Mario Barbareschi and Alberto Bosio. "Multi-Objective Application-driven Approximate Design Method" in IEEE Access, 2021, doi: 10.1109/ACCESS.2021.3087858.''

or use the following BibTex code

@ARTICLE{9449861,  
author={Barone, Salvatore and Traiola, Marcello and Barbareschi, Mario and Bosio, Alberto},  
journal={IEEE Access},   
title={Multi-Objective Application-driven Approximate Design Method},   
year={2021},  
doi={10.1109/ACCESS.2021.3087858}}