https://github.com/lancern/llvm-anderson
Anderson points-to analysis implementation based on LLVM
https://github.com/lancern/llvm-anderson
algorithm llvm llvm-anderson llvm-ir pointer-analysis points-to-analysis program-analysis static-analysis
Last synced: 2 months ago
JSON representation
Anderson points-to analysis implementation based on LLVM
- Host: GitHub
- URL: https://github.com/lancern/llvm-anderson
- Owner: Lancern
- License: mit
- Created: 2020-12-26T05:57:25.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-01-03T06:17:40.000Z (over 4 years ago)
- Last Synced: 2025-04-06T22:54:25.243Z (2 months ago)
- Topics: algorithm, llvm, llvm-anderson, llvm-ir, pointer-analysis, points-to-analysis, program-analysis, static-analysis
- Language: C++
- Homepage:
- Size: 132 KB
- Stars: 12
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LLVM-Anderson
This project implements the famous flow-insensitive
[points-to analysis](https://en.wikipedia.org/wiki/Pointer_analysis)
algorithm, namely
[Anderson algorithm](https://en.wikipedia.org/w/index.php?title=Andersen%27s_algorithm&action=edit&redlink=1),
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:```shell
sudo apt install build-essential cmake llvm-dev
```If you want to build doxygen documentation, you need to install `doxygen` as well:
```shell
sudo apt install doxygen
```### Build Binaries
Clone the repository and switch into source tree root:
```shell
git clone https://github.com/Lancern/p2a.git
cd p2a
```Create a build directory:
```shell
mkdir build
cd build
```Then you can build `p2a` by the familiar two-step build:
```shell
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:```shell
cmake --build . --target doxygen
```The doxygen output directory is `docs/doxygen`.
## License
This project is open-sourced under the [MIT license](./LICENSE).