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.
A short guide to applying the patch, building GCC with gdfa, and
testing gdfa can be found here.
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
- Features: Support for Reaching definition analysis is added to Generic Bit Vector Data
- Miscellaneous Bug Fixes
gdfa-1.0 (for gcc 4.3.0)
- Download Patch
- 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)
Above code is tested with the following system configuration:
- Operating System: Ubuntu 9.10 Karmic Release
- Native compiler: Gnu Compiler collection (GCC) 4.x
The source code of gdfa is distributed under GNU GPL v 2.0 or later.
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.