An open API service indexing awesome lists of open source software.

https://github.com/sdasgup3/non-separable-global-dataflow-framework

Extend GCC's GDFA Architecture to Non-separable Framwork
https://github.com/sdasgup3/non-separable-global-dataflow-framework

bitvector compiler-optimization data-flow-analysis dead-code-elimination gcc-plugin

Last synced: 22 days ago
JSON representation

Extend GCC's GDFA Architecture to Non-separable Framwork

Awesome Lists containing this project

README

          

##DIRECTORY STRUCTURE

* Reports
* Report.pdf
* Presentation.pdf
* Documents
* gdfa-v1.2-gcc-4.3.0.patch : _gdfa patch for gcc 4.3.0_
* Test
* Test Directories containing
* C code to be analysed
* Golden outputs for comparison. _Examples: gold_test_*.c.022t.gdfa_puv and gold_test_*.c.021t.gdfa_fv_
* Gen or Kill Impact chains in *.ps format. _Example: gen_impact_chain.dot, kill_impact_chain.dot_
* SourceCodeInfo :
* listOfFilesModified.txt : _List of files Modified_
* CodeDiff.txt : _This file can be patched to gcc 4.3.0 source code_
* Source Files
* gimple-pfbvdfa-driver.c
* gimple-pfbvdfa-specs.c
* gimple-pfbvdfa-support.c
* gimple-pfbvdfa.h
* passes.c
* tree-pass.h

##HOW TO BUILD
```
mkdir gdfa
cd gdfa
Download gcc-4.3.0-tar.gz from https://gcc.gnu.org/mirrors.html in here.
Copy gdfa-v1.2-gcc-4.3.0.patch from Documents in here. This path can be downloaded from http://www.cse.iitb.ac.in/grc/index.php?page=gdfa.
tar -xvf gcc-4.3.0-tar.gz
mkdir gcc-4.3.0.obj gcc-4.3.0.install
patch -p0 < gdfa-v1.2-gcc-4.3.0.patch
cd gcc-4.3.0.obj
../gcc-4.3.0/configure --enable-languages=c --prefix=
make all-gcc TARGET-gcc=cc1 BOOT_CFLAGS='-O0 -g3' -j 2
make install
```

##HOW TO RUN
The following commands generate test_1.c.021t.gdfa_fv (faint variable analysis) and
test_1.c.021t.gdfa_puv (possibly uninitialized variable analysis)

```
cd Test/test_1/
cc1 -fgdfa -fdump-tree-all test_1.c
```

##TESTING AUTOMATION

```
_Run and test the testsuite_
cd Test
make _Compile all the C source files and dumps the analysis results in respective directories_
make test _Compare the analysis dumps with the golden output provided_
make clean _Remove the anaylsis dumps_

OR
_Run and test unit cases_
cd Test_3
make
make test
make clean

```