Ben HardekopfAssistant Professor
|
|
A whole-program, field-sensitive, flow-sensitive, context-insensitive pointer analysis implemented in LLVM, as described in the POPL'09 paper. The code isn't really 'release-quality', but is presented here for anyone who is interested in seeing an implementation.
Here is a slightly newer version, still very much not release quality--caveat emptor. This README file may help.
A whole-program, field-sensitive inclusion-based pointer analysis using the LLVM compiler infrastructure. This implementation is an improved version of the code that was used for the PLDI'07 and SAS'07 papers, though it only includes our own algorithms and not the baseline implementations used for comparison in those papers.
The source code and benchmarks used for the PLDI'07 paper The Ant and the Grasshopper: Fast and Accurate Pointer Analysis for Millions of Lines of Code and the SAS'07 paper Exploiting Pointer and Location Equivalence to Optimize Pointer Analysis.
The source code package contains public domain implementations of a number of different inclusion-based (i.e. Andersen-style) pointer analysis algorithms along with various optimizations. The code is in C++ and has been tested on the Ubuntu Linux distribution. To support profiling, we link to libraries from the Google Performance Tools. Some algorithms use BDDs and require the BuDDy Binary Decision Diagram Package.