gdfa: A Generic Data Flow Analyzer for GCC
The design and implementation of gdfa is motivated by the following objectives:
- Demonstrating the practical significance of the following important generalization:
Instead of implementing specific analyses directly, it is useful to implement a generic driver that is
based on a carefully chosen set of abstractions. The task of implementing a particular analyzer then reduces to merely specifying the analysis by instantiating these abstractions to concrete values.
- Providing an easy to use and easy to extend data flow
analysis infrastructure. The goal is to facilitate experimentation in
terms of studying existing analyses, defining new analyses, and
exploring different analysis algorithms.
Installing gdfa
A short guide to applying the patch, building GCC with gdfa, and
testing gdfa can be found here.
Releases
gdfa-1.4 (for gcc 4.5.0)
gdfa-1.3 (for gcc 4.3.0)
gdfa-1.2 (for gcc 4.3.0)
gdfa-1.1 (for gcc 4.3.0)
- Download Patch
- Documentation
- Features: Support for Reaching definition analysis is added to Generic Bit Vector Data
Flow Analyzer
- Miscellaneous Bug Fixes
gdfa-1.0 (for gcc 4.3.0)
- Download Patch
- Documentation
- Features: Generic Bit Vector Data Flow Analyzer for Gimple IR
with example instantiations for several bit vector frameworks. This
data flow analyzer is an intraprocedural (i.e. "per function") analyzer
and hence restricts itself to local variables and expressions. Following
data flow analysis problems are implemented:
- Available expressions analysis (ave)
- Partially available expressions analysis (pav)
- Anticipable expressions analysis (ant)
- Live variables analysis (lv)
- Partial redundancy elimination (pre)
Prerequisites
Above code is tested with the following system configuration:
- Operating System: Ubuntu 9.10 Karmic Release
- Native compiler: Gnu Compiler collection (GCC) 4.x
Source Code
The source code of gdfa is distributed under GNU GPL v 2.0 or later.
Documentation
The documentation of gdfa is distributed under GNU FDL v 1.2 or later.
For more details on data flow analysis, please refer to the book Data Flow Analysis: Theory and Practice
The Copyright of gdfa code and its manual is held by the GCC Resource Center of Department of Computer Science
and Engineering, Indian Institute of Technology Bombay.