Skip to content

Latest commit

 

History

History
42 lines (26 loc) · 1.15 KB

README.md

File metadata and controls

42 lines (26 loc) · 1.15 KB

llvm-epp

Efficient Path Profiling using LLVM

Requires

  1. LLVM 5.0
  2. gcc-5+

Build

  1. mkdir build && cd build
  2. cmake -DCMAKE_BUILD_TYPE=Release .. && make -j 8
  3. sudo make install

Test

To run the tests, install lit from the python package index.

  1. pip install lit
  2. cd build
  3. 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

  1. clang -c -g -emit-llvm prog.c
  2. llvm-epp prog.bc -o prog
  3. clang prog.epp.bc -o exe -lepp-rt
  4. ./exe
  5. llvm-epp -p=path-profile-results.txt prog.bc

Known Issues

  1. 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