llvm-epp
Efficient Path Profiling using LLVM
Requires
- LLVM 5.0
- gcc-5+
Build
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && make -j 8
sudo make install
Test
To run the tests, install lit from the python package index.
pip install lit
cd build
lit test
Documentation
To generate documentation, install graphviz and doxygen. Running cmake
with these prerequisites will enable the doc
target for the build system. Running make doc
will generate html documentation of the classes.
Usage
clang -c -g -emit-llvm prog.c
llvm-epp prog.bc -o prog
clang prog.epp.bc -o exe -lepp-rt
./exe
llvm-epp -p=path-profile-results.txt prog.bc
Known Issues
- Instrumentation cannot be placed along computed indirect branch target edges. This blog post describes the issue under the section "How does this extension interact with critical edge splitting?".
License
The MIT License