Skip to content

Anderson points-to analysis implementation based on LLVM

License

Notifications You must be signed in to change notification settings

Lancern/llvm-anderson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLVM-Anderson

This project implements the famous flow-insensitive points-to analysis algorithm, namely Anderson algorithm, on the LLVM compiler platform.

Notes: This is a toy project. It's not well tested and corner cases are poorly considered. Use it at your own risk!

Build

Prerequisites

Please ensure you have LLVM installed before build. The recommended LLVM version is LLVM 10.0.0, but other LLVM versions might work as well (not tested).

If you are using Ubuntu, execute the following command to install required components before build:

sudo apt install build-essential cmake llvm-dev

If you want to build doxygen documentation, you need to install doxygen as well:

sudo apt install doxygen

Build Binaries

Clone the repository and switch into source tree root:

git clone https://github.com/Lancern/p2a.git
cd p2a

Create a build directory:

mkdir build
cd build

Then you can build p2a by the familiar two-step build:

cmake ..
cmake --build .

Build Doxygen Documents

In order to build doxygen documents, just add the --target switch when invoking cmake --build . in the last step of build:

cmake --build . --target doxygen

The doxygen output directory is docs/doxygen.

License

This project is open-sourced under the MIT license.